home *** CD-ROM | disk | FTP | other *** search
/ Vectronix 2 / VECTRONIX2.iso / FILES_07 / CUTOUT.LST < prev    next >
File List  |  1996-04-28  |  692KB  |  24,281 lines

  1. ' ******************************************************************************
  2. ' *                                                                            *
  3. ' *                                   CUTOUT                                   *
  4. ' *                                                                            *
  5. ' *                                 27.02.1992                                 *
  6. ' *                                                                            *
  7. ' ******************************************************************************
  8. '
  9. '
  10. $B+
  11. $I-
  12. INLINE scsi%,933
  13. DIM buffer|(512*2)
  14. DIM command|(12)
  15. ' VAR:
  16. ' apl_id&=APPL_INIT()
  17. magic%=14031952
  18. '
  19. ' serien_nummer$="REGIST00"
  20. ' serien_nummer_vergleich$="REGIST11"
  21. serien_nummer$=MKD$(101)
  22. serien_nummer_vergleich$=MKD$(101 XOR magic%)
  23. '
  24. fang_schnittpunkt|=4
  25. buffer%=0
  26. buffer_max%=0
  27. poly_len%=0
  28. bits%=0
  29. punkt_eintrag&=0
  30. x_start&=0
  31. y_start&=0
  32. edi_max&=0
  33. m=0
  34. m_neu=0
  35. bit_count|=0
  36. pixel!=FALSE
  37. '
  38. regist_nr%=0
  39. revision$="1.59"
  40. zeit%=TIMER
  41. calamus_nr%=0
  42. ortho|=45
  43. ortho=RAD(ortho|)
  44. ortho2=ortho/2
  45. x_win&=0                                         ! Window X pos  aktuell
  46. y_win&=0                                         ! Window Y pos  aktuell
  47. x_window&=0                                      ! Window X pos  aktuell
  48. y_window&=0                                      ! Window Y pos  aktuell
  49. b_window&=0                                      ! Window Breite aktuell
  50. h_window&=0                                      ! Window Höhe   aktuell
  51. ~WIND_GET(0,4,scrx&,scry&,scrb&,scrh&)           ! maximaler Desktop
  52. wmx%=scrb&-62
  53. wmy%=scrh&-57+scry&
  54. desk_breite&=scrb&
  55. desk_hoehe&=scrh&+scry&
  56. gross_bildschirm!=FALSE
  57. IF desk_breite&>640 OR desk_hoehe&>400
  58.   gross_bildschirm!=TRUE
  59. ENDIF
  60. ADD scrx&,42                                     ! Position Window X+Menuleiste
  61. SUB scrb&,42                                     ! Breite   Window
  62. scrb_old&=scrb&
  63. scrh_old&=scrh&
  64. res_x%=0                                         ! Auflösung x in mm
  65. res_y%=0                                         ! Auflösung y in mm
  66. res_x_old%=0
  67. res_y_old%=0
  68. x_layer%=0
  69. y_layer%=0
  70. x_layero%=0
  71. y_layero%=0
  72. x_offset&=0                                      ! Nullpunkt x im Fenster
  73. y_offset&=0                                      ! Nullpunkt y im Fenster
  74. x_offset_old&=0
  75. y_offset_old&=0
  76. x_mouse%=0
  77. y_mouse%=0
  78. x_mouse_old%=0
  79. y_mouse_old%=0
  80. x_mouse_0%=0
  81. y_mouse_0%=0
  82. objectbox_x0%=0
  83. objectbox_y0%=0
  84. objectbox_x1%=0
  85. objectbox_y1%=0
  86. grid%=10                                        ! raster mm
  87. schraff_dist=201
  88. schraff_inc=0
  89. schraff_fix_abst=0
  90. schraff_winkel=0
  91. schraff_start%=0
  92. schraff_y_min%=0
  93. bit_count_max|=6
  94. geraden_fehler|=1
  95. lange_gerade%=4000
  96. schmutz_filter%=20
  97. knick_winkel_max=RAD(140)
  98. bogen_max=PI/2/2
  99. abweichung_gerade%=0.5*100
  100. last_poly_s%=-1
  101. last_poly_e%=-1
  102. taste|=0
  103. zoom=1
  104. zoom_old=1
  105. zoom_100=1
  106. pointer%=0                                       ! Zeiger auf Punkteliste
  107. found%=0                                         ! gefundener Punkt bei SNAP
  108. found_t%=0                                       ! gefundener Kurvenparameter
  109. schnittpunkt_genau%=16                           ! Zerlegung Bezier in Teile
  110. anz_schnittpunkte%=0                             ! Anzahl Schnittpunkte
  111. b_vari=100
  112. i%=0                                             ! allgemeiner Schleifenzähler
  113. ii%=0
  114. iii%=0
  115. d0%=0
  116. dx%=0
  117. dy%=0
  118. dx=0
  119. dy=0
  120. schnitt_laenge=0
  121. kostfak=1
  122. gkosten=0
  123. px0%=0
  124. py0%=0
  125. px1%=0
  126. py1%=0
  127. px2%=0
  128. py2%=0
  129. px3%=0
  130. py3%=0
  131. m_square_breite&=&H3000
  132. m_square_hoehe&=&H3000
  133. kerning_256|=m_square_breite& DIV 256
  134. len_pair_daten&=0
  135. z_hoehe_def%=16384                               ! Höhe des definierten Zsatzes
  136. z_breite_def%=16384                              ! Breite     "
  137. zeichen_hoehe%=3000                              ! gewünschte Höhe in 1/100 mm
  138. versal_def%=0                                    ! Versal     Höhe in 1/100 mm
  139. z_ascii_scale=zeichen_hoehe%/z_hoehe_def%        ! Scaling
  140. z_ascii_scale_old=z_ascii_scale                  ! save Scaling
  141. global_kerning%=1280                             ! globales Kerning
  142. zeilen_abstand_prozent%=125                      ! relativer Zeilen Abstand
  143. zeilen_abstand%=zeichen_hoehe%*zeilen_abstand_prozent%/100-zeichen_hoehe%
  144. z_cursor_x_spalte%=0                             ! Start String
  145. z_cursor_x%=0                                    ! ASCII Zeichen Cursor X
  146. z_cursor_y%=0                                    ! ASCII Zeichen Cursor y
  147. z_cursor_x_old%=0                                ! letztes Zeichen Cursor X
  148. z_cursor_y_old%=0                                ! letztes Zeichen Cursor y
  149. z_ascii_old%=0                                   ! letztes Zeichen ASCII+32
  150. z_satz_pointer%=0                                ! Pointer auf Zeichensatz
  151. state_rs232&=0                                   ! Centronics aktiv
  152. state_hp&=0                                      ! HPGL aktiv
  153. folie_x%=1188                                    ! Folien Grö₧e
  154. folie_y%=840
  155. plotter_x_min%=0
  156. plotter_y_min%=0
  157. gdu=0                                            ! 100*Plottereinheit
  158. sel_start%=0
  159. sel_end%=0
  160. gtxv&=0
  161. gtyv&=0
  162. gtbv&=216
  163. gthv&=297
  164. gtdpiv&=300
  165. gtfarbev&=3
  166. gtkontrav&=3
  167. exit_button&=0
  168. cursor_x&=0
  169. cursor_y&=0
  170. ofn_ver|=0
  171. overcut|=0
  172. geschlossen%=0
  173. '
  174. phi_x_3d=0
  175. phi_y_3d=0
  176. a2_3d=0
  177. '
  178. daten_ptr%=0
  179. work_space%=0
  180. '
  181. ' CONST:
  182. '
  183. IF FRE(0)>4000000
  184.   p_max%=99999
  185. ELSE
  186.   p_max%=60000
  187. ENDIF
  188. ma|=0
  189. da|=1
  190. b1|=2
  191. b2|=3
  192. b3|=4
  193. ein_drittel=1/3
  194. fmin=2.225073858507E-307
  195. fmin1=0.005
  196. max1=0.995
  197. pimal2=PI*2
  198. pihalbe=PI/2
  199. pidrittel=PI/3
  200. fang_rad%=8*100                                  ! FANGRADIUS
  201. p_at%=XBIOS(3)+76                                ! PRINT AT FÜR X,Y
  202. p_at_zoom%=p_at%-12                              ! PRINT AT FÜR ZOOM
  203. x_bytes%=(scrb&+42)/8                            ! BYTES IN X RICHTUNG DESKTOP
  204. '
  205. ' CONST: Menuleiste
  206. '
  207. tree00&=0
  208. tree0_adr%=0
  209. datei&=3
  210. eintrag&=4
  211. mfenster&=10
  212. mtext&=5
  213. mzedi&=6
  214. spezial&=7
  215. all_clear&=8
  216. bbogen&=9
  217. mschnitt&=11
  218. '
  219. tree01&=1
  220. tree1_adr%=0
  221. back_main&=3
  222. fwd_main&=4
  223. gerade&=5
  224. kurve&=6
  225. schliess&=7
  226. verrunde&=8
  227. loeschen&=9
  228. lock&=10
  229. snap&=11
  230. bild&=12
  231. zircel&=13
  232. bezier4&=14
  233. schere&=15
  234. ' fenster&=15
  235. '
  236. tree02&=2
  237. tree2_adr%=0
  238. back_datei&=3
  239. fwd_datei&=4
  240. l_vek&=5
  241. l_merge&=6
  242. r_macro&=7
  243. r_cvg&=8
  244. l_img&=9
  245. l_pic&=10
  246. ordner&=11
  247. s_vek&=12
  248. s_plt&=13
  249. a_plotter&=14
  250. '
  251. tree03&=3
  252. tree3_adr%=0
  253. back_fenster&=3
  254. fwd_fenster&=4
  255. fmove&=5
  256. blitz&=6
  257. fcopy&=7
  258. fzoom&=8
  259. fzoomp&=9
  260. fdreh&=10
  261. fspiegel&=11
  262. fkursiv&=12
  263. dreh3d&=13
  264. drehxp&=14
  265. drehxm&=15
  266. drehym&=16
  267. drehyp&=17
  268. floesch&=18
  269. fzoom1&=19
  270. '
  271. tree04&=4
  272. tree4_adr%=0
  273. back_spezial&=3
  274. gtepson&=4
  275. handy&=5
  276. kontour&=6
  277. filter&=7
  278. trace&=8
  279. smooth&=9
  280. simag&=10
  281. '
  282. tree05&=5
  283. tree5_adr%=0
  284. back_text&=3
  285. fwd_text&=4
  286. z_edit&=5
  287. z_editor&=6
  288. z_string&=7
  289. z_t_hoehe&=8
  290. z_t_abstand&=9
  291. z_g_kerning&=10
  292. z_read_ascii&=11
  293. l_font&=12
  294. s_font&=14
  295. c_font&=13
  296. '
  297. tree06&=6
  298. tree6_adr%=0
  299. t_hoehe&=1
  300. '
  301. tree07&=7
  302. tree7_adr%=0
  303. zabs&=1
  304. '
  305. tree08&=8                                         ! String Text
  306. tree8_adr%=0
  307. string_text&=1
  308. breite&=3
  309. string_breite&=4
  310. versal&=5
  311. string_versal&=6
  312. pfad&=7
  313. do_kerning&=8
  314. string_kreis&=9
  315. string_kreis_von&=10
  316. string_kreis_bis&=11
  317. fontname&=13
  318. c_text&=14
  319. icon_pair&=15
  320. icon_trep&=16
  321. '
  322. tree09&=9                                         ! Zeichen Editor
  323. tree9_adr%=0
  324. back_editor&=3
  325. m_matrix&=4
  326. z_matrix&=5
  327. move_matrix&=6
  328. kerning_links&=7
  329. kerning_rechts&=8
  330. kerning_auto&=9
  331. z_get&=10
  332. z_muell&=11
  333. z_up&=13
  334. z_down&=14
  335. z_char&=15
  336. '
  337. tree10&=10
  338. tree10_adr%=0
  339. b_kerning&=2
  340. g_kerning&=3
  341. '
  342. tree11&=11                                       ! Optimier
  343. tree11_adr%=0
  344. del_ma&=4
  345. del_ge&=6
  346. del_el&=8
  347. '
  348. tree12&=12
  349. tree12_adr%=0
  350. bstep&=1
  351. '
  352. tree13&=13                                       ! Info
  353. tree13_adr%=0
  354. vernr&=7
  355. version&=4
  356. firma&=4
  357. strasse&=7
  358. stadt&=10
  359. punkte&=15
  360. rest&=17
  361. '
  362. tree14&=14                                       ! Auflösung
  363. tree14_adr%=0
  364. rx1&=8
  365. ry1&=10
  366. rx2&=12
  367. ry2&=13
  368. rx3&=16
  369. ry3&=17
  370. get_pf&=19
  371. r1&=4
  372. r2&=5
  373. r3&=6
  374. '
  375. tree15&=15                                       ! Plotter INIT
  376. tree15_adr%=0
  377. p_init1&=3
  378. p_init2&=4
  379. gdu01&=9
  380. gdu025&=10
  381. gdu05&=11
  382. gdu1&=12
  383. overcut&=16
  384. cent&=18
  385. rs232&=20
  386. hp&=23
  387. gp&=24
  388. mgl&=25
  389. ma&=29
  390. da&=30
  391. '
  392. tree16&=16                                       ! Pfade und Parameter
  393. tree16_adr%=0
  394. pv&=5
  395. pp&=7
  396. pfi&=9
  397. pg&=11
  398. pf&=13
  399. df&=15
  400. p1&=17
  401. p2&=19
  402. schnitt&=21
  403. gdu&=23
  404. foliex&=25
  405. foliey&=27
  406. warn&=29
  407. cancel&=31
  408. '
  409. tree17&=17
  410. tree17_adr%=0
  411. outl&=1
  412. outl_anz&=2
  413. '
  414. tree18&=18
  415. tree18_adr%=0
  416. schraffd&=1
  417. schraffi&=2
  418. schrafix&=3
  419. schraffw&=4
  420. schraffa&=7
  421. schrafff&=8
  422. '
  423. tree19&=19
  424. tree19_adr%=0
  425. necka&=1
  426. neckp&=2
  427. '
  428. tree20&=20                                      ! Füll
  429. tree20_adr%=0
  430. fill1&=3
  431. fill2&=5
  432. fill3&=7
  433. fill4&=9
  434. fill5&=11
  435. fill6&=13
  436. fill7&=15
  437. fillcancel&=17
  438. '
  439. tree21&=21                                      ! Trace
  440. tree21_adr%=0
  441. t_step&=7
  442. t_gerade&=8
  443. t_schmutz&=9
  444. bschwelle&=21
  445. knickwinkel&=22
  446. bogen_max&=23
  447. abweichung_gerade&=24
  448. nur_gerade&=13
  449. trace_cancel&=14
  450. gerade_bezier&=30
  451. '
  452. tree22&=22
  453. tree22_adr%=0
  454. scann_x&=1
  455. scann_y&=2
  456. '
  457. tree23&=23
  458. tree23_adr%=0
  459. radius&=1
  460. '
  461. tree24&=24
  462. tree24_adr%=0
  463. grau&=6
  464. stark&=7
  465. selgrau0&=4
  466. selgrau&=5
  467. sellinie&=8
  468. alle&=9
  469. auswahl&=10
  470. '
  471. tree25&=25                               ! Bogen
  472. tree25_adr%=0
  473. backboge&=3
  474. vkreis&=4
  475. kreis3&=5
  476. kreisbog&=6
  477. bogen3&=7
  478. bogen2&=8
  479. ellipse&=9
  480. elbogen&=10
  481. eckrund&=11
  482. '
  483. tree26&=26                               ! Koordinaten
  484. tree26_adr%=0
  485. absolut&=2
  486. relativ&=3
  487. polar&=4
  488. '
  489. tree27&=27                               ! Calamus Versions Nr.
  490. tree27_adr%=0
  491. calamus_nr&=1
  492. '
  493. tree28&=28                               ! GT 6000
  494. tree28_adr%=0
  495. gtscan&=47
  496. gtx&=38
  497. gty&=44
  498. gtb&=42
  499. gth&=43
  500. gtcancel&=46
  501. gtpresca&=45
  502. gtdpi&=35
  503. gtdpimin&=33
  504. gtdpiplu&=34
  505. gtprewin&=1
  506. gtstate&=5
  507. gtkeiner&=9
  508. gtraster&=10
  509. gtweich&=11
  510. gthart&=12
  511. gtkeine&=15
  512. gtrot&=18
  513. gtgruen&=17
  514. gtblau&=16
  515. k0&=22
  516. k1&=23
  517. k2&=24
  518. k3&=25
  519. k4&=26
  520. k5&=27
  521. k6&=28
  522. '
  523. tree29&=29                               ! Kosten
  524. tree29_adr%=0
  525. kostfak&=1
  526. sl&=2
  527. gkosten&=4
  528. '
  529. tree30&=30                               ! Select Filter
  530. tree30_adr%=0
  531. abs_filter&=1
  532. '
  533. tree31&=31                               ! Select Fenster
  534. tree31_adr%=0
  535. ohnecopy&=1
  536. mitcopy&=6
  537. anz_rot&=3
  538. phi_rot&=4
  539. numohne&=5
  540. ausricht_vector&=7
  541. '
  542. tree32&=32                               ! Select Spiegel
  543. tree32_adr%=0
  544. anbox&=2
  545. anachse&=1
  546. '
  547. tree33&=33
  548. tree33_adr%=0
  549. teil&=1
  550. '
  551. tree34&=34                               ! Schnittpunkt
  552. tree34_adr%=0
  553. backschn&=3
  554. fwdschn&=4
  555. trimm&=5
  556. knack&=6
  557. lot&=7
  558. teilen&=8
  559. lang&=9
  560. schnitt2&=10
  561. schnittn&=11
  562. delseg&=12
  563. delel&=13
  564. schmelz&=14
  565. '
  566. tree35&=35                              ! Select Copy
  567. tree35_adr%=0
  568. copysing&=1
  569. copymul&=2
  570. cx&=4
  571. cy&=5
  572. canz&=6
  573. cdist&=7
  574. '
  575. tree36&=36                              ! Ausrichten
  576. tree36_adr%=0
  577. a_olinks&=1
  578. a_oben&=2
  579. a_orechts&=3
  580. a_links&=4
  581. a_mitte&=5
  582. a_rechts&=6
  583. a_ulinks&=7
  584. a_unten&=8
  585. a_urechts&=9
  586. '
  587. tree37&=37                              ! Scalieren
  588. tree37_adr%=0
  589. scale_interactiv&=1
  590. scale_numerisch&=2
  591. scale_breite&=4
  592. scale_hoehe&=5
  593. '
  594. tree38&=38                              ! Ordner
  595. tree38_adr%=0
  596. ordnert&=1
  597. ordnerok&=2
  598. ordnerca&=3
  599. '
  600. tree39&=39                              ! Kerning
  601. tree39_adr%=0
  602. kerning_box&=1
  603. kerning_minus&=3
  604. kerning_plus&=4
  605. kerning_last&=2
  606. kerning_next&=5
  607. kerning_exit&=6
  608. kerning_minus2&=9
  609. kerning_plus2&=10
  610. kerning_last2&=8
  611. kerning_next2&=11
  612. kerning_clear&=7
  613. kerning_info&=13
  614. kerning_pair&=15
  615. '
  616. tree40&=40                              ! Plotter OUTPUT
  617. tree40_adr%=0
  618. pl100&=3
  619. plschieber&=4
  620. plschere&=7
  621. plschereauf&=5
  622. plscherezu&=6
  623. plschere&=7
  624. '
  625. tree41&=41                              ! Select Neigen
  626. tree41_adr%=0
  627. neige_grad&=2
  628. neige_vertical&=3
  629. neige_horizontal&=4
  630. neige_interaktiv&=5
  631. '
  632. ' FLAG:
  633. '
  634. undo!=FALSE
  635. geschlossen!=FALSE
  636. ok!=FALSE                                        ! allgemein
  637. layer_geladen!=FALSE                             ! ist  Layer geladen
  638. layer!=FALSE                                     ! soll Layer gezeigt werden
  639. window_fulled!=TRUE                              ! ist  Fenster schon gro₧
  640. voll_bild!=FALSE                                 ! ist  Fenster komplett auf Crt
  641. eintragen!=FALSE                                 ! ist  eintragen aktiv
  642. bogen!=FALSE
  643. mtext!=FALSE
  644. meditor!=FALSE
  645. datei!=FALSE
  646. fenster!=FALSE
  647. schnittpunktm!=FALSE
  648. loeschen!=FALSE                                  ! ist  loeschen aktiv
  649. neues_polygon!=TRUE                              ! erster Punkt im Polygon
  650. found!=FALSE                                     ! gefunden bei Fangradius
  651. marker!=FALSE                                    ! sollen Marker gezeigt werden
  652. marker_select!=FALSE                             ! soll   Marker selectiert
  653. modified!=FALSE                                  ! wurde Vektorbild geändert
  654. font_geladen!=FALSE                              ! ist ein Font geladen
  655. outlined!=FALSE                                  ! wurde Bitmap schon outlined
  656. auto_schraff!=TRUE
  657. schraff_fix_abst!=FALSE
  658. einpassen!=FALSE
  659. tangente!=FALSE
  660. tangenten_lock!=TRUE
  661. warn!=FALSE
  662. gp_gl!=FALSE                                     ! HPGL oder GPGL
  663. tasten_rep!=FALSE
  664. absolut!=TRUE
  665. relativ!=FALSE
  666. polar!=FALSE
  667. absolut_old!=FALSE
  668. polar_old!=FALSE
  669. fangklein!=FALSE                                 ! Fangradius gro₧
  670. fadenkreuz!=FALSE
  671. polygonmode!=TRUE                                ! Polygonmodus
  672. ortho!=FALSE
  673. grid!=FALSE
  674. scrolled!=FALSE
  675. move!=FALSE
  676. drei_d!=FALSE
  677. status_wechsel!=FALSE
  678. grid_wechsel!=FALSE
  679. swap!=FALSE
  680. '
  681. ' ARRAY:
  682. '
  683. DIM smfdb%(8),dmfdb%(8),p%(8)
  684. DIM z_smfdb%(8),z_dmfdb%(8),z_p%(8),q_dmfdb%(8)
  685. DIM punkte_x%(p_max%),punkte_y%(p_max%),punkte_def|(p_max%),buffer%(p_max%/2)
  686. DIM x_meta%(127),y_meta%(127),punkte_def1|(32)
  687. ARRAYFILL punkte_def1|(),1
  688. DIM bezier_x&(33),bezier_y&(33)
  689. DIM m$(87)
  690. DIM mk%(60,2)
  691. DIM m_square%(5)
  692. DIM z_editor%(32)
  693. DIM z_ascii%(224),z_kerning&(224*16),z_daten&(224*280),z_pair&(224),z_pair|(224),z_pair_daten|(2000)
  694. DIM sx1%(9),sy1%(9),sx2%(9),sy2%(9),sp1(9),sp2(9)
  695. DIM zeilen_buffer$(60)
  696. rette$=SPACE$(32000)
  697. pfad$=SPACE$(80)
  698. kerning_string$=SPACE$(60)
  699. pfad_pic$=SPACE$(80)
  700. pfad_img$=SPACE$(80)
  701. pfad_vek$=SPACE$(80)
  702. pfad_vek_root$=SPACE$(80)
  703. pfad_cvg$=SPACE$(80)
  704. pfad_fnt$=SPACE$(80)
  705. pfad_cfn$=SPACE$(80)
  706. default_font$=SPACE$(10)
  707. programm$=SPACE$(10)
  708. programm_font$=SPACE$(10)
  709. test_datei$=SPACE$(10)
  710. object$=SPACE$(80)
  711. p_init1$=SPACE$(40)
  712. p_init2$=SPACE$(40)
  713. abc$="CutOut Test"
  714. ma$="M"
  715. da$="D"
  716. cutout_font$="CUTOUTOFN"
  717. calamus_font_grafik$=MKI$(159)+MKI$(15)+MKI$(1)+SPACE$(320)
  718. ok$="OK"
  719. ein_space$=" "
  720. x_y$="X|Y"
  721. erster$="1. "
  722. zweiter$="2. "
  723. help_on$="ON "
  724. help_off$="OFF"
  725. vek$="VEK"
  726. cvg$="CVG"
  727. img$="IMG"
  728. plt$="PLT"
  729. calamus$="CALAMUS"
  730. cutout$="CutOut"
  731. ' ****************************************************************************
  732. OPEN "I",#1,"SYS\LANGUAGE.DRV"
  733. LINE INPUT #1,pd_menu$
  734. LINE INPUT #1,pd_datei$
  735. LINE INPUT #1,pd_editieren$
  736. LINE INPUT #1,pd_fenster$
  737. LINE INPUT #1,pd_schnittpunkt$
  738. LINE INPUT #1,pd_bogen$
  739. LINE INPUT #1,pd_text$
  740. LINE INPUT #1,pd_zeicheneditor$
  741. LINE INPUT #1,pd_extra$
  742. LINE INPUT #1,pd_quit$
  743. '
  744. LINE INPUT #1,pd_optionen$
  745. LINE INPUT #1,pd_marker_anzeigen$
  746. LINE INPUT #1,pd_tangenten_anzeigen$
  747. LINE INPUT #1,pd_fangradius_klein$
  748. LINE INPUT #1,pd_polygon_modus$
  749. LINE INPUT #1,pd_schnittpunkt_genau$
  750. LINE INPUT #1,pd_koordinaten$
  751. LINE INPUT #1,pd_element_selektieren$
  752. LINE INPUT #1,pd_polygon_selektieren$
  753. LINE INPUT #1,pd_warnmeldungen$
  754. LINE INPUT #1,pd_skaliere_alles$
  755. LINE INPUT #1,pd_punkte_nivellieren$
  756. LINE INPUT #1,pd_tangente$
  757. LINE INPUT #1,pd_plotflaeche$
  758. LINE INPUT #1,pd_bezier_step_aendern$
  759. LINE INPUT #1,pd_plotter_einstellung$
  760. LINE INPUT #1,pd_kosten_faktor$
  761. LINE INPUT #1,pd_pfad_sichern$
  762. '
  763. LINE INPUT #1,pd_figur$
  764. LINE INPUT #1,pd_rechteck$
  765. LINE INPUT #1,pd_n_eck$
  766. LINE INPUT #1,pd_polygon_outline$
  767. LINE INPUT #1,pd_aequidistante$
  768. LINE INPUT #1,pd_frame$
  769. LINE INPUT #1,pd_polygone_ausrichten$
  770. LINE INPUT #1,pd_polygone_zentrieren$
  771. LINE INPUT #1,pd_polygone_vereinen$
  772. LINE INPUT #1,pd_polygone_fuellen$
  773. LINE INPUT #1,pd_einzelne_punkte_loeschen$
  774. '
  775. LINE INPUT #1,pd_linie$
  776. LINE INPUT #1,pd_bezier_vektor$
  777. LINE INPUT #1,pd_bezier_einfuegen$
  778. LINE INPUT #1,pd_tausche_bezier_vektor$
  779. LINE INPUT #1,pd_knacken$
  780. LINE INPUT #1,pd_trimmen$
  781. LINE INPUT #1,pd_lot$
  782. LINE INPUT #1,pd_verlaengern$
  783. LINE INPUT #1,pd_teilen$
  784. LINE INPUT #1,pd_messen$
  785. LINE INPUT #1,pd_schnittp_2er$
  786. LINE INPUT #1,pd_schnittp_n$
  787. '
  788. LINE INPUT #1,pd_effekt$
  789. LINE INPUT #1,pd_parameter_schraffur$
  790. LINE INPUT #1,pd_polygon_schraffieren$
  791. LINE INPUT #1,pd_alles_schraffieren$
  792. LINE INPUT #1,pd_schatten$
  793. LINE INPUT #1,pd_einpassen$
  794. LINE INPUT #1,pd_kugel$
  795. '
  796. LINE INPUT #1,lade$
  797. LINE INPUT #1,sichere$
  798. LINE INPUT #1,fuege_ein$
  799. LINE INPUT #1,vektor$
  800. LINE INPUT #1,macro$
  801. LINE INPUT #1,daten$
  802. LINE INPUT #1,zeichensatz$
  803. LINE INPUT #1,kein$
  804. LINE INPUT #1,keine$
  805. LINE INPUT #1,ja_nein$
  806. LINE INPUT #1,waehle$
  807. LINE INPUT #1,fehler$
  808. LINE INPUT #1,scannen$
  809. LINE INPUT #1,pre_view$
  810. LINE INPUT #1,ascii_importieren$
  811. LINE INPUT #1,ascii_exportieren$
  812. LINE INPUT #1,schriftblock$
  813. LINE INPUT #1,radius_zu$
  814. LINE INPUT #1,winkel_zu$
  815. LINE INPUT #1,leider$
  816. LINE INPUT #1,winkel_einstellen$
  817. LINE INPUT #1,spiegelachse$
  818. LINE INPUT #1,lupe_mal$
  819. LINE INPUT #1,fensterbereich$
  820. LINE INPUT #1,drehzentrum$
  821. LINE INPUT #1,ordner_exist$
  822. LINE INPUT #1,kein_leer$
  823. LINE INPUT #1,suche_schnittpunkte$
  824. LINE INPUT #1,gleiches_polygon$
  825. LINE INPUT #1,bezugs$
  826. LINE INPUT #1,zentriere$
  827. LINE INPUT #1,huellkurve$
  828. LINE INPUT #1,huellkurve1$
  829. LINE INPUT #1,berechne$
  830. LINE INPUT #1,rechte_taste$
  831. LINE INPUT #1,endpunkt$
  832. LINE INPUT #1,lot_an$
  833. LINE INPUT #1,noname$
  834. LINE INPUT #1,symbol$
  835. LINE INPUT #1,orginal_fenster$
  836. LINE INPUT #1,dmc_font$
  837. LINE INPUT #1,bild_datei_zu$
  838. LINE INPUT #1,stad_laden$
  839. LINE INPUT #1,plotter_ist_off$
  840. LINE INPUT #1,plot_datei$
  841. LINE INPUT #1,kein_treiber$
  842. LINE INPUT #1,schnittstelle_auf$
  843. LINE INPUT #1,polygone_vereinen$
  844. LINE INPUT #1,loesche_einzelne$
  845. LINE INPUT #1,quelle$
  846. LINE INPUT #1,ziel$
  847. LINE INPUT #1,nivelliere$
  848. LINE INPUT #1,alle_daten_l$
  849. LINE INPUT #1,ganzer_zeichensatz$
  850. LINE INPUT #1,font_daten_loeschen$
  851. LINE INPUT #1,zeichen_matrix$
  852. LINE INPUT #1,datei_existiert$
  853. LINE INPUT #1,datei_ueberschreiben$
  854. LINE INPUT #1,glaetten_mit$
  855. LINE INPUT #1,gerade_bezier$
  856. LINE INPUT #1,glaetten$
  857. LINE INPUT #1,bereich$
  858. LINE INPUT #1,path$
  859. LINE INPUT #1,help_mittelpunkt$
  860. LINE INPUT #1,help_radius$
  861. LINE INPUT #1,help_position$
  862. LINE INPUT #1,help_startwinkel$
  863. LINE INPUT #1,help_endwinkel$
  864. LINE INPUT #1,help_polygon$
  865. LINE INPUT #1,help_punkt$
  866. LINE INPUT #1,help_linie$
  867. LINE INPUT #1,help_element$
  868. LINE INPUT #1,help_verrund$
  869. LINE INPUT #1,help_loesche$
  870. LINE INPUT #1,help_trenn$
  871. LINE INPUT #1,help_move$
  872. LINE INPUT #1,help_sel$
  873. LINE INPUT #1,help_move_window$
  874. LINE INPUT #1,help_rahmen$
  875. LINE INPUT #1,help_edit$
  876. LINE INPUT #1,help_bezier$
  877. LINE INPUT #1,help_status$
  878. LINE INPUT #1,help_ortho$
  879. LINE INPUT #1,help_grid$
  880. LINE INPUT #1,help_free$
  881. LINE INPUT #1,help_snap$
  882. LINE INPUT #1,help_editor$
  883. LINE INPUT #1,help_pfad$
  884. CLOSE #1
  885. ' ****************************************************************************
  886. integer%=VARPTR(punkte_x%(1))-VARPTR(punkte_x%(0))  ! Länge in Bytes Integer
  887. '
  888. z_editor%(0)=2048                                   ! Top      Line   Y
  889. z_editor%(1)=3072                                   ! Ascent   Line   Y
  890. z_editor%(2)=6144                                   ! Half     Line   Y
  891. z_editor%(3)=11264                                  ! Base     Line   Y
  892. z_editor%(4)=13952                                  ! Descent  Line   Y
  893. z_editor%(5)=14336                                  ! Bottom   Line   Y
  894. '
  895. z_editor%(6)=0                                      ! Matrix   links  X
  896. z_editor%(7)=16384                                  ! Matrix   rechts X
  897. z_editor%(8)=1280                                   ! Kerning  links  X
  898. z_editor%(9)=1280                                   ! Kerning  links  X
  899. z_editor%(10)=1280                                  ! Kerning  links  X
  900. z_editor%(11)=1280                                  ! Kerning  links  X
  901. z_editor%(12)=1280                                  ! Kerning  links  X
  902. z_editor%(13)=1280                                  ! Kerning  links  X
  903. z_editor%(14)=1280                                  ! Kerning  links  X
  904. z_editor%(15)=1280                                  ! Kerning  links  X
  905. z_editor%(16)=15104                                 ! Kerning  rechts X
  906. z_editor%(17)=15104                                 ! Kerning  rechts X
  907. z_editor%(18)=15104                                 ! Kerning  rechts X
  908. z_editor%(19)=15104                                 ! Kerning  rechts X
  909. z_editor%(20)=15104                                 ! Kerning  rechts X
  910. z_editor%(21)=15104                                 ! Kerning  rechts X
  911. z_editor%(22)=15104                                 ! Kerning  rechts X
  912. z_editor%(23)=15104                                 ! Kerning  rechts X
  913. z_editor%(24)=z_editor%(0)                          ! Kerning         Y
  914. z_editor%(25)=(z_editor%(5)-z_editor%(0))/8         ! Kerning         Y
  915. z_editor%(26)=z_editor%(24)+z_editor%(25)           ! Kerning         Y
  916. z_editor%(27)=z_editor%(26)+z_editor%(25)           ! Kerning         Y
  917. z_editor%(28)=z_editor%(27)+z_editor%(25)           ! Kerning         Y
  918. z_editor%(29)=z_editor%(28)+z_editor%(25)           ! Kerning         Y
  919. z_editor%(30)=z_editor%(29)+z_editor%(25)           ! Kerning         Y
  920. z_editor%(31)=z_editor%(30)+z_editor%(25)           ! Kerning         Y
  921. z_editor%(32)=0                                     ! Matrix oben     Y
  922. '
  923. ' ******************************************************************************
  924. ' *                                                                            *
  925. ' *                             MENU INITIALISIERUNG                           *
  926. ' *                                                                            *
  927. ' ******************************************************************************
  928. '
  929. BMOVE V:serien_nummer$,V:serien_nummer,8
  930. BMOVE V:serien_nummer_vergleich$,V:serien_nummer_vergleich,8
  931. regist_nr%=serien_nummer_vergleich
  932. IF serien_nummer<>(serien_nummer_vergleich XOR magic%)
  933.   PRINT "SORRY HACKER"
  934.   PAUSE 300
  935.   SYSTEM
  936. ENDIF
  937. INLINE zasm_ptr%,4136
  938. INLINE pack_img%,958
  939. INLINE calc_bezier%,1050
  940. INLINE p_num%,360
  941. INLINE find_line%,356
  942. INLINE kontour%,216
  943. INLINE staddec%,184
  944. INLINE imgdec%,228
  945. INLINE findexcept%,52
  946. INLINE findpointexcept%,70
  947. mfang$=MKI$(7)+MKI$(7)+MKI$(1)+MKI$(0)+MKI$(1)
  948. mfang$=mfang$+MKI$(&X1111111111111110)
  949. mfang$=mfang$+MKI$(&X1111111111111110)
  950. mfang$=mfang$+MKI$(&X1100001110000110)
  951. mfang$=mfang$+MKI$(&X1100001110000110)
  952. mfang$=mfang$+MKI$(&X1100001110000110)
  953. mfang$=mfang$+MKI$(&X1100001110000110)
  954. mfang$=mfang$+MKI$(&X1111110001111110)
  955. mfang$=mfang$+MKI$(&X1111110001111110)
  956. mfang$=mfang$+MKI$(&X1111110001111110)
  957. mfang$=mfang$+MKI$(&X1100001110000110)
  958. mfang$=mfang$+MKI$(&X1100001110000110)
  959. mfang$=mfang$+MKI$(&X1100001110000110)
  960. mfang$=mfang$+MKI$(&X1100001110000110)
  961. mfang$=mfang$+MKI$(&X1111111111111110)
  962. mfang$=mfang$+MKI$(&X1111111111111110)
  963. mfang$=mfang$+MKI$(&X0)
  964. '
  965. mfang$=mfang$+MKI$(&X1111111111111110)
  966. mfang$=mfang$+MKI$(&X1000000100000010)
  967. mfang$=mfang$+MKI$(&X1000000100000010)
  968. mfang$=mfang$+MKI$(&X1000000100000010)
  969. mfang$=mfang$+MKI$(&X1000000100000010)
  970. mfang$=mfang$+MKI$(&X1000000100000010)
  971. mfang$=mfang$+MKI$(&X1000000000000010)
  972. mfang$=mfang$+MKI$(&X1111110001111110)
  973. mfang$=mfang$+MKI$(&X1000000000000010)
  974. mfang$=mfang$+MKI$(&X1000000100000010)
  975. mfang$=mfang$+MKI$(&X1000000100000010)
  976. mfang$=mfang$+MKI$(&X1000000100000010)
  977. mfang$=mfang$+MKI$(&X1000000100000010)
  978. mfang$=mfang$+MKI$(&X1000000100000010)
  979. mfang$=mfang$+MKI$(&X1111111111111110)
  980. mfang$=mfang$+MKI$(&X0)
  981. '
  982. mfang_klein$=MKI$(7)+MKI$(7)+MKI$(1)+MKI$(0)+MKI$(1)
  983. mfang_klein$=mfang_klein$+MKI$(&X0)
  984. mfang_klein$=mfang_klein$+MKI$(&X0)
  985. mfang_klein$=mfang_klein$+MKI$(&X11111111111000)
  986. mfang_klein$=mfang_klein$+MKI$(&X11111111111000)
  987. mfang_klein$=mfang_klein$+MKI$(&X11001110011000)
  988. mfang_klein$=mfang_klein$+MKI$(&X11001110011000)
  989. mfang_klein$=mfang_klein$+MKI$(&X11110001111000)
  990. mfang_klein$=mfang_klein$+MKI$(&X11110001111000)
  991. mfang_klein$=mfang_klein$+MKI$(&X11110001111000)
  992. mfang_klein$=mfang_klein$+MKI$(&X11001110011000)
  993. mfang_klein$=mfang_klein$+MKI$(&X11001110011000)
  994. mfang_klein$=mfang_klein$+MKI$(&X11111111111000)
  995. mfang_klein$=mfang_klein$+MKI$(&X11111111111000)
  996. mfang_klein$=mfang_klein$+MKI$(&X0)
  997. mfang_klein$=mfang_klein$+MKI$(&X0)
  998. mfang_klein$=mfang_klein$+MKI$(&X0)
  999. '
  1000. mfang_klein$=mfang_klein$+MKI$(&X0)
  1001. mfang_klein$=mfang_klein$+MKI$(&X0)
  1002. mfang_klein$=mfang_klein$+MKI$(&X0)
  1003. mfang_klein$=mfang_klein$+MKI$(&X1111111110000)
  1004. mfang_klein$=mfang_klein$+MKI$(&X1000100010000)
  1005. mfang_klein$=mfang_klein$+MKI$(&X1000100010000)
  1006. mfang_klein$=mfang_klein$+MKI$(&X1000000010000)
  1007. mfang_klein$=mfang_klein$+MKI$(&X1110001110000)
  1008. mfang_klein$=mfang_klein$+MKI$(&X1000000010000)
  1009. mfang_klein$=mfang_klein$+MKI$(&X1000100010000)
  1010. mfang_klein$=mfang_klein$+MKI$(&X1000100010000)
  1011. mfang_klein$=mfang_klein$+MKI$(&X1111111110000)
  1012. mfang_klein$=mfang_klein$+MKI$(&X0)
  1013. mfang_klein$=mfang_klein$+MKI$(&X0)
  1014. mfang_klein$=mfang_klein$+MKI$(&X0)
  1015. mfang_klein$=mfang_klein$+MKI$(&X0)
  1016. '
  1017. mdaten$=MKI$(7)+MKI$(7)+MKI$(1)+MKI$(0)+MKI$(1)
  1018. mdaten$=mdaten$+MKI$(&X1110000000)
  1019. mdaten$=mdaten$+MKI$(&X1110000000)
  1020. mdaten$=mdaten$+MKI$(&X1110000000)
  1021. mdaten$=mdaten$+MKI$(&X1110000000)
  1022. mdaten$=mdaten$+MKI$(&X1110000000)
  1023. mdaten$=mdaten$+MKI$(&X1110000000)
  1024. mdaten$=mdaten$+MKI$(&X1111110001111110)
  1025. mdaten$=mdaten$+MKI$(&X1111110001111110)
  1026. mdaten$=mdaten$+MKI$(&X1111110001111110)
  1027. mdaten$=mdaten$+MKI$(&X1110000000)
  1028. mdaten$=mdaten$+MKI$(&X1110000000)
  1029. mdaten$=mdaten$+MKI$(&X1110000000)
  1030. mdaten$=mdaten$+MKI$(&X1110000000)
  1031. mdaten$=mdaten$+MKI$(&X1110000000)
  1032. mdaten$=mdaten$+MKI$(&X1110000000)
  1033. mdaten$=mdaten$+MKI$(&X0)
  1034. '
  1035. mdaten$=mdaten$+MKI$(&X100000000)
  1036. mdaten$=mdaten$+MKI$(&X100000000)
  1037. mdaten$=mdaten$+MKI$(&X100000000)
  1038. mdaten$=mdaten$+MKI$(&X100000000)
  1039. mdaten$=mdaten$+MKI$(&X100000000)
  1040. mdaten$=mdaten$+MKI$(&X100000000)
  1041. mdaten$=mdaten$+MKI$(&X0)
  1042. mdaten$=mdaten$+MKI$(&X1111110001111110)
  1043. mdaten$=mdaten$+MKI$(&X0)
  1044. mdaten$=mdaten$+MKI$(&X100000000)
  1045. mdaten$=mdaten$+MKI$(&X100000000)
  1046. mdaten$=mdaten$+MKI$(&X100000000)
  1047. mdaten$=mdaten$+MKI$(&X100000000)
  1048. mdaten$=mdaten$+MKI$(&X100000000)
  1049. mdaten$=mdaten$+MKI$(&X100000000)
  1050. mdaten$=mdaten$+MKI$(&X0)
  1051. '
  1052. schwer$=MKI$(7)+MKI$(7)+MKI$(-1)+MKI$(0)+MKI$(1)
  1053. schwer$=schwer$+MKI$(&X0)                     !
  1054. schwer$=schwer$+MKI$(&X0)
  1055. schwer$=schwer$+MKI$(&X11111000000)           !
  1056. schwer$=schwer$+MKI$(&X11111000000)
  1057. schwer$=schwer$+MKI$(&X1100111110000)         !
  1058. schwer$=schwer$+MKI$(&X1100111110000)
  1059. schwer$=schwer$+MKI$(&X10000111111000)        !
  1060. schwer$=schwer$+MKI$(&X10000111111000)
  1061. schwer$=schwer$+MKI$(&X10000111111000)        !
  1062. schwer$=schwer$+MKI$(&X10000111111000)
  1063. schwer$=schwer$+MKI$(&X100000111111100)       !
  1064. schwer$=schwer$+MKI$(&X100000111111100)
  1065. schwer$=schwer$+MKI$(&X100000111111100)       !
  1066. schwer$=schwer$+MKI$(&X100000111111100)
  1067. schwer$=schwer$+MKI$(&X111111011111100)       !!
  1068. schwer$=schwer$+MKI$(&X111111011111100)
  1069. schwer$=schwer$+MKI$(&X111111100000100)       !
  1070. schwer$=schwer$+MKI$(&X111111100000100)
  1071. schwer$=schwer$+MKI$(&X111111100000100)       !
  1072. schwer$=schwer$+MKI$(&X111111100000100)
  1073. schwer$=schwer$+MKI$(&X11111100001000)        !
  1074. schwer$=schwer$+MKI$(&X11111100001000)
  1075. schwer$=schwer$+MKI$(&X11111100001000)        !
  1076. schwer$=schwer$+MKI$(&X11111100001000)
  1077. schwer$=schwer$+MKI$(&X1111100110000)         !
  1078. schwer$=schwer$+MKI$(&X1111100110000)
  1079. schwer$=schwer$+MKI$(&X11111000000)           !
  1080. schwer$=schwer$+MKI$(&X11111000000)
  1081. schwer$=schwer$+MKI$(&X0)                     !
  1082. schwer$=schwer$+MKI$(&X0)
  1083. schwer$=schwer$+MKI$(&X0)                     !
  1084. schwer$=schwer$+MKI$(&X0)
  1085. pfad_read
  1086. reset
  1087. RESERVE -64*1024
  1088. DIM work%((FRE(0)-80*1024)/4)
  1089. daten_ptr%=V:work%(0)
  1090. work_space%=DIM?(work%())*4
  1091. KEYPAD 8
  1092. ~RSRC_LOAD("SYS\CUTOUT.RSC")
  1093. ~RSRC_GADDR(0,tree00&,tree0_adr%)
  1094. ~RSRC_GADDR(0,tree01&,tree1_adr%)
  1095. ~RSRC_GADDR(0,tree02&,tree2_adr%)
  1096. ~RSRC_GADDR(0,tree03&,tree3_adr%)
  1097. ~RSRC_GADDR(0,tree04&,tree4_adr%)
  1098. ~RSRC_GADDR(0,tree05&,tree5_adr%)
  1099. ~RSRC_GADDR(0,tree06&,tree6_adr%)
  1100. ~RSRC_GADDR(0,tree07&,tree7_adr%)
  1101. ~RSRC_GADDR(0,tree08&,tree8_adr%)
  1102. ~RSRC_GADDR(0,tree09&,tree9_adr%)
  1103. ~RSRC_GADDR(0,tree10&,tree10_adr%)
  1104. ~RSRC_GADDR(0,tree11&,tree11_adr%)
  1105. ~RSRC_GADDR(0,tree12&,tree12_adr%)
  1106. ~RSRC_GADDR(0,tree13&,tree13_adr%)
  1107. ~RSRC_GADDR(0,tree14&,tree14_adr%)
  1108. ~RSRC_GADDR(0,tree15&,tree15_adr%)
  1109. ~RSRC_GADDR(0,tree16&,tree16_adr%)
  1110. ~RSRC_GADDR(0,tree17&,tree17_adr%)
  1111. ~RSRC_GADDR(0,tree18&,tree18_adr%)
  1112. ~RSRC_GADDR(0,tree19&,tree19_adr%)
  1113. ~RSRC_GADDR(0,tree20&,tree20_adr%)
  1114. ~RSRC_GADDR(0,tree21&,tree21_adr%)
  1115. ~RSRC_GADDR(0,tree22&,tree22_adr%)
  1116. ~RSRC_GADDR(0,tree23&,tree23_adr%)
  1117. ~RSRC_GADDR(0,tree24&,tree24_adr%)
  1118. ~RSRC_GADDR(0,tree25&,tree25_adr%)
  1119. ~RSRC_GADDR(0,tree26&,tree26_adr%)
  1120. ~RSRC_GADDR(0,tree27&,tree27_adr%)
  1121. ~RSRC_GADDR(0,tree28&,tree28_adr%)
  1122. ~RSRC_GADDR(0,tree29&,tree29_adr%)
  1123. ~RSRC_GADDR(0,tree30&,tree30_adr%)
  1124. ~RSRC_GADDR(0,tree31&,tree31_adr%)
  1125. ~RSRC_GADDR(0,tree32&,tree32_adr%)
  1126. ~RSRC_GADDR(0,tree33&,tree33_adr%)
  1127. ~RSRC_GADDR(0,tree34&,tree34_adr%)
  1128. ~RSRC_GADDR(0,tree35&,tree35_adr%)
  1129. ~RSRC_GADDR(0,tree36&,tree36_adr%)
  1130. ~RSRC_GADDR(0,tree37&,tree37_adr%)
  1131. ~RSRC_GADDR(0,tree38&,tree38_adr%)
  1132. ~RSRC_GADDR(0,tree39&,tree39_adr%)
  1133. ~RSRC_GADDR(0,tree40&,tree40_adr%)
  1134. ~RSRC_GADDR(0,tree41&,tree41_adr%)
  1135. ~FORM_CENTER(tree6_adr%)
  1136. ~FORM_CENTER(tree7_adr%)
  1137. ~FORM_CENTER(tree8_adr%)
  1138. ~FORM_CENTER(tree10_adr%)
  1139. ~FORM_CENTER(tree11_adr%)
  1140. ~FORM_CENTER(tree12_adr%)
  1141. ~FORM_CENTER(tree13_adr%)
  1142. ~FORM_CENTER(tree14_adr%)
  1143. ~FORM_CENTER(tree15_adr%)
  1144. ~FORM_CENTER(tree16_adr%)
  1145. ~FORM_CENTER(tree17_adr%)
  1146. ~FORM_CENTER(tree18_adr%)
  1147. ~FORM_CENTER(tree19_adr%)
  1148. ~FORM_CENTER(tree20_adr%)
  1149. ~FORM_CENTER(tree21_adr%)
  1150. ~FORM_CENTER(tree22_adr%)
  1151. ~FORM_CENTER(tree23_adr%)
  1152. ~FORM_CENTER(tree24_adr%)
  1153. ~FORM_CENTER(tree26_adr%)
  1154. ~FORM_CENTER(tree27_adr%)
  1155. ~FORM_CENTER(tree28_adr%)
  1156. ~FORM_CENTER(tree29_adr%)
  1157. ~FORM_CENTER(tree30_adr%)
  1158. ~FORM_CENTER(tree31_adr%)
  1159. ~FORM_CENTER(tree32_adr%)
  1160. ~FORM_CENTER(tree33_adr%)
  1161. ~FORM_CENTER(tree35_adr%)
  1162. ~FORM_CENTER(tree36_adr%)
  1163. ~FORM_CENTER(tree37_adr%)
  1164. ~FORM_CENTER(tree38_adr%)
  1165. ~FORM_CENTER(tree39_adr%)
  1166. ~FORM_CENTER(tree40_adr%)
  1167. ~FORM_CENTER(tree41_adr%)
  1168. xt6&=DPEEK(tree6_adr%+16)
  1169. yt6&=DPEEK(tree6_adr%+18)
  1170. bt6&=DPEEK(tree6_adr%+20)
  1171. ht6&=DPEEK(tree6_adr%+22)
  1172. xt7&=DPEEK(tree7_adr%+16)
  1173. yt7&=DPEEK(tree7_adr%+18)
  1174. bt7&=DPEEK(tree7_adr%+20)
  1175. ht7&=DPEEK(tree7_adr%+22)
  1176. xt8&=DPEEK(tree8_adr%+16)
  1177. yt8&=DPEEK(tree8_adr%+18)
  1178. bt8&=DPEEK(tree8_adr%+20)
  1179. ht8&=DPEEK(tree8_adr%+22)
  1180. xt10&=DPEEK(tree10_adr%+16)
  1181. yt10&=DPEEK(tree10_adr%+18)
  1182. bt10&=DPEEK(tree10_adr%+20)
  1183. ht10&=DPEEK(tree10_adr%+22)
  1184. xt11&=DPEEK(tree11_adr%+16)
  1185. yt11&=DPEEK(tree11_adr%+18)
  1186. bt11&=DPEEK(tree11_adr%+20)
  1187. ht11&=DPEEK(tree11_adr%+22)
  1188. xt12&=DPEEK(tree12_adr%+16)
  1189. yt12&=DPEEK(tree12_adr%+18)
  1190. bt12&=DPEEK(tree12_adr%+20)
  1191. ht12&=DPEEK(tree12_adr%+22)
  1192. xt13&=DPEEK(tree13_adr%+16)
  1193. yt13&=DPEEK(tree13_adr%+18)
  1194. bt13&=DPEEK(tree13_adr%+20)
  1195. ht13&=DPEEK(tree13_adr%+22)
  1196. xt14&=DPEEK(tree14_adr%+16)
  1197. yt14&=DPEEK(tree14_adr%+18)
  1198. bt14&=DPEEK(tree14_adr%+20)
  1199. ht14&=DPEEK(tree14_adr%+22)
  1200. xt15&=DPEEK(tree15_adr%+16)
  1201. yt15&=DPEEK(tree15_adr%+18)
  1202. bt15&=DPEEK(tree15_adr%+20)
  1203. ht15&=DPEEK(tree15_adr%+22)
  1204. xt16&=DPEEK(tree16_adr%+16)
  1205. yt16&=DPEEK(tree16_adr%+18)
  1206. bt16&=DPEEK(tree16_adr%+20)
  1207. ht16&=DPEEK(tree16_adr%+22)
  1208. xt17&=DPEEK(tree17_adr%+16)
  1209. yt17&=DPEEK(tree17_adr%+18)
  1210. bt17&=DPEEK(tree17_adr%+20)
  1211. ht17&=DPEEK(tree17_adr%+22)
  1212. xt18&=DPEEK(tree18_adr%+16)
  1213. yt18&=DPEEK(tree18_adr%+18)
  1214. bt18&=DPEEK(tree18_adr%+20)
  1215. ht18&=DPEEK(tree18_adr%+22)
  1216. xt19&=DPEEK(tree19_adr%+16)
  1217. yt19&=DPEEK(tree19_adr%+18)
  1218. bt19&=DPEEK(tree19_adr%+20)
  1219. ht19&=DPEEK(tree19_adr%+22)
  1220. xt20&=DPEEK(tree20_adr%+16)
  1221. yt20&=DPEEK(tree20_adr%+18)
  1222. bt20&=DPEEK(tree20_adr%+20)
  1223. ht20&=DPEEK(tree20_adr%+22)
  1224. xt21&=DPEEK(tree21_adr%+16)
  1225. yt21&=DPEEK(tree21_adr%+18)
  1226. bt21&=DPEEK(tree21_adr%+20)
  1227. ht21&=DPEEK(tree21_adr%+22)
  1228. xt22&=DPEEK(tree22_adr%+16)
  1229. yt22&=DPEEK(tree22_adr%+18)
  1230. bt22&=DPEEK(tree22_adr%+20)
  1231. ht22&=DPEEK(tree22_adr%+22)
  1232. xt23&=DPEEK(tree23_adr%+16)
  1233. yt23&=DPEEK(tree23_adr%+18)
  1234. bt23&=DPEEK(tree23_adr%+20)
  1235. ht23&=DPEEK(tree23_adr%+22)
  1236. DPOKE tree24_adr%+16,DPEEK(tree24_adr%+16)+200
  1237. xt24&=DPEEK(tree24_adr%+16)
  1238. yt24&=DPEEK(tree24_adr%+18)
  1239. bt24&=DPEEK(tree24_adr%+20)
  1240. ht24&=DPEEK(tree24_adr%+22)
  1241. xt26&=DPEEK(tree26_adr%+16)
  1242. yt26&=DPEEK(tree26_adr%+18)
  1243. bt26&=DPEEK(tree26_adr%+20)
  1244. ht26&=DPEEK(tree26_adr%+22)
  1245. xt27&=DPEEK(tree27_adr%+16)
  1246. yt27&=DPEEK(tree27_adr%+18)
  1247. bt27&=DPEEK(tree27_adr%+20)
  1248. ht27&=DPEEK(tree27_adr%+22)
  1249. xt28&=DPEEK(tree28_adr%+16)
  1250. yt28&=DPEEK(tree28_adr%+18)
  1251. bt28&=DPEEK(tree28_adr%+20)
  1252. ht28&=DPEEK(tree28_adr%+22)
  1253. xt29&=DPEEK(tree29_adr%+16)
  1254. yt29&=DPEEK(tree29_adr%+18)
  1255. bt29&=DPEEK(tree29_adr%+20)
  1256. ht29&=DPEEK(tree29_adr%+22)
  1257. xt30&=DPEEK(tree30_adr%+16)
  1258. yt30&=DPEEK(tree30_adr%+18)
  1259. bt30&=DPEEK(tree30_adr%+20)
  1260. ht30&=DPEEK(tree30_adr%+22)
  1261. xt31&=DPEEK(tree31_adr%+16)
  1262. yt31&=DPEEK(tree31_adr%+18)
  1263. bt31&=DPEEK(tree31_adr%+20)
  1264. ht31&=DPEEK(tree31_adr%+22)
  1265. xt32&=DPEEK(tree32_adr%+16)
  1266. yt32&=DPEEK(tree32_adr%+18)
  1267. bt32&=DPEEK(tree32_adr%+20)
  1268. ht32&=DPEEK(tree32_adr%+22)
  1269. xt35&=DPEEK(tree35_adr%+16)
  1270. yt35&=DPEEK(tree35_adr%+18)
  1271. bt35&=DPEEK(tree35_adr%+20)
  1272. ht35&=DPEEK(tree35_adr%+22)
  1273. xt33&=DPEEK(tree33_adr%+16)
  1274. yt33&=DPEEK(tree33_adr%+18)
  1275. bt33&=DPEEK(tree33_adr%+20)
  1276. ht33&=DPEEK(tree33_adr%+22)
  1277. xt36&=DPEEK(tree36_adr%+16)
  1278. yt36&=DPEEK(tree36_adr%+18)
  1279. bt36&=DPEEK(tree36_adr%+20)
  1280. ht36&=DPEEK(tree36_adr%+22)
  1281. xt37&=DPEEK(tree37_adr%+16)
  1282. yt37&=DPEEK(tree37_adr%+18)
  1283. bt37&=DPEEK(tree37_adr%+20)
  1284. ht37&=DPEEK(tree37_adr%+22)
  1285. xt38&=DPEEK(tree38_adr%+16)
  1286. yt38&=DPEEK(tree38_adr%+18)
  1287. bt38&=DPEEK(tree38_adr%+20)
  1288. ht38&=DPEEK(tree38_adr%+22)
  1289. xt39&=DPEEK(tree39_adr%+16)
  1290. yt39&=DPEEK(tree39_adr%+18)
  1291. bt39&=DPEEK(tree39_adr%+20)
  1292. ht39&=DPEEK(tree39_adr%+22)
  1293. xt40&=DPEEK(tree40_adr%+16)
  1294. yt40&=DPEEK(tree40_adr%+18)
  1295. bt40&=DPEEK(tree40_adr%+20)
  1296. ht40&=DPEEK(tree40_adr%+22)
  1297. xt41&=DPEEK(tree41_adr%+16)
  1298. yt41&=DPEEK(tree41_adr%+18)
  1299. bt41&=DPEEK(tree41_adr%+20)
  1300. ht41&=DPEEK(tree41_adr%+22)
  1301. bt_output&=OB_W(tree40_adr%,pl100&)
  1302. CHAR{{OB_SPEC(tree6_adr%,t_hoehe&)}}=STR$(INT(zeichen_hoehe%/100))
  1303. CHAR{{OB_SPEC(tree7_adr%,zabs&)}}=STR$(INT(zeilen_abstand_prozent%))
  1304. CHAR{{OB_SPEC(tree9_adr%,z_char&)}}=CHR$(z_ascii_old%+32)
  1305. CHAR{{OB_SPEC(tree8_adr%,string_text&)}}=abc$
  1306. CHAR{{OB_SPEC(tree12_adr%,bstep&)}}=STR$(b_vari/100)
  1307. CHAR{{OB_SPEC(tree13_adr%,punkte&)}}=STR$(pointer%)
  1308. CHAR{{OB_SPEC(tree13_adr%,rest&)}}=STR$(p_max%-pointer%)
  1309. CHAR{{OB_SPEC(tree13_adr%,version&)}}=revision$
  1310. CHAR{{OB_SPEC(tree14_adr%,rx1&)}}=STR$(folie_x%)
  1311. CHAR{{OB_SPEC(tree14_adr%,ry1&)}}=STR$(folie_y%)
  1312. CHAR{{OB_SPEC(tree14_adr%,rx2&)}}=STR$(folie_x2%)
  1313. CHAR{{OB_SPEC(tree14_adr%,ry2&)}}=STR$(folie_y2%)
  1314. CHAR{{OB_SPEC(tree14_adr%,rx3&)}}=STR$(folie_x3%)
  1315. CHAR{{OB_SPEC(tree14_adr%,ry3&)}}=STR$(folie_y3%)
  1316. CHAR{{OB_SPEC(tree15_adr%,p_init1&)}}=p_init1$
  1317. CHAR{{OB_SPEC(tree15_adr%,p_init2&)}}=p_init2$
  1318. CHAR{{OB_SPEC(tree15_adr%,overcut&)}}=STR$(overcut|/10)
  1319. CHAR{{OB_SPEC(tree15_adr%,ma&)}}=ma$
  1320. CHAR{{OB_SPEC(tree15_adr%,da&)}}=da$
  1321. CHAR{{OB_SPEC(tree17_adr%,outl&)}}="3.0"
  1322. CHAR{{OB_SPEC(tree18_adr%,schraffd&)}}=STR$(schraff_dist/100)
  1323. CHAR{{OB_SPEC(tree18_adr%,schraffi&)}}=STR$(schraff_inc/100)
  1324. CHAR{{OB_SPEC(tree18_adr%,schraffw&)}}=STR$(schraff_winkel)
  1325. CHAR{{OB_SPEC(tree18_adr%,schrafix&)}}=STR$(schraff_fix_abst)
  1326. CHAR{{OB_SPEC(tree21_adr%,t_step&)}}=STR$(bit_count_max|)
  1327. CHAR{{OB_SPEC(tree21_adr%,t_gerade&)}}=STR$(geraden_fehler|)
  1328. CHAR{{OB_SPEC(tree21_adr%,t_schmutz&)}}=STR$(schmutz_filter%)
  1329. CHAR{{OB_SPEC(tree21_adr%,bschwelle&)}}=STR$(lange_gerade%/100)
  1330. CHAR{{OB_SPEC(tree21_adr%,knickwinkel&)}}=STR$(CINT(DEG(knick_winkel_max)))
  1331. CHAR{{OB_SPEC(tree21_adr%,bogen_max&)}}=STR$(CINT(DEG(bogen_max*2)))
  1332. CHAR{{OB_SPEC(tree21_adr%,abweichung_gerade&)}}=STR$(abweichung_gerade%/100)
  1333. CHAR{{OB_SPEC(tree22_adr%,scann_x&)}}="1664"
  1334. CHAR{{OB_SPEC(tree22_adr%,scann_y&)}}="800"
  1335. CHAR{{OB_SPEC(tree23_adr%,radius&)}}="10"
  1336. CHAR{{OB_SPEC(tree27_adr%,calamus_nr&)}}=STR$(calamus_nr%)
  1337. CHAR{{OB_SPEC(tree29_adr%,kostfak&)}}=STR$(kostfak)
  1338. CHAR{{OB_SPEC(tree31_adr%,anz_rot&)}}="3"
  1339. CHAR{{OB_SPEC(tree31_adr%,phi_rot&)}}="90"
  1340. OB_STATE(tree15_adr%,rs232&)=state_rs232&+16
  1341. OB_STATE(tree15_adr%,cent&)=state_rs232& XOR 1+16
  1342. OB_STATE(tree15_adr%,hp&)=state_hp&+16
  1343. OB_STATE(tree15_adr%,gp&)=state_hp& XOR 1+16
  1344. OB_STATE(tree26_adr%,absolut&)=absolut!+18
  1345. OB_STATE(tree26_adr%,relativ&)=absolut!+17
  1346. OB_STATE(tree26_adr%,polar&)=absolut!+17
  1347. IF gdu=1
  1348.   OB_STATE(tree15_adr%,gdu01&)=17
  1349. ELSE
  1350.   IF gdu=2.5
  1351.     OB_STATE(tree15_adr%,gdu025&)=17
  1352.   ELSE
  1353.     IF gdu=5
  1354.       OB_STATE(tree15_adr%,gdu05&)=17
  1355.     ELSE
  1356.       OB_STATE(tree15_adr%,gdu1&)=17
  1357.     ENDIF
  1358.   ENDIF
  1359. ENDIF
  1360. OB_STATE(tree1_adr%,lock&)=1
  1361. IF mimaki!
  1362.   OB_STATE(tree15_adr%,gdu05&)=17
  1363.   OB_STATE(tree15_adr%,gdu01&)=8
  1364.   OB_STATE(tree15_adr%,gdu025&)=8
  1365.   OB_STATE(tree15_adr%,gdu1&)=8
  1366.   OB_STATE(tree15_adr%,rs232&)=17
  1367.   OB_STATE(tree15_adr%,mgl&)=17
  1368.   OB_STATE(tree15_adr%,cent&)=16
  1369.   OB_STATE(tree15_adr%,hp&)=16
  1370.   OB_STATE(tree15_adr%,gp&)=16
  1371. ELSE
  1372.   OB_STATE(tree15_adr%,mgl&)=8
  1373. ENDIF
  1374. ~WIND_GET(0,4)                                   ! get desk size
  1375. BMOVE GINTOUT+2,tree0_adr%+16,8                  ! set into rsc
  1376. BMOVE GINTOUT+2,tree1_adr%+16,8                  ! set into rsc
  1377. BMOVE GINTOUT+2,tree2_adr%+16,8                  ! set into rsc
  1378. BMOVE GINTOUT+2,tree3_adr%+16,8                  ! set into rsc
  1379. BMOVE GINTOUT+2,tree4_adr%+16,8                  ! set into rsc
  1380. BMOVE GINTOUT+2,tree5_adr%+16,8                  ! set into rsc
  1381. BMOVE GINTOUT+2,tree9_adr%+16,8                  ! set into rsc
  1382. BMOVE GINTOUT+2,tree25_adr%+16,8                 ! set into rsc
  1383. BMOVE GINTOUT+2,tree34_adr%+16,8                 ! set into rsc
  1384. wind_newdesk(tree0_adr%,0)                       ! install  Datei Baum
  1385. IF default_font$<>""
  1386.   datei$=ein_space$
  1387.   IF EXIST(pfad_fnt$+"\"+default_font$)
  1388.     load_font(pfad_fnt$+"\"+default_font$)
  1389.     programm_font$=LEFT$(default_font$,LEN(default_font$)-4)
  1390.   ELSE
  1391.     make_new_font(-1)
  1392.   ENDIF
  1393. ELSE
  1394.   make_new_font(-1)
  1395. ENDIF
  1396. m$(0)=""
  1397. m$(1)="  CUTOUT"
  1398. m$(2)="--------------------"
  1399. m$(3)=CHR$(2)
  1400. m$(4)=CHR$(3)
  1401. m$(5)=CHR$(4)
  1402. m$(6)=CHR$(5)
  1403. m$(7)=CHR$(6)
  1404. m$(8)=CHR$(7)
  1405. m$(9)=CHR$(8)
  1406. m$(10)=""
  1407. m$(11)=pd_menu$
  1408. m$(12)=pd_datei$
  1409. m$(13)=pd_editieren$
  1410. m$(14)=pd_fenster$
  1411. m$(15)=pd_schnittpunkt$
  1412. m$(16)=pd_bogen$
  1413. m$(17)="----------------------"
  1414. m$(18)=pd_text$
  1415. m$(19)=pd_zeicheneditor$
  1416. m$(20)=m$(17)
  1417. m$(21)=pd_extra$
  1418. m$(22)=m$(17)
  1419. m$(23)=pd_quit$
  1420. m$(24)=""
  1421. m$(25)=pd_optionen$
  1422. m$(26)=pd_marker_anzeigen$
  1423. m$(27)=pd_tangenten_anzeigen$
  1424. m$(28)=pd_fangradius_klein$
  1425. m$(29)=pd_polygon_modus$
  1426. m$(30)=pd_schnittpunkt_genau$
  1427. m$(31)=pd_koordinaten$
  1428. m$(32)=pd_element_selektieren$
  1429. m$(33)=pd_polygon_selektieren$
  1430. m$(34)=pd_warnmeldungen$
  1431. m$(35)="---------------------------"
  1432. m$(36)=pd_skaliere_alles$
  1433. m$(37)=m$(35)
  1434. m$(38)=pd_punkte_nivellieren$
  1435. m$(39)=pd_tangente$
  1436. m$(40)=m$(35)
  1437. m$(41)=pd_plotflaeche$
  1438. m$(42)=pd_bezier_step_aendern$
  1439. m$(43)=pd_plotter_einstellung$
  1440. m$(44)=pd_kosten_faktor$
  1441. m$(45)=pd_pfad_sichern$
  1442. m$(46)=""
  1443. m$(47)=pd_figur$
  1444. m$(48)=pd_rechteck$
  1445. m$(49)=pd_n_eck$
  1446. m$(50)=pd_polygon_outline$
  1447. m$(51)=pd_aequidistante$
  1448. m$(52)=pd_frame$
  1449. m$(53)="---------------------------"
  1450. m$(54)=pd_polygone_ausrichten$
  1451. m$(55)=pd_polygone_zentrieren$
  1452. m$(56)=pd_polygone_vereinen$
  1453. m$(57)=pd_polygone_fuellen$
  1454. m$(58)=m$(53)
  1455. m$(59)=pd_einzelne_punkte_loeschen$
  1456. m$(60)=""
  1457. m$(61)=pd_linie$
  1458. m$(62)=pd_bezier_vektor$
  1459. m$(63)=pd_bezier_einfuegen$
  1460. m$(64)=pd_tausche_bezier_vektor$
  1461. m$(65)=m$(53)
  1462. m$(66)=pd_knacken$
  1463. m$(67)=pd_trimmen$
  1464. m$(68)=pd_lot$
  1465. m$(69)=pd_verlaengern$
  1466. m$(70)=pd_teilen$
  1467. m$(71)=pd_messen$
  1468. m$(72)=m$(53)
  1469. m$(73)=pd_schnittp_2er$
  1470. m$(74)=pd_schnittp_n$
  1471. m$(75)=""
  1472. m$(76)=pd_effekt$
  1473. m$(77)=pd_parameter_schraffur$
  1474. m$(78)=pd_polygon_schraffieren$
  1475. m$(79)=pd_alles_schraffieren$
  1476. m$(80)="------------------------"
  1477. m$(81)=pd_schatten$
  1478. m$(82)=pd_einpassen$
  1479. m$(83)=m$(80)
  1480. m$(84)=pd_kugel$
  1481. m$(85)=""
  1482. m$(86)=""
  1483. MENU m$()
  1484. IF fangklein!
  1485.   MENU 28,1
  1486. ENDIF
  1487. IF polygonmode!
  1488.   MENU 29,1
  1489. ENDIF
  1490. IF warn!
  1491.   MENU 34,1
  1492. ENDIF
  1493. CLIP 0,0,639,399 OFFSET 0,0
  1494. DEFTEXT 1,0,0,6
  1495. COLOR 1
  1496. TEXT 400,7,"Zoom X:"
  1497. TEXT 400,15,"Zoom Y:"
  1498. TEXT 540,7,"X:"
  1499. TEXT 540,15,"Y:"
  1500. DEFTEXT 1,0,0,4
  1501. TEXT 624,7,"mm"
  1502. TEXT 624,15,"mm"
  1503. LINE 536,0,536,20
  1504. LINE 396,0,396,20
  1505. '
  1506. ~FORM_DIAL(3,0,0,0,0,0,0,desk_breite&,desk_hoehe&)                !redraw all
  1507. '
  1508. layer!=FALSE
  1509. zoom=1
  1510. x_layer%=folie_x%
  1511. y_layer%=folie_y%
  1512. x_layero%=x_layer%
  1513. y_layero%=y_layer%
  1514. res_x%=x_layer%
  1515. res_y%=y_layer%
  1516. x_offset&=0
  1517. y_offset&=0
  1518. res_x_old%=x_layer%
  1519. res_y_old%=y_layer%
  1520. x_offset_old&=0
  1521. y_offset_old&=0
  1522. pointer%=0
  1523. get_desktop
  1524. scrb_old&=scrb&
  1525. scrh_old&=scrh&
  1526. CLOSEW 1
  1527. programm$=noname$
  1528. INT{WINDTAB+2}=&X111111000000
  1529. INT{WINDTAB+4}=scrx&
  1530. INT{WINDTAB+6}=scry&
  1531. INT{WINDTAB+8}=scrb&
  1532. INT{WINDTAB+10}=scrh&
  1533. help_titel
  1534. OPENW 1
  1535. calc_slid
  1536. ~WIND_GET(1,4,x_win&,y_win&,b_window&,h_window&)
  1537. neues_polygon!=TRUE
  1538. do_redraw
  1539. DEFMOUSE 3
  1540. p_zoom(zoom*100,zoom*100)
  1541. CHAR{{OB_SPEC(tree14_adr%,rx1&)}}=STR$(x_layer%)
  1542. CHAR{{OB_SPEC(tree14_adr%,ry1&)}}=STR$(y_layer%)
  1543. ' test_vollbild
  1544. '
  1545. ~OBJC_OFFSET(tree28_adr%,gtprewin&,gtxv&,gtyv&)
  1546. gtxv&=gtxv&-x_win&+1
  1547. gtyv&=gtyv&-y_win&+1
  1548. '
  1549. ON MENU MESSAGE GOSUB message
  1550. ON MENU BUTTON 1,1,1 GOSUB button
  1551. ON MENU GOSUB menu
  1552. ON MENU KEY GOSUB key
  1553. ' ON ERROR GOSUB fehler
  1554. '
  1555. '
  1556. REPEAT
  1557.   ON MENU
  1558. UNTIL end!
  1559. '
  1560. IF modified!
  1561.   IF pointer%>0
  1562.     ALERT 3,"| "+sichere$+daten$,1,ja_nein$,i%
  1563.     IF i%=1
  1564.       @save_vektor
  1565.     ENDIF
  1566.   ENDIF
  1567. ENDIF
  1568. '
  1569. ' Bei fertigen Programmen hier nur QUIT
  1570. '
  1571. reset
  1572. ~WIND_GET(0,10)
  1573. IF DPEEK(GINTOUT+2)
  1574.   ALERT 1,"Accessories",1,"Close|Quit",i%
  1575.   IF i%=2
  1576.     QUIT
  1577.   ENDIF
  1578.   REPEAT
  1579.     ~WIND_GET(0,10)
  1580.   UNTIL DPEEK(GINTOUT+2)=0
  1581. ENDIF
  1582. RESERVE                                ! XBIOS(2)-HIMEM+FRE(0)-16384
  1583. '
  1584. PROCEDURE fehler
  1585.   ALERT 1,fehler$,1,leider$,i%
  1586.   '  RESUME NEXT
  1587. RETURN
  1588. '
  1589. '
  1590. PROCEDURE get_undo
  1591.   LOCAL dp%
  1592.   dp%=daten_ptr%
  1593.   IF (pointer%*9+1<work_space%) AND (NOT layer_geladen!)
  1594.     LONG{dp%}=pointer%
  1595.     ADD dp%,4
  1596.     undo!=TRUE
  1597.     BMOVE VARPTR(punkte_x%(0)),dp%,pointer%*4
  1598.     ADD dp%,pointer%*4
  1599.     BMOVE VARPTR(punkte_y%(0)),dp%,pointer%*4
  1600.     ADD dp%,pointer%*4
  1601.     BMOVE VARPTR(punkte_def|(0)),dp%,pointer%
  1602.     undo!=TRUE
  1603.   ELSE
  1604.     undo!=FALSE
  1605.   ENDIF
  1606. RETURN
  1607. '
  1608. PROCEDURE put_undo
  1609.   LOCAL dp%
  1610.   IF undo!
  1611.     dp%=daten_ptr%
  1612.     pointer%=LONG{dp%}
  1613.     ADD dp%,4
  1614.     BMOVE dp%,VARPTR(punkte_x%(0)),pointer%*4
  1615.     ADD dp%,pointer%*4
  1616.     BMOVE dp%,VARPTR(punkte_y%(0)),pointer%*4
  1617.     ADD dp%,pointer%*4
  1618.     BMOVE dp%,VARPTR(punkte_def|(0)),pointer%
  1619.     undo!=FALSE
  1620.     do_redraw
  1621.   ENDIF
  1622. RETURN
  1623. '
  1624. PROCEDURE output_drucker
  1625.   LOCAL handle&,x_resi&,y_resi&,z_old
  1626.   IF GDOS?
  1627.     ERASE work%()
  1628.     IF FRE(0)>250000
  1629.       RESERVE -250000
  1630.       handle&=V_OPNWK(21)
  1631.       IF handle&<>0
  1632.         V~H=handle&
  1633.         x_resi&=INTOUT(0)
  1634.         y_resi&=INTOUT(1)
  1635.         ~V_CLRWK()
  1636.         z_old=zoom
  1637.         zoom=4
  1638.         redraw_ohne(0)
  1639.         ~V_UPDWK()
  1640.         ~V_CLSWK()
  1641.         zoom=z_old
  1642.       ELSE
  1643.       ENDIF
  1644.       RESERVE
  1645.     ELSE
  1646.     ENDIF
  1647.     DIM work%((FRE(0)-80*1024)/4)
  1648.     daten_ptr%=V:work%(0)
  1649.     work_space%=DIM?(work%())*4
  1650.   ELSE
  1651.   ENDIF
  1652. RETURN
  1653. '
  1654. '
  1655. PROCEDURE scan_a1
  1656.   ALERT 3,"| SCAN Hochformat: ",1,"A3|A2|A1",i%
  1657.   SELECT i%
  1658.   CASE 1
  1659.     scann_x%=INT(17*400/8)       !17
  1660.     scann_y%=INT(12*400)        !12
  1661.   CASE 2
  1662.     scann_x%=INT(25*400/8)
  1663.     scann_y%=INT(17*400)
  1664.   CASE 3
  1665.     scann_x%=INT(34*400/8)
  1666.     scann_y%=INT(25*400)
  1667.   ENDSELECT
  1668.   scan_graphtec(3,400,0,0,scann_x%,scann_y%)
  1669. RETURN
  1670. '
  1671. PROCEDURE scan_graphtec(device&,dpi&,x_0%,y_0%,bytes_x%,lines_y%)
  1672.   LOCAL command_bytes&,bytes_to_transfer%,transfer_dir&
  1673.   LOCAL y_offset%,block&,command_bytes&,bytes_to_transfer%
  1674.   ' IF FN test_unit_ready(device&)=0
  1675.   set_graphtec_window(device&,dpi&,x_0%,y_0%,bytes_x%,lines_y%)
  1676.   command_bytes&=10
  1677.   block&=&HFFFF DIV bytes_x% DIV 3
  1678.   bytes_to_transfer%=bytes_x%*block&*3
  1679.   transfer_dir&=0                               ! LESEN
  1680.   command|(0)=&H28
  1681.   command|(1)=0
  1682.   command|(2)=0
  1683.   command|(3)=0
  1684.   command|(4)=0
  1685.   command|(5)=0
  1686.   command|(6)=0
  1687.   command|(7)=0
  1688.   command|(8)=0
  1689.   command|(9)=0
  1690.   WORD{V:command|(7)}=block&
  1691.   '
  1692.   anzahl&=lines_y% DIV block&
  1693.   rest&=lines_y% MOD block&
  1694.   y_offset%=0
  1695.   FOR i%=1 TO anzahl&
  1696.     $c+
  1697.     fehler%=C:scsi%(device&,command_bytes&,bytes_to_transfer%,transfer_dir&,L:V:command|(0),L:daten_ptr%+y_offset%)
  1698.     $c-
  1699.     ADD y_offset%,block&*bytes_x%
  1700.   NEXT i%
  1701.   IF rest&<>0
  1702.     bytes_to_transfer%=bytes_x%*rest&*3
  1703.     WORD{V:command|(7)}=rest&
  1704.     $c+
  1705.     fehler%=C:scsi%(device&,command_bytes&,bytes_to_transfer%,transfer_dir&,L:V:command|(0),L:daten_ptr%+y_offset%)
  1706.     $c-
  1707.   ENDIF
  1708.   '  status&=AND(CARD(fehler%),&X11110)
  1709.   ' message&=CARD(SWAP(fehler%))
  1710.   layer!=TRUE
  1711.   layer_geladen!=TRUE
  1712.   voll_bild!=TRUE
  1713.   outlined!=FALSE
  1714.   do_change_aufloesung(bytes_x%*8,lines_y%,1)
  1715.   init_bit_blit
  1716.   p_zoom(zoom*100,zoom*100)
  1717.   do_redraw
  1718.   ' ENDIF
  1719. RETURN
  1720. '
  1721. PROCEDURE set_graphtec_window(device&,dpi&,x_0%,y_0%,bytes_x%,lines_y%)
  1722.   LOCAL command_bytes&,bytes_to_transfer%,transfer_dir&
  1723.   command_bytes&=10
  1724.   bytes_to_transfer%=53
  1725.   transfer_dir&=1                               ! LESEN (1=SCHREIBEN)
  1726.   command|(0)=&H24
  1727.   command|(1)=0
  1728.   command|(2)=0
  1729.   command|(3)=0
  1730.   command|(4)=0
  1731.   command|(5)=0
  1732.   command|(6)=0
  1733.   command|(7)=0
  1734.   command|(8)=bytes_to_transfer%
  1735.   command|(9)=0
  1736.   FOR i%=0 TO 6
  1737.     buffer|(i%)=0
  1738.   NEXT i%
  1739.   FOR i%=38 TO 47
  1740.     buffer|(i%)=0
  1741.   NEXT i%
  1742.   buffer|(7)=45                         ! Window Descriptor Block Length
  1743.   buffer|(8)=0                          ! Window ID
  1744.   buffer|(9)=0                          ! reserved
  1745.   WORD{V:buffer|(10)}=dpi&              ! X resolution
  1746.   WORD{V:buffer|(12)}=dpi&              ! Y resolution
  1747.   LONG{V:buffer|(14)}=x_0%*24           ! X Upper Left
  1748.   LONG{V:buffer|(18)}=y_0%*3            ! Y Upper Left
  1749.   LONG{V:buffer|(22)}=bytes_x%*24       ! Width
  1750.   LONG{V:buffer|(26)}=lines_y%*3        ! Length
  1751.   buffer|(30)=0                         ! reserved
  1752.   buffer|(31)=0                         ! Kontrast
  1753.   buffer|(32)=0                         ! reserved
  1754.   buffer|(33)=0                         ! Image composition
  1755.   buffer|(34)=1                         ! Bits per Pixel
  1756.   buffer|(35)=0                         ! reserved
  1757.   buffer|(36)=0                         ! reserved
  1758.   buffer|(37)=0                         ! Reverse Image
  1759.   buffer|(48)=2                         ! Cell length
  1760.   buffer|(49)=5                         ! Function Code
  1761.   buffer|(50)=1                         ! Fine Line
  1762.   buffer|(51)=2                         ! Cell length
  1763.   buffer|(52)=6                         ! Function Code
  1764.   buffer|(53)=1                         ! Scann Speed
  1765.   $c+
  1766.   fehler%=C:scsi%(device&,command_bytes&,bytes_to_transfer%,transfer_dir&,L:V:command|(0),L:V:buffer|(0))
  1767.   $c-
  1768. RETURN
  1769. '
  1770. FUNCTION test_unit_ready(device&)
  1771.   command_bytes&=6
  1772.   bytes_to_transfer%=1
  1773.   transfer_dir&=0                               ! LESEN (1=SCHREIBEN)
  1774.   command|(0)=0
  1775.   command|(1)=0
  1776.   command|(2)=0
  1777.   command|(3)=0
  1778.   command|(4)=bytes_to_transfer%
  1779.   command|(5)=0
  1780.   '
  1781.   $c+
  1782.   fehler%=C:scsi%(device&,command_bytes&,L:bytes_to_transfer%,transfer_dir&,L:V:command|(0),L:V:buffer|(0))
  1783.   $c-
  1784.   status&=AND(CARD(fehler%),&X11110)
  1785.   message&=CARD(SWAP(fehler%))
  1786.   '
  1787.   RETURN status&
  1788. ENDFUNC
  1789. '
  1790. '
  1791. PROCEDURE gt_info(i$)
  1792.   CHAR{{OB_SPEC(tree28_adr%,gtstate&)}}=i$
  1793.   ~OBJC_DRAW(tree28_adr%,gtstate&,8,xt28&,yt28&,bt28&,ht28&)
  1794. RETURN
  1795. '
  1796. PROCEDURE dpi_change(prex0&,prey0&,prex0_min&,prey0_min&)
  1797.   CHAR{{OB_SPEC(tree28_adr%,gtdpi&)}}=STR$(gtdpiv&)
  1798.   ~OBJC_DRAW(tree28_adr%,gtdpi&,8,xt28&,yt28&,bt28&,ht28&)
  1799.   CHAR{{OB_SPEC(tree28_adr%,gtb&)}}=STR$(AND(INT(gtbv&/25.4*gtdpiv&),&HFFF8))
  1800.   CHAR{{OB_SPEC(tree28_adr%,gth&)}}=STR$(AND(INT(gthv&/25.4*gtdpiv&),&HFFF8))
  1801.   ~OBJC_DRAW(tree28_adr%,gtb&,8,xt28&,yt28&,bt28&,ht28&)
  1802.   ~OBJC_DRAW(tree28_adr%,gth&,8,xt28&,yt28&,bt28&,ht28&)
  1803.   CHAR{{OB_SPEC(tree28_adr%,gtx&)}}=STR$(AND(INT((prex0&-prex0_min&)/25.4*gtdpiv&),&HFFF8))
  1804.   CHAR{{OB_SPEC(tree28_adr%,gty&)}}=STR$(AND(INT((prey0&-prey0_min&)/25.4*gtdpiv&),&HFFF8))
  1805.   ~OBJC_DRAW(tree28_adr%,gtx&,8,xt28&,yt28&,bt28&,ht28&)
  1806.   ~OBJC_DRAW(tree28_adr%,gty&,8,xt28&,yt28&,bt28&,ht28&)
  1807. RETURN
  1808. '
  1809. PROCEDURE gt_6000
  1810.   LOCAL prex0&,prey0&,prex0_min&,prey0_min&,x_changed&,y_changed&
  1811.   LOCAL prex&,prey&,gthalbton&
  1812.   DEFMOUSE 0
  1813.   SETMOUSE xt28&+240,yt28&+310,0
  1814.   CLIP 0,0,desk_breite&,desk_hoehe& OFFSET x_win&,y_win&
  1815.   ~OBJC_OFFSET(tree28_adr%,gtprewin&,prex&,prey&)
  1816.   gthalbton&=1
  1817.   prex0&=prex&-x_win&+1
  1818.   prey0&=prey&-y_win&+1
  1819.   prex0_min&=prex0&
  1820.   prey0_min&=prey0&
  1821.   prex0_max&=prex0&+217
  1822.   prey0_max&=prey0&+297
  1823.   prex0&=gtxv&
  1824.   prey0&=gtyv&
  1825.   '
  1826.   CHAR{{OB_SPEC(tree28_adr%,gtx&)}}=STR$(AND(INT((prex0&-prex0_min&)/25.4*gtdpiv&),&HFFF8))
  1827.   CHAR{{OB_SPEC(tree28_adr%,gty&)}}=STR$(AND(INT((prey0&-prey0_min&)/25.4*gtdpiv&),&HFFF8))
  1828.   CHAR{{OB_SPEC(tree28_adr%,gtb&)}}=STR$(AND(INT(gtbv&/25.4*gtdpiv&),&HFFF8))
  1829.   CHAR{{OB_SPEC(tree28_adr%,gth&)}}=STR$(AND(INT(gthv&/25.4*gtdpiv&),&HFFF8))
  1830.   CHAR{{OB_SPEC(tree28_adr%,gtdpi&)}}=STR$(gtdpiv&)
  1831.   CHAR{{OB_SPEC(tree28_adr%,gtstate&)}}=waehle$
  1832.   GET xt28&-4,yt28&-4,xt28&+bt28&+4,yt28&+ht28&+4,rette$
  1833.   ~OBJC_DRAW(tree28_adr%,0,8,xt28&,yt28&,bt28&,ht28&)
  1834.   smfdb%(0)=V:prebuf$
  1835.   smfdb%(1)=208
  1836.   smfdb%(2)=292
  1837.   smfdb%(3)=smfdb%(1)/16
  1838.   smfdb%(5)=1
  1839.   dmfdb%(0)=XBIOS(3)
  1840.   dmfdb%(1)=desk_breite&
  1841.   dmfdb%(2)=desk_hoehe&
  1842.   dmfdb%(3)=dmfdb%(1)/16
  1843.   dmfdb%(5)=1
  1844.   p%(0)=0
  1845.   p%(1)=0
  1846.   p%(2)=207
  1847.   p%(3)=291
  1848.   p%(4)=prex&+1
  1849.   p%(5)=prey&+1
  1850.   p%(6)=p%(4)+207
  1851.   p%(7)=p%(5)+291
  1852.   p%(8)=3
  1853.   BITBLT smfdb%(),dmfdb%(),p%()
  1854.   DEFFILL 1,1,1
  1855.   GRAPHMODE 3
  1856.   BOX prex0&,prey0&,prex0&+gtbv&,prey0&+gthv&
  1857.   PBOX prex0&+gtbv&-8,prey0&+gthv&-8,prex0&+gtbv&,prey0&+gthv&
  1858.   REPEAT
  1859.     DO
  1860.       ~FORM_DO(tree28_adr%,0)
  1861.       IF INT{GINTOUT}>0 AND INT{GINTOUT}<100
  1862.         exit_button&=DPEEK(GINTOUT)
  1863.         OB_STATE(tree28_adr%,exit_button&)=0
  1864.         IF exit_button&<>gtprewin&
  1865.           ~OBJC_DRAW(tree28_adr%,exit_button&,8,xt28&,yt28&,bt28&,ht28&)
  1866.         ENDIF
  1867.       ENDIF
  1868.       SELECT exit_button&
  1869.       CASE gtdpimin&
  1870.         IF gtdpiv&>100
  1871.           IF gtdpiv&=480
  1872.             gtdpiv&=400
  1873.           ELSE
  1874.             IF gtdpiv&=600
  1875.               gtdpiv&=480
  1876.             ELSE
  1877.               SUB gtdpiv&,100
  1878.             ENDIF
  1879.           ENDIF
  1880.           dpi_change(prex0&,prey0&,prex0_min&,prey0_min&)
  1881.         ENDIF
  1882.       CASE gtdpiplu&
  1883.         IF gtdpiv&<600
  1884.           IF gtdpiv&=400
  1885.             gtdpiv&=480
  1886.           ELSE
  1887.             IF gtdpiv&=480
  1888.               gtdpiv&=600
  1889.             ELSE
  1890.               ADD gtdpiv&,100
  1891.             ENDIF
  1892.           ENDIF
  1893.           dpi_change(prex0&,prey0&,prex0_min&,prey0_min&)
  1894.         ENDIF
  1895.       CASE gtprewin&
  1896.         MOUSE x_mouse%,y_mouse%,taste|
  1897.         IF x_mouse%>prex0&+gtbv&-8 AND x_mouse%<prex0&+gtbv& AND y_mouse%>prey0&+gthv&-8 AND y_mouse%<prey0&+gthv&
  1898.           DEFMOUSE 3
  1899.           REPEAT
  1900.             MOUSE x_mouse%,y_mouse%,taste|
  1901.             IF x_mouse%<>x_mouse_old% OR y_mouse%<>y_mouse_old%
  1902.               BOX prex0&,prey0&,prex0&+gtbv&,prey0&+gthv&
  1903.               PBOX prex0&+gtbv&-8,prey0&+gthv&-8,prex0&+gtbv&,prey0&+gthv&
  1904.               IF x_mouse%-prex0_min&<217 AND x_mouse%-prex0&>16
  1905.                 gtbv&=x_mouse%-prex0&
  1906.                 i%=AND(INT(gtbv&/25.4*gtdpiv&),&HFFF0)
  1907.                 gtbv&=CINT(i%*25.4/gtdpiv&)
  1908.               ENDIF
  1909.               IF y_mouse%-prey0_min&<298 AND y_mouse%-prey0&>16
  1910.                 gthv&=y_mouse%-prey0&
  1911.               ENDIF
  1912.               BOX prex0&,prey0&,prex0&+gtbv&,prey0&+gthv&
  1913.               PBOX prex0&+gtbv&-8,prey0&+gthv&-8,prex0&+gtbv&,prey0&+gthv&
  1914.               SHOWM
  1915.               x_mouse_old%=x_mouse%
  1916.               y_mouse_old%=y_mouse%
  1917.               CHAR{{OB_SPEC(tree28_adr%,gtb&)}}=STR$(AND(INT(gtbv&/25.4*gtdpiv&),&HFFF0))
  1918.               CHAR{{OB_SPEC(tree28_adr%,gth&)}}=STR$(INT(gthv&/25.4*gtdpiv&))
  1919.               ~OBJC_DRAW(tree28_adr%,gtb&,8,xt28&,yt28&,bt28&,ht28&)
  1920.               ~OBJC_DRAW(tree28_adr%,gth&,8,xt28&,yt28&,bt28&,ht28&)
  1921.             ENDIF
  1922.           UNTIL taste|=0
  1923.           DEFMOUSE 0
  1924.         ELSE
  1925.           IF x_mouse%>prex0& AND x_mouse%<prex0&+gtbv& AND y_mouse%>prey0& AND y_mouse%<prey0&+gthv&
  1926.             x_mouse_old%=x_mouse%
  1927.             y_mouse_old%=y_mouse%
  1928.             DEFMOUSE 3
  1929.             REPEAT
  1930.               MOUSE x_mouse%,y_mouse%,taste|
  1931.               IF x_mouse%<>x_mouse_old% OR y_mouse%<>y_mouse_old%
  1932.                 x_changed&=x_mouse%-x_mouse_old%
  1933.                 y_changed&=y_mouse%-y_mouse_old%
  1934.                 BOX prex0&,prey0&,prex0&+gtbv&,prey0&+gthv&
  1935.                 PBOX prex0&+gtbv&-8,prey0&+gthv&-8,prex0&+gtbv&,prey0&+gthv&
  1936.                 IF prex0&+x_changed&>=prex0_min& AND prex0&+x_changed&+gtbv&<prex0_max&
  1937.                   ADD prex0&,x_changed&
  1938.                 ENDIF
  1939.                 IF prey0&+y_changed&>=prey0_min& AND prey0&+y_changed&+gthv&<prey0_max&
  1940.                   ADD prey0&,y_changed&
  1941.                 ENDIF
  1942.                 BOX prex0&,prey0&,prex0&+gtbv&,prey0&+gthv&
  1943.                 PBOX prex0&+gtbv&-8,prey0&+gthv&-8,prex0&+gtbv&,prey0&+gthv&
  1944.                 SHOWM
  1945.                 x_mouse_old%=x_mouse%
  1946.                 y_mouse_old%=y_mouse%
  1947.                 CHAR{{OB_SPEC(tree28_adr%,gtx&)}}=STR$(AND(INT((prex0&-prex0_min&)/25.4*gtdpiv&),&HFFF8))
  1948.                 CHAR{{OB_SPEC(tree28_adr%,gty&)}}=STR$(AND(INT((prey0&-prey0_min&)/25.4*gtdpiv&),&HFFF8))
  1949.                 ~OBJC_DRAW(tree28_adr%,gtx&,8,xt28&,yt28&,bt28&,ht28&)
  1950.                 ~OBJC_DRAW(tree28_adr%,gty&,8,xt28&,yt28&,bt28&,ht28&)
  1951.               ENDIF
  1952.             UNTIL taste|=0
  1953.             DEFMOUSE 0
  1954.           ENDIF
  1955.         ENDIF
  1956.       CASE gtpresca&
  1957.         gt_info(scannen$+pre_view$)
  1958.         HIDEM
  1959.         gt6000%=VARPTR(gt6000$)
  1960.         $C+
  1961.         VOID C:gt6000%(1,50,3,3,gthalbton&,0,0,26,292,L:V:prebuf$,L:V:prebuf$+8000)
  1962.         $C-
  1963.         OUT (2),13
  1964.         trigger_0
  1965.         DEFMOUSE 3
  1966.         SHOWM
  1967.         BOX prex0&,prey0&,prex0&+gtbv&,prey0&+gthv&
  1968.         PBOX prex0&+gtbv&-8,prey0&+gthv&-8,prex0&+gtbv&,prey0&+gthv&
  1969.         smfdb%(0)=V:prebuf$
  1970.         BITBLT smfdb%(),dmfdb%(),p%()
  1971.         BOX prex0&,prey0&,prex0&+gtbv&,prey0&+gthv&
  1972.         PBOX prex0&+gtbv&-8,prey0&+gthv&-8,prex0&+gtbv&,prey0&+gthv&
  1973.         gt_info(waehle$)
  1974.       ENDSELECT
  1975.       EXIT IF exit_button&=gtcancel&
  1976.       EXIT IF exit_button&=gtscan&
  1977.     LOOP
  1978.     IF exit_button&=gtcancel&
  1979.       PUT xt28&-4,yt28&-4,rette$
  1980.       ok!=TRUE
  1981.     ENDIF
  1982.     IF exit_button&=gtscan&
  1983.       IF OB_STATE(tree28_adr%,gthart&)=1
  1984.         gthalbton&=0
  1985.       ELSE
  1986.         IF OB_STATE(tree28_adr%,gtweich&)=1
  1987.           gthalbton&=16
  1988.         ELSE
  1989.           IF OB_STATE(tree28_adr%,gtraster&)=1
  1990.             gthalbton&=32
  1991.           ELSE
  1992.             gthalbton&=1
  1993.           ENDIF
  1994.         ENDIF
  1995.       ENDIF
  1996.       IF OB_STATE(tree28_adr%,gtrot&)=1
  1997.         gtfarbev&=0
  1998.       ELSE
  1999.         IF OB_STATE(tree28_adr%,gtgruen&)=1
  2000.           gtfarbev&=1
  2001.         ELSE
  2002.           IF OB_STATE(tree28_adr%,gtblau&)=1
  2003.             gtfarbev&=2
  2004.           ELSE
  2005.             gtfarbev&=3
  2006.           ENDIF
  2007.         ENDIF
  2008.       ENDIF
  2009.       IF OB_STATE(tree28_adr%,k0&)=1
  2010.         gtkontrav&=0
  2011.       ELSE
  2012.         IF OB_STATE(tree28_adr%,k1&)=1
  2013.           gtkontrav&=1
  2014.         ELSE
  2015.           IF OB_STATE(tree28_adr%,k2&)=1
  2016.             gtkontrav&=2
  2017.           ELSE
  2018.             IF OB_STATE(tree28_adr%,k3&)=1
  2019.               gtkontrav&=3
  2020.             ELSE
  2021.               IF OB_STATE(tree28_adr%,k4&)=1
  2022.                 gtkontrav&=4
  2023.               ELSE
  2024.                 IF OB_STATE(tree28_adr%,k5&)=1
  2025.                   gtkontrav&=5
  2026.                 ELSE
  2027.                   gtkontrav&=6
  2028.                 ENDIF
  2029.               ENDIF
  2030.             ENDIF
  2031.           ENDIF
  2032.         ENDIF
  2033.       ENDIF
  2034.       gt_info(scannen$+bereich$)
  2035.       gtxorig&=CINT(AND(INT((prex0&+2-prex0_min&)/25.4*gtdpiv&),&HFFF8)/8)
  2036.       gtyorig&=CINT((prey0&+2-prey0_min&)/25.4*gtdpiv&)
  2037.       gtxbytes&=CINT(AND(INT(gtbv&/25.4*gtdpiv&),&HFFF0)/8)
  2038.       gtyzeilen&=CINT(gthv&/25.4*gtdpiv&)
  2039.       IF gtxbytes&*(gtyzeilen&+1)<work_space%
  2040.         HIDEM
  2041.         gt6000%=VARPTR(gt6000$)
  2042.         $C+
  2043.         i%=C:gt6000%(0,gtdpiv&,gtfarbev&,gtkontrav&,gthalbton&,gtxorig&,gtyorig&,gtxbytes&,gtyzeilen&,L:daten_ptr%,L:daten_ptr%+work_space%)
  2044.         $C-
  2045.         OUT (2),13
  2046.         trigger_0
  2047.         DEFMOUSE 3
  2048.         SHOWM
  2049.       ELSE
  2050.         i%=-1
  2051.       ENDIF
  2052.       IF i%>=0
  2053.         gt_info(waehle$)
  2054.         PUT xt28&-4,yt28&-4,rette$
  2055.         layer!=TRUE
  2056.         layer_geladen!=TRUE
  2057.         voll_bild!=TRUE
  2058.         outlined!=FALSE
  2059.         do_change_aufloesung(AND(INT(gtbv&/25.4*gtdpiv&),&HFFF0),INT(gthv&/25.4*gtdpiv&),1)
  2060.         init_bit_blit
  2061.         p_zoom(zoom*100,zoom*100)
  2062.         do_redraw
  2063.         ok!=TRUE
  2064.       ELSE
  2065.         FOR i%=1 TO 5
  2066.           gt_info(fehler$)
  2067.           PAUSE 15
  2068.           gt_info("      ")
  2069.           PAUSE 15
  2070.         NEXT i%
  2071.         gt_info(waehle$)
  2072.         ok!=FALSE
  2073.       ENDIF
  2074.     ENDIF
  2075.   UNTIL ok!
  2076.   gtxv&=prex0&
  2077.   gtyv&=prey0&
  2078.   ~WIND_GET(1,4)
  2079.   clip(x_window&,y_window&,b_window&,h_window&,INT{GINTOUT+2},INT{GINTOUT+4})
  2080.   set_clip_offset
  2081.   GRAPHMODE 1
  2082.   DEFFILL 0,0
  2083.   DEFMOUSE 3
  2084.   init_bit_blit
  2085. RETURN
  2086. '
  2087. PROCEDURE set_clip_offset
  2088.   INT{WINDTAB+64}=INT{WINDTAB+64}-x_offset&
  2089.   INT{WINDTAB+66}=INT{WINDTAB+66}-y_offset&
  2090. RETURN
  2091. '
  2092. PROCEDURE helpo(help$)
  2093.   TITLEW #1,ein_space$+help$+ein_space$
  2094.   set_clip_offset
  2095. RETURN
  2096. '
  2097. PROCEDURE help(help$)
  2098.   TITLEW #1,ein_space$+waehle$+help$+ein_space$
  2099.   set_clip_offset
  2100. RETURN
  2101. '
  2102. PROCEDURE help_titel
  2103.   TITLEW #1,ein_space$+pfad_vek$+"\"+programm$+".VEK "
  2104.   set_clip_offset
  2105.   DEFMOUSE 3
  2106.   DEFLINE 1
  2107.   COLOR 1
  2108.   GRAPHMODE 1
  2109.   p_xy_info("X:","Y:",0)
  2110.   SHOWM
  2111.   trigger_0
  2112.   zeit%=TIMER
  2113. RETURN
  2114. '
  2115. PROCEDURE polygon_fill
  2116.   REPEAT
  2117.     DEFMOUSE 0
  2118.     GET xt20&-4,yt20&-4,xt20&+bt20&+4,yt20&+ht20&+4,rette$
  2119.     SETMOUSE xt20&+bt20&/2,yt20&+160,0
  2120.     ~OBJC_DRAW(tree20_adr%,0,8,xt20&,yt20&,bt20&,ht20&)
  2121.     ~FORM_DO(tree20_adr%,0)
  2122.     exit_button&=DPEEK(GINTOUT)
  2123.     OB_STATE(tree20_adr%,exit_button&)=0
  2124.     PUT xt20&-4,yt20&-4,rette$
  2125.     IF OB_STATE(tree20_adr%,fill1&)=1
  2126.       DEFFILL 1,2,1
  2127.     ELSE IF OB_STATE(tree20_adr%,fill2&)=1
  2128.       DEFFILL 1,2,2
  2129.     ELSE IF OB_STATE(tree20_adr%,fill3&)=1
  2130.       DEFFILL 1,2,3
  2131.     ELSE IF OB_STATE(tree20_adr%,fill4&)=1
  2132.       DEFFILL 1,2,4
  2133.     ELSE IF OB_STATE(tree20_adr%,fill5&)=1
  2134.       DEFFILL 1,2,5
  2135.     ELSE IF OB_STATE(tree20_adr%,fill6&)=1
  2136.       DEFFILL 1,2,6
  2137.     ELSE IF OB_STATE(tree20_adr%,fill7&)=1
  2138.       DEFFILL 1,2,8
  2139.     ENDIF
  2140.     DEFMOUSE mdaten$
  2141.     help(help_polygon$)
  2142.     IF exit_button&<>fillcancel&
  2143.       REPEAT
  2144.         trigger_0
  2145.         wait_taste
  2146.         IF taste|<>2
  2147.           FILL x_mouse%,y_mouse%
  2148.         ENDIF
  2149.       UNTIL taste|=2
  2150.     ENDIF
  2151.   UNTIL exit_button&=fillcancel&
  2152.   ~FRE(0)
  2153.   DEFFILL 1,1
  2154.   help_titel
  2155. RETURN
  2156. '
  2157. ' *****************************************************************************
  2158. ' *                            TANGENTE NIVELLIEREN                           *
  2159. ' *                                                                           *
  2160. ' *  VERÄNDERT VAR: Punkte_X%(), Punkte_Y%()                                  *
  2161. ' *                                                                           *
  2162. ' *****************************************************************************
  2163. '
  2164. PROCEDURE do_niv_tangente(found_quelle%,von%,bis%,dreh_x%,dreh_y%)
  2165.   LOCAL phi,strecke
  2166.   dx=SUB(dreh_x%,punkte_x%(found%))
  2167.   dy=SUB(dreh_y%,punkte_y%(found%))
  2168.   strecke=SQR(dx*dx+dy*dy)
  2169.   get_phi(dreh_x%,dreh_y%,punkte_x%(found_quelle%),punkte_y%(found_quelle%),phi)
  2170.   redraw_von_bis(von%,bis%,0)
  2171.   punkte_x%(found%)=CINT(dreh_x%-strecke*COS(phi))
  2172.   punkte_y%(found%)=CINT(dreh_y%-strecke*SIN(phi))
  2173.   redraw_von_bis(von%,bis%,1)
  2174. RETURN
  2175. '
  2176. PROCEDURE tangente_nivellieren
  2177.   LOCAL found_quelle%,quelle_def|
  2178.   LOCAL von%,bis%,f%,dreh_x%,dreh_y%
  2179.   IF pointer%>1
  2180.     show_cursor_fang
  2181.     REPEAT
  2182.       trigger_0
  2183.       GRAPHMODE 1
  2184.       REPEAT
  2185.         wait_taste
  2186.         EXIT IF taste|=2
  2187.         find(x_mouse%*100/zoom,y_mouse%*100/zoom)
  2188.         quelle_def|=punkte_def|(found%)
  2189.       UNTIL (quelle_def|>da| AND quelle_def|<b3|)
  2190.       IF taste|<>2
  2191.         found_quelle%=found%
  2192.         IF quelle_def|=b1|
  2193.           IF punkte_def|(found_quelle%-1)=b3|
  2194.             found%=found_quelle%-2
  2195.             von%=found_quelle%-4
  2196.             bis%=von%+3
  2197.             dreh_x%=punkte_x%(found_quelle%-1)
  2198.             dreh_y%=punkte_y%(found_quelle%-1)
  2199.             do_niv_tangente(found_quelle%,von%,bis%,dreh_x%,dreh_y%)
  2200.           ELSE
  2201.             IF punkte_def|(found_quelle%-1)=da|
  2202.               found%=found_quelle%
  2203.               found_quelle%=found%-2
  2204.               von%=found%-1
  2205.               bis%=von%+3
  2206.               dreh_x%=punkte_x%(found%-1)
  2207.               dreh_y%=punkte_y%(found%-1)
  2208.               do_niv_tangente(found_quelle%,von%,bis%,dreh_x%,dreh_y%)
  2209.             ELSE
  2210.               IF punkte_def|(found_quelle%-1)=ma|
  2211.                 found%=found_quelle%
  2212.                 REPEAT
  2213.                   INC found%
  2214.                 UNTIL punkte_def|(found%)=ma|
  2215.                 DEC found%
  2216.                 IF punkte_def|(found%)=b3|
  2217.                   DEC found%
  2218.                   von%=found%-2
  2219.                   bis%=von%+3
  2220.                   dreh_x%=punkte_x%(found_quelle%-1)
  2221.                   dreh_y%=punkte_y%(found_quelle%-1)
  2222.                   do_niv_tangente(found_quelle%,von%,bis%,dreh_x%,dreh_y%)
  2223.                 ELSE
  2224.                   IF punkte_def|(found%)=da|
  2225.                     f%=found_quelle%
  2226.                     found_quelle%=found%-1
  2227.                     found%=f%
  2228.                     von%=found%-1
  2229.                     bis%=von%+3
  2230.                     dreh_x%=punkte_x%(found_quelle%+1)
  2231.                     dreh_y%=punkte_y%(found_quelle%+1)
  2232.                     do_niv_tangente(found_quelle%,von%,bis%,dreh_x%,dreh_y%)
  2233.                   ENDIF
  2234.                 ENDIF
  2235.               ENDIF
  2236.             ENDIF
  2237.           ENDIF
  2238.         ELSE
  2239.           IF quelle_def|=b2|
  2240.             IF punkte_def|(found_quelle%+2)=b1|
  2241.               found%=found_quelle%+2
  2242.               von%=found_quelle%+1
  2243.               bis%=von%+3
  2244.               dreh_x%=punkte_x%(found_quelle%+1)
  2245.               dreh_y%=punkte_y%(found_quelle%+1)
  2246.               do_niv_tangente(found_quelle%,von%,bis%,dreh_x%,dreh_y%)
  2247.             ELSE
  2248.               IF punkte_def|(found_quelle%+2)=da|
  2249.                 found%=found_quelle%
  2250.                 found_quelle%=found%+2
  2251.                 von%=found%-2
  2252.                 bis%=von%+3
  2253.                 dreh_x%=punkte_x%(found%+1)
  2254.                 dreh_y%=punkte_y%(found%+1)
  2255.                 do_niv_tangente(found_quelle%,von%,bis%,dreh_x%,dreh_y%)
  2256.               ELSE
  2257.                 IF punkte_def|(found_quelle%+2)=ma|
  2258.                   found%=found_quelle%
  2259.                   REPEAT
  2260.                     DEC found%
  2261.                   UNTIL punkte_def|(found%)=ma|
  2262.                   INC found%
  2263.                   IF punkte_def|(found%)=b1|
  2264.                     von%=found%-1
  2265.                     bis%=von%+3
  2266.                     dreh_x%=punkte_x%(found_quelle%+1)
  2267.                     dreh_y%=punkte_y%(found_quelle%+1)
  2268.                     do_niv_tangente(found_quelle%,von%,bis%,dreh_x%,dreh_y%)
  2269.                   ELSE
  2270.                     IF punkte_def|(found%)=da|
  2271.                       f%=found_quelle%
  2272.                       found_quelle%=found%
  2273.                       found%=f%
  2274.                       von%=found%-2
  2275.                       bis%=von%+3
  2276.                       dreh_x%=punkte_x%(found_quelle%-1)
  2277.                       dreh_y%=punkte_y%(found_quelle%-1)
  2278.                       do_niv_tangente(found_quelle%,von%,bis%,dreh_x%,dreh_y%)
  2279.                     ENDIF
  2280.                   ENDIF
  2281.                 ENDIF
  2282.               ENDIF
  2283.             ENDIF
  2284.           ENDIF
  2285.         ENDIF
  2286.       ENDIF
  2287.     UNTIL taste|=2
  2288.     DEFMOUSE 3
  2289.   ENDIF
  2290. RETURN
  2291. '
  2292. ' *****************************************************************************
  2293. ' *                               ASCII Editor                                *
  2294. ' *                                                                           *
  2295. ' *                                                                           *
  2296. ' *                                                                          ' ******************************************************************************
  2297. ' *                                                                            *
  2298. ' *                                   CUTOUT                                   *
  2299. ' *                                                                            *
  2300. ' *                                 27.02.1992                                 *
  2301. ' *                                                                            *
  2302. ' ******************************************************************************
  2303. '
  2304. '
  2305. $B+
  2306. $I-
  2307. INLINE scsi%,933
  2308. DIM buffer|(512*2)
  2309. DIM command|(12)
  2310. ' VAR:
  2311. ' apl_id&=APPL_INIT()
  2312. magic%=14031952
  2313. '
  2314. ' serien_nummer$="REGIST00"
  2315. ' serien_nummer_vergleich$="REGIST11"
  2316. serien_nummer$=MKD$(101)
  2317. serien_nummer_vergleich$=MKD$(101 XOR magic%)
  2318. '
  2319. fang_schnittpunkt|=4
  2320. buffer%=0
  2321. buffer_max%=0
  2322. poly_len%=0
  2323. bits%=0
  2324. punkt_eintrag&=0
  2325. x_start&=0
  2326. y_start&=0
  2327. edi_max&=0
  2328. m=0
  2329. m_neu=0
  2330. bit_count|=0
  2331. pixel!=FALSE
  2332. '
  2333. regist_nr%=0
  2334. revision$="1.59"
  2335. zeit%=TIMER
  2336. calamus_nr%=0
  2337. ortho|=45
  2338. ortho=RAD(ortho|)
  2339. ortho2=ortho/2
  2340. x_win&=0                                         ! Window X pos  aktuell
  2341. y_win&=0                                         ! Window Y pos  aktuell
  2342. x_window&=0                                      ! Window X pos  aktuell
  2343. y_window&=0                                      ! Window Y pos  aktuell
  2344. b_window&=0                                      ! Window Breite aktuell
  2345. h_window&=0                                      ! Window Höhe   aktuell
  2346. ~WIND_GET(0,4,scrx&,scry&,scrb&,scrh&)           ! maximaler Desktop
  2347. wmx%=scrb&-62
  2348. wmy%=scrh&-57+scry&
  2349. desk_breite&=scrb&
  2350. desk_hoehe&=scrh&+scry&
  2351. gross_bildschirm!=FALSE
  2352. IF desk_breite&>640 OR desk_hoehe&>400
  2353.   gross_bildschirm!=TRUE
  2354. ENDIF
  2355. ADD scrx&,42                                     ! Position Window X+Menuleiste
  2356. SUB scrb&,42                                     ! Breite   Window
  2357. scrb_old&=scrb&
  2358. scrh_old&=scrh&
  2359. res_x%=0                                         ! Auflösung x in mm
  2360. res_y%=0                                         ! Auflösung y in mm
  2361. res_x_old%=0
  2362. res_y_old%=0
  2363. x_layer%=0
  2364. y_layer%=0
  2365. x_layero%=0
  2366. y_layero%=0
  2367. x_offset&=0                                      ! Nullpunkt x im Fenster
  2368. y_offset&=0                                      ! Nullpunkt y im Fenster
  2369. x_offset_old&=0
  2370. y_offset_old&=0
  2371. x_mouse%=0
  2372. y_mouse%=0
  2373. x_mouse_old%=0
  2374. y_mouse_old%=0
  2375. x_mouse_0%=0
  2376. y_mouse_0%=0
  2377. objectbox_x0%=0
  2378. objectbox_y0%=0
  2379. objectbox_x1%=0
  2380. objectbox_y1%=0
  2381. grid%=10                                        ! raster mm
  2382. schraff_dist=201
  2383. schraff_inc=0
  2384. schraff_fix_abst=0
  2385. schraff_winkel=0
  2386. schraff_start%=0
  2387. schraff_y_min%=0
  2388. bit_count_max|=6
  2389. geraden_fehler|=1
  2390. lange_gerade%=4000
  2391. schmutz_filter%=20
  2392. knick_winkel_max=RAD(140)
  2393. bogen_max=PI/2/2
  2394. abweichung_gerade%=0.5*100
  2395. last_poly_s%=-1
  2396. last_poly_e%=-1
  2397. taste|=0
  2398. zoom=1
  2399. zoom_old=1
  2400. zoom_100=1
  2401. pointer%=0                                       ! Zeiger auf Punkteliste
  2402. found%=0                                         ! gefundener Punkt bei SNAP
  2403. found_t%=0                                       ! gefundener Kurvenparameter
  2404. schnittpunkt_genau%=16                           ! Zerlegung Bezier in Teile
  2405. anz_schnittpunkte%=0                             ! Anzahl Schnittpunkte
  2406. b_vari=100
  2407. i%=0                                             ! allgemeiner Schleifenzähler
  2408. ii%=0
  2409. iii%=0
  2410. d0%=0
  2411. dx%=0
  2412. dy%=0
  2413. dx=0
  2414. dy=0
  2415. schnitt_laenge=0
  2416. kostfak=1
  2417. gkosten=0
  2418. px0%=0
  2419. py0%=0
  2420. px1%=0
  2421. py1%=0
  2422. px2%=0
  2423. py2%=0
  2424. px3%=0
  2425. py3%=0
  2426. m_square_breite&=&H3000
  2427. m_square_hoehe&=&H3000
  2428. kerning_256|=m_square_breite& DIV 256
  2429. len_pair_daten&=0
  2430. z_hoehe_def%=16384                               ! Höhe des definierten Zsatzes
  2431. z_breite_def%=16384                              ! Breite     "
  2432. zeichen_hoehe%=3000                              ! gewünschte Höhe in 1/100 mm
  2433. versal_def%=0                                    ! Versal     Höhe in 1/100 mm
  2434. z_ascii_scale=zeichen_hoehe%/z_hoehe_def%        ! Scaling
  2435. z_ascii_scale_old=z_ascii_scale                  ! save Scaling
  2436. global_kerning%=1280                             ! globales Kerning
  2437. zeilen_abstand_prozent%=125                      ! relativer Zeilen Abstand
  2438. zeilen_abstand%=zeichen_hoehe%*zeilen_abstand_prozent%/100-zeichen_hoehe%
  2439. z_cursor_x_spalte%=0                             ! Start String
  2440. z_cursor_x%=0                                    ! ASCII Zeichen Cursor X
  2441. z_cursor_y%=0                                    ! ASCII Zeichen Cursor y
  2442. z_cursor_x_old%=0                                ! letztes Zeichen Cursor X
  2443. z_cursor_y_old%=0                                ! letztes Zeichen Cursor y
  2444. z_ascii_old%=0                                   ! letztes Zeichen ASCII+32
  2445. z_satz_pointer%=0                                ! Pointer auf Zeichensatz
  2446. state_rs232&=0                                   ! Centronics aktiv
  2447. state_hp&=0                                      ! HPGL aktiv
  2448. folie_x%=1188                                    ! Folien Grö₧e
  2449. folie_y%=840
  2450. plotter_x_min%=0
  2451. plotter_y_min%=0
  2452. gdu=0                                            ! 100*Plottereinheit
  2453. sel_start%=0
  2454. sel_end%=0
  2455. gtxv&=0
  2456. gtyv&=0
  2457. gtbv&=216
  2458. gthv&=297
  2459. gtdpiv&=300
  2460. gtfarbev&=3
  2461. gtkontrav&=3
  2462. exit_button&=0
  2463. cursor_x&=0
  2464. cursor_y&=0
  2465. ofn_ver|=0
  2466. overcut|=0
  2467. geschlossen%=0
  2468. '
  2469. phi_x_3d=0
  2470. phi_y_3d=0
  2471. a2_3d=0
  2472. '
  2473. daten_ptr%=0
  2474. work_space%=0
  2475. '
  2476. ' CONST:
  2477. '
  2478. IF FRE(0)>4000000
  2479.   p_max%=99999
  2480. ELSE
  2481.   p_max%=60000
  2482. ENDIF
  2483. ma|=0
  2484. da|=1
  2485. b1|=2
  2486. b2|=3
  2487. b3|=4
  2488. ein_drittel=1/3
  2489. fmin=2.225073858507E-307
  2490. fmin1=0.005
  2491. max1=0.995
  2492. pimal2=PI*2
  2493. pihalbe=PI/2
  2494. pidrittel=PI/3
  2495. fang_rad%=8*100                                  ! FANGRADIUS
  2496. p_at%=XBIOS(3)+76                                ! PRINT AT FÜR X,Y
  2497. p_at_zoom%=p_at%-12                              ! PRINT AT FÜR ZOOM
  2498. x_bytes%=(scrb&+42)/8                            ! BYTES IN X RICHTUNG DESKTOP
  2499. '
  2500. ' CONST: Menuleiste
  2501. '
  2502. tree00&=0
  2503. tree0_adr%=0
  2504. datei&=3
  2505. eintrag&=4
  2506. mfenster&=10
  2507. mtext&=5
  2508. mzedi&=6
  2509. spezial&=7
  2510. all_clear&=8
  2511. bbogen&=9
  2512. mschnitt&=11
  2513. '
  2514. tree01&=1
  2515. tree1_adr%=0
  2516. back_main&=3
  2517. fwd_main&=4
  2518. gerade&=5
  2519. kurve&=6
  2520. schliess&=7
  2521. verrunde&=8
  2522. loeschen&=9
  2523. lock&=10
  2524. snap&=11
  2525. bild&=12
  2526. zircel&=13
  2527. bezier4&=14
  2528. schere&=15
  2529. ' fenster&=15
  2530. '
  2531. tree02&=2
  2532. tree2_adr%=0
  2533. back_datei&=3
  2534. fwd_datei&=4
  2535. l_vek&=5
  2536. l_merge&=6
  2537. r_macro&=7
  2538. r_cvg&=8
  2539. l_img&=9
  2540. l_pic&=10
  2541. ordner&=11
  2542. s_vek&=12
  2543. s_plt&=13
  2544. a_plotter&=14
  2545. '
  2546. tree03&=3
  2547. tree3_adr%=0
  2548. back_fenster&=3
  2549. fwd_fenster&=4
  2550. fmove&=5
  2551. blitz&=6
  2552. fcopy&=7
  2553. fzoom&=8
  2554. fzoomp&=9
  2555. fdreh&=10
  2556. fspiegel&=11
  2557. fkursiv&=12
  2558. dreh3d&=13
  2559. drehxp&=14
  2560. drehxm&=15
  2561. drehym&=16
  2562. drehyp&=17
  2563. floesch&=18
  2564. fzoom1&=19
  2565. '
  2566. tree04&=4
  2567. tree4_adr%=0
  2568. back_spezial&=3
  2569. gtepson&=4
  2570. handy&=5
  2571. kontour&=6
  2572. filter&=7
  2573. trace&=8
  2574. smooth&=9
  2575. simag&=10
  2576. '
  2577. tree05&=5
  2578. tree5_adr%=0
  2579. back_text&=3
  2580. fwd_text&=4
  2581. z_edit&=5
  2582. z_editor&=6
  2583. z_string&=7
  2584. z_t_hoehe&=8
  2585. z_t_abstand&=9
  2586. z_g_kerning&=10
  2587. z_read_ascii&=11
  2588. l_font&=12
  2589. s_font&=14
  2590. c_font&=13
  2591. '
  2592. tree06&=6
  2593. tree6_adr%=0
  2594. t_hoehe&=1
  2595. '
  2596. tree07&=7
  2597. tree7_adr%=0
  2598. zabs&=1
  2599. '
  2600. tree08&=8                                         ! String Text
  2601. tree8_adr%=0
  2602. string_text&=1
  2603. breite&=3
  2604. string_breite&=4
  2605. versal&=5
  2606. string_versal&=6
  2607. pfad&=7
  2608. do_kerning&=8
  2609. string_kreis&=9
  2610. string_kreis_von&=10
  2611. string_kreis_bis&=11
  2612. fontname&=13
  2613. c_text&=14
  2614. icon_pair&=15
  2615. icon_trep&=16
  2616. '
  2617. tree09&=9                                         ! Zeichen Editor
  2618. tree9_adr%=0
  2619. back_editor&=3
  2620. m_matrix&=4
  2621. z_matrix&=5
  2622. move_matrix&=6
  2623. kerning_links&=7
  2624. kerning_rechts&=8
  2625. kerning_auto&=9
  2626. z_get&=10
  2627. z_muell&=11
  2628. z_up&=13
  2629. z_down&=14
  2630. z_char&=15
  2631. '
  2632. tree10&=10
  2633. tree10_adr%=0
  2634. b_kerning&=2
  2635. g_kerning&=3
  2636. '
  2637. tree11&=11                                       ! Optimier
  2638. tree11_adr%=0
  2639. del_ma&=4
  2640. del_ge&=6
  2641. del_el&=8
  2642. '
  2643. tree12&=12
  2644. tree12_adr%=0
  2645. bstep&=1
  2646. '
  2647. tree13&=13                                       ! Info
  2648. tree13_adr%=0
  2649. vernr&=7
  2650. version&=4
  2651. firma&=4
  2652. strasse&=7
  2653. stadt&=10
  2654. punkte&=15
  2655. rest&=17
  2656. '
  2657. tree14&=14                                       ! Auflösung
  2658. tree14_adr%=0
  2659. rx1&=8
  2660. ry1&=10
  2661. rx2&=12
  2662. ry2&=13
  2663. rx3&=16
  2664. ry3&=17
  2665. get_pf&=19
  2666. r1&=4
  2667. r2&=5
  2668. r3&=6
  2669. '
  2670. tree15&=15                                       ! Plotter INIT
  2671. tree15_adr%=0
  2672. p_init1&=3
  2673. p_init2&=4
  2674. gdu01&=9
  2675. gdu025&=10
  2676. gdu05&=11
  2677. gdu1&=12
  2678. overcut&=16
  2679. cent&=18
  2680. rs232&=20
  2681. hp&=23
  2682. gp&=24
  2683. mgl&=25
  2684. ma&=29
  2685. da&=30
  2686. '
  2687. tree16&=16                                       ! Pfade und Parameter
  2688. tree16_adr%=0
  2689. pv&=5
  2690. pp&=7
  2691. pfi&=9
  2692. pg&=11
  2693. pf&=13
  2694. df&=15
  2695. p1&=17
  2696. p2&=19
  2697. schnitt&=21
  2698. gdu&=23
  2699. foliex&=25
  2700. foliey&=27
  2701. warn&=29
  2702. cancel&=31
  2703. '
  2704. tree17&=17
  2705. tree17_adr%=0
  2706. outl&=1
  2707. outl_anz&=2
  2708. '
  2709. tree18&=18
  2710. tree18_adr%=0
  2711. schraffd&=1
  2712. schraffi&=2
  2713. schrafix&=3
  2714. schraffw&=4
  2715. schraffa&=7
  2716. schrafff&=8
  2717. '
  2718. tree19&=19
  2719. tree19_adr%=0
  2720. necka&=1
  2721. neckp&=2
  2722. '
  2723. tree20&=20                                      ! Füll
  2724. tree20_adr%=0
  2725. fill1&=3
  2726. fill2&=5
  2727. fill3&=7
  2728. fill4&=9
  2729. fill5&=11
  2730. fill6&=13
  2731. fill7&=15
  2732. fillcancel&=17
  2733. '
  2734. tree21&=21                                      ! Trace
  2735. tree21_adr%=0
  2736. t_step&=7
  2737. t_gerade&=8
  2738. t_schmutz&=9
  2739. bschwelle&=21
  2740. knickwinkel&=22
  2741. bogen_max&=23
  2742. abweichung_gerade&=24
  2743. nur_gerade&=13
  2744. trace_cancel&=14
  2745. gerade_bezier&=30
  2746. '
  2747. tree22&=22
  2748. tree22_adr%=0
  2749. scann_x&=1
  2750. scann_y&=2
  2751. '
  2752. tree23&=23
  2753. tree23_adr%=0
  2754. radius&=1
  2755. '
  2756. tree24&=24
  2757. tree24_adr%=0
  2758. grau&=6
  2759. stark&=7
  2760. selgrau0&=4
  2761. selgrau&=5
  2762. sellinie&=8
  2763. alle&=9
  2764. auswahl&=10
  2765. '
  2766. tree25&=25                               ! Bogen
  2767. tree25_adr%=0
  2768. backboge&=3
  2769. vkreis&=4
  2770. kreis3&=5
  2771. kreisbog&=6
  2772. bogen3&=7
  2773. bogen2&=8
  2774. ellipse&=9
  2775. elbogen&=10
  2776. eckrund&=11
  2777. '
  2778. tree26&=26                               ! Koordinaten
  2779. tree26_adr%=0
  2780. absolut&=2
  2781. relativ&=3
  2782. polar&=4
  2783. '
  2784. tree27&=27                               ! Calamus Versions Nr.
  2785. tree27_adr%=0
  2786. calamus_nr&=1
  2787. '
  2788. tree28&=28                               ! GT 6000
  2789. tree28_adr%=0
  2790. gtscan&=47
  2791. gtx&=38
  2792. gty&=44
  2793. gtb&=42
  2794. gth&=43
  2795. gtcancel&=46
  2796. gtpresca&=45
  2797. gtdpi&=35
  2798. gtdpimin&=33
  2799. gtdpiplu&=34
  2800. gtprewin&=1
  2801. gtstate&=5
  2802. gtkeiner&=9
  2803. gtraster&=10
  2804. gtweich&=11
  2805. gthart&=12
  2806. gtkeine&=15
  2807. gtrot&=18
  2808. gtgruen&=17
  2809. gtblau&=16
  2810. k0&=22
  2811. k1&=23
  2812. k2&=24
  2813. k3&=25
  2814. k4&=26
  2815. k5&=27
  2816. k6&=28
  2817. '
  2818. tree29&=29                               ! Kosten
  2819. tree29_adr%=0
  2820. kostfak&=1
  2821. sl&=2
  2822. gkosten&=4
  2823. '
  2824. tree30&=30                               ! Select Filter
  2825. tree30_adr%=0
  2826. abs_filter&=1
  2827. '
  2828. tree31&=31                               ! Select Fenster
  2829. tree31_adr%=0
  2830. ohnecopy&=1
  2831. mitcopy&=6
  2832. anz_rot&=3
  2833. phi_rot&=4
  2834. numohne&=5
  2835. ausricht_vector&=7
  2836. '
  2837. tree32&=32                               ! Select Spiegel
  2838. tree32_adr%=0
  2839. anbox&=2
  2840. anachse&=1
  2841. '
  2842. tree33&=33
  2843. tree33_adr%=0
  2844. teil&=1
  2845. '
  2846. tree34&=34                               ! Schnittpunkt
  2847. tree34_adr%=0
  2848. backschn&=3
  2849. fwdschn&=4
  2850. trimm&=5
  2851. knack&=6
  2852. lot&=7
  2853. teilen&=8
  2854. lang&=9
  2855. schnitt2&=10
  2856. schnittn&=11
  2857. delseg&=12
  2858. delel&=13
  2859. schmelz&=14
  2860. '
  2861. tree35&=35                              ! Select Copy
  2862. tree35_adr%=0
  2863. copysing&=1
  2864. copymul&=2
  2865. cx&=4
  2866. cy&=5
  2867. canz&=6
  2868. cdist&=7
  2869. '
  2870. tree36&=36                              ! Ausrichten
  2871. tree36_adr%=0
  2872. a_olinks&=1
  2873. a_oben&=2
  2874. a_orechts&=3
  2875. a_links&=4
  2876. a_mitte&=5
  2877. a_rechts&=6
  2878. a_ulinks&=7
  2879. a_unten&=8
  2880. a_urechts&=9
  2881. '
  2882. tree37&=37                              ! Scalieren
  2883. tree37_adr%=0
  2884. scale_interactiv&=1
  2885. scale_numerisch&=2
  2886. scale_breite&=4
  2887. scale_hoehe&=5
  2888. '
  2889. tree38&=38                              ! Ordner
  2890. tree38_adr%=0
  2891. ordnert&=1
  2892. ordnerok&=2
  2893. ordnerca&=3
  2894. '
  2895. tree39&=39                              ! Kerning
  2896. tree39_adr%=0
  2897. kerning_box&=1
  2898. kerning_minus&=3
  2899. kerning_plus&=4
  2900. kerning_last&=2
  2901. kerning_next&=5
  2902. kerning_exit&=6
  2903. kerning_minus2&=9
  2904. kerning_plus2&=10
  2905. kerning_last2&=8
  2906. kerning_next2&=11
  2907. kerning_clear&=7
  2908. kerning_info&=13
  2909. kerning_pair&=15
  2910. '
  2911. tree40&=40                              ! Plotter OUTPUT
  2912. tree40_adr%=0
  2913. pl100&=3
  2914. plschieber&=4
  2915. plschere&=7
  2916. plschereauf&=5
  2917. plscherezu&=6
  2918. plschere&=7
  2919. '
  2920. tree41&=41                              ! Select Neigen
  2921. tree41_adr%=0
  2922. neige_grad&=2
  2923. neige_vertical&=3
  2924. neige_horizontal&=4
  2925. neige_interaktiv&=5
  2926. '
  2927. ' FLAG:
  2928. '
  2929. undo!=FALSE
  2930. geschlossen!=FALSE
  2931. ok!=FALSE                                        ! allgemein
  2932. layer_geladen!=FALSE                             ! ist  Layer geladen
  2933. layer!=FALSE                                     ! soll Layer gezeigt werden
  2934. window_fulled!=TRUE                              ! ist  Fenster schon gro₧
  2935. voll_bild!=FALSE                                 ! ist  Fenster komplett auf Crt
  2936. eintragen!=FALSE                                 ! ist  eintragen aktiv
  2937. bogen!=FALSE
  2938. mtext!=FALSE
  2939. meditor!=FALSE
  2940. datei!=FALSE
  2941. fenster!=FALSE
  2942. schnittpunktm!=FALSE
  2943. loeschen!=FALSE                                  ! ist  loeschen aktiv
  2944. neues_polygon!=TRUE                              ! erster Punkt im Polygon
  2945. found!=FALSE                                     ! gefunden bei Fangradius
  2946. marker!=FALSE                                    ! sollen Marker gezeigt werden
  2947. marker_select!=FALSE                             ! soll   Marker selectiert
  2948. modified!=FALSE                                  ! wurde Vektorbild geändert
  2949. font_geladen!=FALSE                              ! ist ein Font geladen
  2950. outlined!=FALSE                                  ! wurde Bitmap schon outlined
  2951. auto_schraff!=TRUE
  2952. schraff_fix_abst!=FALSE
  2953. einpassen!=FALSE
  2954. tangente!=FALSE
  2955. tangenten_lock!=TRUE
  2956. warn!=FALSE
  2957. gp_gl!=FALSE                                     ! HPGL oder GPGL
  2958. tasten_rep!=FALSE
  2959. absolut!=TRUE
  2960. relativ!=FALSE
  2961. polar!=FALSE
  2962. absolut_old!=FALSE
  2963. polar_old!=FALSE
  2964. fangklein!=FALSE                                 ! Fangradius gro₧
  2965. fadenkreuz!=FALSE
  2966. polygonmode!=TRUE                                ! Polygonmodus
  2967. ortho!=FALSE
  2968. grid!=FALSE
  2969. scrolled!=FALSE
  2970. move!=FALSE
  2971. drei_d!=FALSE
  2972. status_wechsel!=FALSE
  2973. grid_wechsel!=FALSE
  2974. swap!=FALSE
  2975. '
  2976. ' ARRAY:
  2977. '
  2978. DIM smfdb%(8),dmfdb%(8),p%(8)
  2979. DIM z_smfdb%(8),z_dmfdb%(8),z_p%(8),q_dmfdb%(8)
  2980. DIM punkte_x%(p_max%),punkte_y%(p_max%),punkte_def|(p_max%),buffer%(p_max%/2)
  2981. DIM x_meta%(127),y_meta%(127),punkte_def1|(32)
  2982. ARRAYFILL punkte_def1|(),1
  2983. DIM bezier_x&(33),bezier_y&(33)
  2984. DIM m$(87)
  2985. DIM mk%(60,2)
  2986. DIM m_square%(5)
  2987. DIM z_editor%(32)
  2988. DIM z_ascii%(224),z_kerning&(224*16),z_daten&(224*280),z_pair&(224),z_pair|(224),z_pair_daten|(2000)
  2989. DIM sx1%(9),sy1%(9),sx2%(9),sy2%(9),sp1(9),sp2(9)
  2990. DIM zeilen_buffer$(60)
  2991. rette$=SPACE$(32000)
  2992. pfad$=SPACE$(80)
  2993. kerning_string$=SPACE$(60)
  2994. pfad_pic$=SPACE$(80)
  2995. pfad_img$=SPACE$(80)
  2996. pfad_vek$=SPACE$(80)
  2997. pfad_vek_root$=SPACE$(80)
  2998. pfad_cvg$=SPACE$(80)
  2999. pfad_fnt$=SPACE$(80)
  3000. pfad_cfn$=SPACE$(80)
  3001. default_font$=SPACE$(10)
  3002. programm$=SPACE$(10)
  3003. programm_font$=SPACE$(10)
  3004. test_datei$=SPACE$(10)
  3005. object$=SPACE$(80)
  3006. p_init1$=SPACE$(40)
  3007. p_init2$=SPACE$(40)
  3008. abc$="CutOut Test"
  3009. ma$="M"
  3010. da$="D"
  3011. cutout_font$="CUTOUTOFN"
  3012. calamus_font_grafik$=MKI$(159)+MKI$(15)+MKI$(1)+SPACE$(320)
  3013. ok$="OK"
  3014. ein_space$=" "
  3015. x_y$="X|Y"
  3016. erster$="1. "
  3017. zweiter$="2. "
  3018. help_on$="ON "
  3019. help_off$="OFF"
  3020. vek$="VEK"
  3021. cvg$="CVG"
  3022. img$="IMG"
  3023. plt$="PLT"
  3024. calamus$="CALAMUS"
  3025. cutout$="CutOut"
  3026. ' ****************************************************************************
  3027. OPEN "I",#1,"SYS\LANGUAGE.DRV"
  3028. LINE INPUT #1,pd_menu$
  3029. LINE INPUT #1,pd_datei$
  3030. LINE INPUT #1,pd_editieren$
  3031. LINE INPUT #1,pd_fenster$
  3032. LINE INPUT #1,pd_schnittpunkt$
  3033. LINE INPUT #1,pd_bogen$
  3034. LINE INPUT #1,pd_text$
  3035. LINE INPUT #1,pd_zeicheneditor$
  3036. LINE INPUT #1,pd_extra$
  3037. LINE INPUT #1,pd_quit$
  3038. '
  3039. LINE INPUT #1,pd_optionen$
  3040. LINE INPUT #1,pd_marker_anzeigen$
  3041. LINE INPUT #1,pd_tangenten_anzeigen$
  3042. LINE INPUT #1,pd_fangradius_klein$
  3043. LINE INPUT #1,pd_polygon_modus$
  3044. LINE INPUT #1,pd_schnittpunkt_genau$
  3045. LINE INPUT #1,pd_koordinaten$
  3046. LINE INPUT #1,pd_element_selektieren$
  3047. LINE INPUT #1,pd_polygon_selektieren$
  3048. LINE INPUT #1,pd_warnmeldungen$
  3049. LINE INPUT #1,pd_skaliere_alles$
  3050. LINE INPUT #1,pd_punkte_nivellieren$
  3051. LINE INPUT #1,pd_tangente$
  3052. LINE INPUT #1,pd_plotflaeche$
  3053. LINE INPUT #1,pd_bezier_step_aendern$
  3054. LINE INPUT #1,pd_plotter_einstellung$
  3055. LINE INPUT #1,pd_kosten_faktor$
  3056. LINE INPUT #1,pd_pfad_sichern$
  3057. '
  3058. LINE INPUT #1,pd_figur$
  3059. LINE INPUT #1,pd_rechteck$
  3060. LINE INPUT #1,pd_n_eck$
  3061. LINE INPUT #1,pd_polygon_outline$
  3062. LINE INPUT #1,pd_aequidistante$
  3063. LINE INPUT #1,pd_frame$
  3064. LINE INPUT #1,pd_polygone_ausrichten$
  3065. LINE INPUT #1,pd_polygone_zentrieren$
  3066. LINE INPUT #1,pd_polygone_vereinen$
  3067. LINE INPUT #1,pd_polygone_fuellen$
  3068. LINE INPUT #1,pd_einzelne_punkte_loeschen$
  3069. '
  3070. LINE INPUT #1,pd_linie$
  3071. LINE INPUT #1,pd_bezier_vektor$
  3072. LINE INPUT #1,pd_bezier_einfuegen$
  3073. LINE INPUT #1,pd_tausche_bezier_vektor$
  3074. LINE INPUT #1,pd_knacken$
  3075. LINE INPUT #1,pd_trimmen$
  3076. LINE INPUT #1,pd_lot$
  3077. LINE INPUT #1,pd_verlaengern$
  3078. LINE INPUT #1,pd_teilen$
  3079. LINE INPUT #1,pd_messen$
  3080. LINE INPUT #1,pd_schnittp_2er$
  3081. LINE INPUT #1,pd_schnittp_n$
  3082. '
  3083. LINE INPUT #1,pd_effekt$
  3084. LINE INPUT #1,pd_parameter_schraffur$
  3085. LINE INPUT #1,pd_polygon_schraffieren$
  3086. LINE INPUT #1,pd_alles_schraffieren$
  3087. LINE INPUT #1,pd_schatten$
  3088. LINE INPUT #1,pd_einpassen$
  3089. LINE INPUT #1,pd_kugel$
  3090. '
  3091. LINE INPUT #1,lade$
  3092. LINE INPUT #1,sichere$
  3093. LINE INPUT #1,fuege_ein$
  3094. LINE INPUT #1,vektor$
  3095. LINE INPUT #1,macro$
  3096. LINE INPUT #1,daten$
  3097. LINE INPUT #1,zeichensatz$
  3098. LINE INPUT #1,kein$
  3099. LINE INPUT #1,keine$
  3100. LINE INPUT #1,ja_nein$
  3101. LINE INPUT #1,waehle$
  3102. LINE INPUT #1,fehler$
  3103. LINE INPUT #1,scannen$
  3104. LINE INPUT #1,pre_view$
  3105. LINE INPUT #1,ascii_importieren$
  3106. LINE INPUT #1,ascii_exportieren$
  3107. LINE INPUT #1,schriftblock$
  3108. LINE INPUT #1,radius_zu$
  3109. LINE INPUT #1,winkel_zu$
  3110. LINE INPUT #1,leider$
  3111. LINE INPUT #1,winkel_einstellen$
  3112. LINE INPUT #1,spiegelachse$
  3113. LINE INPUT #1,lupe_mal$
  3114. LINE INPUT #1,fensterbereich$
  3115. LINE INPUT #1,drehzentrum$
  3116. LINE INPUT #1,ordner_exist$
  3117. LINE INPUT #1,kein_leer$
  3118. LINE INPUT #1,suche_schnittpunkte$
  3119. LINE INPUT #1,gleiches_polygon$
  3120. LINE INPUT #1,bezugs$
  3121. LINE INPUT #1,zentriere$
  3122. LINE INPUT #1,huellkurve$
  3123. LINE INPUT #1,huellkurve1$
  3124. LINE INPUT #1,berechne$
  3125. LINE INPUT #1,rechte_taste$
  3126. LINE INPUT #1,endpunkt$
  3127. LINE INPUT #1,lot_an$
  3128. LINE INPUT #1,noname$
  3129. LINE INPUT #1,symbol$
  3130. LINE INPUT #1,orginal_fenster$
  3131. LINE INPUT #1,dmc_font$
  3132. LINE INPUT #1,bild_datei_zu$
  3133. LINE INPUT #1,stad_laden$
  3134. LINE INPUT #1,plotter_ist_off$
  3135. LINE INPUT #1,plot_datei$
  3136. LINE INPUT #1,kein_treiber$
  3137. LINE INPUT #1,schnittstelle_auf$
  3138. LINE INPUT #1,polygone_vereinen$
  3139. LINE INPUT #1,loesche_einzelne$
  3140. LINE INPUT #1,quelle$
  3141. LINE INPUT #1,ziel$
  3142. LINE INPUT #1,nivelliere$
  3143. LINE INPUT #1,alle_daten_l$
  3144. LINE INPUT #1,ganzer_zeichensatz$
  3145. LINE INPUT #1,font_daten_loeschen$
  3146. LINE INPUT #1,zeichen_matrix$
  3147. LINE INPUT #1,datei_existiert$
  3148. LINE INPUT #1,datei_ueberschreiben$
  3149. LINE INPUT #1,glaetten_mit$
  3150. LINE INPUT #1,gerade_bezier$
  3151. LINE INPUT #1,glaetten$
  3152. LINE INPUT #1,bereich$
  3153. LINE INPUT #1,path$
  3154. LINE INPUT #1,help_mittelpunkt$
  3155. LINE INPUT #1,help_radius$
  3156. LINE INPUT #1,help_position$
  3157. LINE INPUT #1,help_startwinkel$
  3158. LINE INPUT #1,help_endwinkel$
  3159. LINE INPUT #1,help_polygon$
  3160. LINE INPUT #1,help_punkt$
  3161. LINE INPUT #1,help_linie$
  3162. LINE INPUT #1,help_element$
  3163. LINE INPUT #1,help_verrund$
  3164. LINE INPUT #1,help_loesche$
  3165. LINE INPUT #1,help_trenn$
  3166. LINE INPUT #1,help_move$
  3167. LINE INPUT #1,help_sel$
  3168. LINE INPUT #1,help_move_window$
  3169. LINE INPUT #1,help_rahmen$
  3170. LINE INPUT #1,help_edit$
  3171. LINE INPUT #1,help_bezier$
  3172. LINE INPUT #1,help_status$
  3173. LINE INPUT #1,help_ortho$
  3174. LINE INPUT #1,help_grid$
  3175. LINE INPUT #1,help_free$
  3176. LINE INPUT #1,help_snap$
  3177. LINE INPUT #1,help_editor$
  3178. LINE INPUT #1,help_pfad$
  3179. CLOSE #1
  3180. ' ****************************************************************************
  3181. integer%=VARPTR(punkte_x%(1))-VARPTR(punkte_x%(0))  ! Länge in Bytes Integer
  3182. '
  3183. z_editor%(0)=2048                                   ! Top      Line   Y
  3184. z_editor%(1)=3072                                   ! Ascent   Line   Y
  3185. z_editor%(2)=6144                                   ! Half     Line   Y
  3186. z_editor%(3)=11264                                  ! Base     Line   Y
  3187. z_editor%(4)=13952                                  ! Descent  Line   Y
  3188. z_editor%(5)=14336                                  ! Bottom   Line   Y
  3189. '
  3190. z_editor%(6)=0                                      ! Matrix   links  X
  3191. z_editor%(7)=16384                                  ! Matrix   rechts X
  3192. z_editor%(8)=1280                                   ! Kerning  links  X
  3193. z_editor%(9)=1280                                   ! Kerning  links  X
  3194. z_editor%(10)=1280                                  ! Kerning  links  X
  3195. z_editor%(11)=1280                                  ! Kerning  links  X
  3196. z_editor%(12)=1280                                  ! Kerning  links  X
  3197. z_editor%(13)=1280                                  ! Kerning  links  X
  3198. z_editor%(14)=1280                                  ! Kerning  links  X
  3199. z_editor%(15)=1280                                  ! Kerning  links  X
  3200. z_editor%(16)=15104                                 ! Kerning  rechts X
  3201. z_editor%(17)=15104                                 ! Kerning  rechts X
  3202. z_editor%(18)=15104                                 ! Kerning  rechts X
  3203. z_editor%(19)=15104                                 ! Kerning  rechts X
  3204. z_editor%(20)=15104                                 ! Kerning  rechts X
  3205. z_editor%(21)=15104                                 ! Kerning  rechts X
  3206. z_editor%(22)=15104                                 ! Kerning  rechts X
  3207. z_editor%(23)=15104                                 ! Kerning  rechts X
  3208. z_editor%(24)=z_editor%(0)                          ! Kerning         Y
  3209. z_editor%(25)=(z_editor%(5)-z_editor%(0))/8         ! Kerning         Y
  3210. z_editor%(26)=z_editor%(24)+z_editor%(25)           ! Kerning         Y
  3211. z_editor%(27)=z_editor%(26)+z_editor%(25)           ! Kerning         Y
  3212. z_editor%(28)=z_editor%(27)+z_editor%(25)           ! Kerning         Y
  3213. z_editor%(29)=z_editor%(28)+z_editor%(25)           ! Kerning         Y
  3214. z_editor%(30)=z_editor%(29)+z_editor%(25)           ! Kerning         Y
  3215. z_editor%(31)=z_editor%(30)+z_editor%(25)           ! Kerning         Y
  3216. z_editor%(32)=0                                     ! Matrix oben     Y
  3217. '
  3218. ' ******************************************************************************
  3219. ' *                                                                            *
  3220. ' *                             MENU INITIALISIERUNG                           *
  3221. ' *                                                                            *
  3222. ' ******************************************************************************
  3223. '
  3224. BMOVE V:serien_nummer$,V:serien_nummer,8
  3225. BMOVE V:serien_nummer_vergleich$,V:serien_nummer_vergleich,8
  3226. regist_nr%=serien_nummer_vergleich
  3227. IF serien_nummer<>(serien_nummer_vergleich XOR magic%)
  3228.   PRINT "SORRY HACKER"
  3229.   PAUSE 300
  3230.   SYSTEM
  3231. ENDIF
  3232. INLINE zasm_ptr%,4136
  3233. INLINE pack_img%,958
  3234. INLINE calc_bezier%,1050
  3235. INLINE p_num%,360
  3236. INLINE find_line%,356
  3237. INLINE kontour%,216
  3238. INLINE staddec%,184
  3239. INLINE imgdec%,228
  3240. INLINE findexcept%,52
  3241. INLINE findpointexcept%,70
  3242. mfang$=MKI$(7)+MKI$(7)+MKI$(1)+MKI$(0)+MKI$(1)
  3243. mfang$=mfang$+MKI$(&X1111111111111110)
  3244. mfang$=mfang$+MKI$(&X1111111111111110)
  3245. mfang$=mfang$+MKI$(&X1100001110000110)
  3246. mfang$=mfang$+MKI$(&X1100001110000110)
  3247. mfang$=mfang$+MKI$(&X1100001110000110)
  3248. mfang$=mfang$+MKI$(&X1100001110000110)
  3249. mfang$=mfang$+MKI$(&X1111110001111110)
  3250. mfang$=mfang$+MKI$(&X1111110001111110)
  3251. mfang$=mfang$+MKI$(&X1111110001111110)
  3252. mfang$=mfang$+MKI$(&X1100001110000110)
  3253. mfang$=mfang$+MKI$(&X1100001110000110)
  3254. mfang$=mfang$+MKI$(&X1100001110000110)
  3255. mfang$=mfang$+MKI$(&X1100001110000110)
  3256. mfang$=mfang$+MKI$(&X1111111111111110)
  3257. mfang$=mfang$+MKI$(&X1111111111111110)
  3258. mfang$=mfang$+MKI$(&X0)
  3259. '
  3260. mfang$=mfang$+MKI$(&X1111111111111110)
  3261. mfang$=mfang$+MKI$(&X1000000100000010)
  3262. mfang$=mfang$+MKI$(&X1000000100000010)
  3263. mfang$=mfang$+MKI$(&X1000000100000010)
  3264. mfang$=mfang$+MKI$(&X1000000100000010)
  3265. mfang$=mfang$+MKI$(&X1000000100000010)
  3266. mfang$=mfang$+MKI$(&X1000000000000010)
  3267. mfang$=mfang$+MKI$(&X1111110001111110)
  3268. mfang$=mfang$+MKI$(&X1000000000000010)
  3269. mfang$=mfang$+MKI$(&X1000000100000010)
  3270. mfang$=mfang$+MKI$(&X1000000100000010)
  3271. mfang$=mfang$+MKI$(&X1000000100000010)
  3272. mfang$=mfang$+MKI$(&X1000000100000010)
  3273. mfang$=mfang$+MKI$(&X1000000100000010)
  3274. mfang$=mfang$+MKI$(&X1111111111111110)
  3275. mfang$=mfang$+MKI$(&X0)
  3276. '
  3277. mfang_klein$=MKI$(7)+MKI$(7)+MKI$(1)+MKI$(0)+MKI$(1)
  3278. mfang_klein$=mfang_klein$+MKI$(&X0)
  3279. mfang_klein$=mfang_klein$+MKI$(&X0)
  3280. mfang_klein$=mfang_klein$+MKI$(&X11111111111000)
  3281. mfang_klein$=mfang_klein$+MKI$(&X11111111111000)
  3282. mfang_klein$=mfang_klein$+MKI$(&X11001110011000)
  3283. mfang_klein$=mfang_klein$+MKI$(&X11001110011000)
  3284. mfang_klein$=mfang_klein$+MKI$(&X11110001111000)
  3285. mfang_klein$=mfang_klein$+MKI$(&X11110001111000)
  3286. mfang_klein$=mfang_klein$+MKI$(&X11110001111000)
  3287. mfang_klein$=mfang_klein$+MKI$(&X11001110011000)
  3288. mfang_klein$=mfang_klein$+MKI$(&X11001110011000)
  3289. mfang_klein$=mfang_klein$+MKI$(&X11111111111000)
  3290. mfang_klein$=mfang_klein$+MKI$(&X11111111111000)
  3291. mfang_klein$=mfang_klein$+MKI$(&X0)
  3292. mfang_klein$=mfang_klein$+MKI$(&X0)
  3293. mfang_klein$=mfang_klein$+MKI$(&X0)
  3294. '
  3295. mfang_klein$=mfang_klein$+MKI$(&X0)
  3296. mfang_klein$=mfang_klein$+MKI$(&X0)
  3297. mfang_klein$=mfang_klein$+MKI$(&X0)
  3298. mfang_klein$=mfang_klein$+MKI$(&X1111111110000)
  3299. mfang_klein$=mfang_klein$+MKI$(&X1000100010000)
  3300. mfang_klein$=mfang_klein$+MKI$(&X1000100010000)
  3301. mfang_klein$=mfang_klein$+MKI$(&X1000000010000)
  3302. mfang_klein$=mfang_klein$+MKI$(&X1110001110000)
  3303. mfang_klein$=mfang_klein$+MKI$(&X1000000010000)
  3304. mfang_klein$=mfang_klein$+MKI$(&X1000100010000)
  3305. mfang_klein$=mfang_klein$+MKI$(&X1000100010000)
  3306. mfang_klein$=mfang_klein$+MKI$(&X1111111110000)
  3307. mfang_klein$=mfang_klein$+MKI$(&X0)
  3308. mfang_klein$=mfang_klein$+MKI$(&X0)
  3309. mfang_klein$=mfang_klein$+MKI$(&X0)
  3310. mfang_klein$=mfang_klein$+MKI$(&X0)
  3311. '
  3312. mdaten$=MKI$(7)+MKI$(7)+MKI$(1)+MKI$(0)+MKI$(1)
  3313. mdaten$=mdaten$+MKI$(&X1110000000)
  3314. mdaten$=mdaten$+MKI$(&X1110000000)
  3315. mdaten$=mdaten$+MKI$(&X1110000000)
  3316. mdaten$=mdaten$+MKI$(&X1110000000)
  3317. mdaten$=mdaten$+MKI$(&X1110000000)
  3318. mdaten$=mdaten$+MKI$(&X1110000000)
  3319. mdaten$=mdaten$+MKI$(&X1111110001111110)
  3320. mdaten$=mdaten$+MKI$(&X1111110001111110)
  3321. mdaten$=mdaten$+MKI$(&X1111110001111110)
  3322. mdaten$=mdaten$+MKI$(&X1110000000)
  3323. mdaten$=mdaten$+MKI$(&X1110000000)
  3324. mdaten$=mdaten$+MKI$(&X1110000000)
  3325. mdaten$=mdaten$+MKI$(&X1110000000)
  3326. mdaten$=mdaten$+MKI$(&X1110000000)
  3327. mdaten$=mdaten$+MKI$(&X1110000000)
  3328. mdaten$=mdaten$+MKI$(&X0)
  3329. '
  3330. mdaten$=mdaten$+MKI$(&X100000000)
  3331. mdaten$=mdaten$+MKI$(&X100000000)
  3332. mdaten$=mdaten$+MKI$(&X100000000)
  3333. mdaten$=mdaten$+MKI$(&X100000000)
  3334. mdaten$=mdaten$+MKI$(&X100000000)
  3335. mdaten$=mdaten$+MKI$(&X100000000)
  3336. mdaten$=mdaten$+MKI$(&X0)
  3337. mdaten$=mdaten$+MKI$(&X1111110001111110)
  3338. mdaten$=mdaten$+MKI$(&X0)
  3339. mdaten$=mdaten$+MKI$(&X100000000)
  3340. mdaten$=mdaten$+MKI$(&X100000000)
  3341. mdaten$=mdaten$+MKI$(&X100000000)
  3342. mdaten$=mdaten$+MKI$(&X100000000)
  3343. mdaten$=mdaten$+MKI$(&X100000000)
  3344. mdaten$=mdaten$+MKI$(&X100000000)
  3345. mdaten$=mdaten$+MKI$(&X0)
  3346. '
  3347. schwer$=MKI$(7)+MKI$(7)+MKI$(-1)+MKI$(0)+MKI$(1)
  3348. schwer$=schwer$+MKI$(&X0)                     !
  3349. schwer$=schwer$+MKI$(&X0)
  3350. schwer$=schwer$+MKI$(&X11111000000)           !
  3351. schwer$=schwer$+MKI$(&X11111000000)
  3352. schwer$=schwer$+MKI$(&X1100111110000)         !
  3353. schwer$=schwer$+MKI$(&X1100111110000)
  3354. schwer$=schwer$+MKI$(&X10000111111000)        !
  3355. schwer$=schwer$+MKI$(&X10000111111000)
  3356. schwer$=schwer$+MKI$(&X10000111111000)        !
  3357. schwer$=schwer$+MKI$(&X10000111111000)
  3358. schwer$=schwer$+MKI$(&X100000111111100)       !
  3359. schwer$=schwer$+MKI$(&X100000111111100)
  3360. schwer$=schwer$+MKI$(&X100000111111100)       !
  3361. schwer$=schwer$+MKI$(&X100000111111100)
  3362. schwer$=schwer$+MKI$(&X111111011111100)       !!
  3363. schwer$=schwer$+MKI$(&X111111011111100)
  3364. schwer$=schwer$+MKI$(&X111111100000100)       !
  3365. schwer$=schwer$+MKI$(&X111111100000100)
  3366. schwer$=schwer$+MKI$(&X111111100000100)       !
  3367. schwer$=schwer$+MKI$(&X111111100000100)
  3368. schwer$=schwer$+MKI$(&X11111100001000)        !
  3369. schwer$=schwer$+MKI$(&X11111100001000)
  3370. schwer$=schwer$+MKI$(&X11111100001000)        !
  3371. schwer$=schwer$+MKI$(&X11111100001000)
  3372. schwer$=schwer$+MKI$(&X1111100110000)         !
  3373. schwer$=schwer$+MKI$(&X1111100110000)
  3374. schwer$=schwer$+MKI$(&X11111000000)           !
  3375. schwer$=schwer$+MKI$(&X11111000000)
  3376. schwer$=schwer$+MKI$(&X0)                     !
  3377. schwer$=schwer$+MKI$(&X0)
  3378. schwer$=schwer$+MKI$(&X0)                     !
  3379. schwer$=schwer$+MKI$(&X0)
  3380. pfad_read
  3381. reset
  3382. RESERVE -64*1024
  3383. DIM work%((FRE(0)-80*1024)/4)
  3384. daten_ptr%=V:work%(0)
  3385. work_space%=DIM?(work%())*4
  3386. KEYPAD 8
  3387. ~RSRC_LOAD("SYS\CUTOUT.RSC")
  3388. ~RSRC_GADDR(0,tree00&,tree0_adr%)
  3389. ~RSRC_GADDR(0,tree01&,tree1_adr%)
  3390. ~RSRC_GADDR(0,tree02&,tree2_adr%)
  3391. ~RSRC_GADDR(0,tree03&,tree3_adr%)
  3392. ~RSRC_GADDR(0,tree04&,tree4_adr%)
  3393. ~RSRC_GADDR(0,tree05&,tree5_adr%)
  3394. ~RSRC_GADDR(0,tree06&,tree6_adr%)
  3395. ~RSRC_GADDR(0,tree07&,tree7_adr%)
  3396. ~RSRC_GADDR(0,tree08&,tree8_adr%)
  3397. ~RSRC_GADDR(0,tree09&,tree9_adr%)
  3398. ~RSRC_GADDR(0,tree10&,tree10_adr%)
  3399. ~RSRC_GADDR(0,tree11&,tree11_adr%)
  3400. ~RSRC_GADDR(0,tree12&,tree12_adr%)
  3401. ~RSRC_GADDR(0,tree13&,tree13_adr%)
  3402. ~RSRC_GADDR(0,tree14&,tree14_adr%)
  3403. ~RSRC_GADDR(0,tree15&,tree15_adr%)
  3404. ~RSRC_GADDR(0,tree16&,tree16_adr%)
  3405. ~RSRC_GADDR(0,tree17&,tree17_adr%)
  3406. ~RSRC_GADDR(0,tree18&,tree18_adr%)
  3407. ~RSRC_GADDR(0,tree19&,tree19_adr%)
  3408. ~RSRC_GADDR(0,tree20&,tree20_adr%)
  3409. ~RSRC_GADDR(0,tree21&,tree21_adr%)
  3410. ~RSRC_GADDR(0,tree22&,tree22_adr%)
  3411. ~RSRC_GADDR(0,tree23&,tree23_adr%)
  3412. ~RSRC_GADDR(0,tree24&,tree24_adr%)
  3413. ~RSRC_GADDR(0,tree25&,tree25_adr%)
  3414. ~RSRC_GADDR(0,tree26&,tree26_adr%)
  3415. ~RSRC_GADDR(0,tree27&,tree27_adr%)
  3416. ~RSRC_GADDR(0,tree28&,tree28_adr%)
  3417. ~RSRC_GADDR(0,tree29&,tree29_adr%)
  3418. ~RSRC_GADDR(0,tree30&,tree30_adr%)
  3419. ~RSRC_GADDR(0,tree31&,tree31_adr%)
  3420. ~RSRC_GADDR(0,tree32&,tree32_adr%)
  3421. ~RSRC_GADDR(0,tree33&,tree33_adr%)
  3422. ~RSRC_GADDR(0,tree34&,tree34_adr%)
  3423. ~RSRC_GADDR(0,tree35&,tree35_adr%)
  3424. ~RSRC_GADDR(0,tree36&,tree36_adr%)
  3425. ~RSRC_GADDR(0,tree37&,tree37_adr%)
  3426. ~RSRC_GADDR(0,tree38&,tree38_adr%)
  3427. ~RSRC_GADDR(0,tree39&,tree39_adr%)
  3428. ~RSRC_GADDR(0,tree40&,tree40_adr%)
  3429. ~RSRC_GADDR(0,tree41&,tree41_adr%)
  3430. ~FORM_CENTER(tree6_adr%)
  3431. ~FORM_CENTER(tree7_adr%)
  3432. ~FORM_CENTER(tree8_adr%)
  3433. ~FORM_CENTER(tree10_adr%)
  3434. ~FORM_CENTER(tree11_adr%)
  3435. ~FORM_CENTER(tree12_adr%)
  3436. ~FORM_CENTER(tree13_adr%)
  3437. ~FORM_CENTER(tree14_adr%)
  3438. ~FORM_CENTER(tree15_adr%)
  3439. ~FORM_CENTER(tree16_adr%)
  3440. ~FORM_CENTER(tree17_adr%)
  3441. ~FORM_CENTER(tree18_adr%)
  3442. ~FORM_CENTER(tree19_adr%)
  3443. ~FORM_CENTER(tree20_adr%)
  3444. ~FORM_CENTER(tree21_adr%)
  3445. ~FORM_CENTER(tree22_adr%)
  3446. ~FORM_CENTER(tree23_adr%)
  3447. ~FORM_CENTER(tree24_adr%)
  3448. ~FORM_CENTER(tree26_adr%)
  3449. ~FORM_CENTER(tree27_adr%)
  3450. ~FORM_CENTER(tree28_adr%)
  3451. ~FORM_CENTER(tree29_adr%)
  3452. ~FORM_CENTER(tree30_adr%)
  3453. ~FORM_CENTER(tree31_adr%)
  3454. ~FORM_CENTER(tree32_adr%)
  3455. ~FORM_CENTER(tree33_adr%)
  3456. ~FORM_CENTER(tree35_adr%)
  3457. ~FORM_CENTER(tree36_adr%)
  3458. ~FORM_CENTER(tree37_adr%)
  3459. ~FORM_CENTER(tree38_adr%)
  3460. ~FORM_CENTER(tree39_adr%)
  3461. ~FORM_CENTER(tree40_adr%)
  3462. ~FORM_CENTER(tree41_adr%)
  3463. xt6&=DPEEK(tree6_adr%+16)
  3464. yt6&=DPEEK(tree6_adr%+18)
  3465. bt6&=DPEEK(tree6_adr%+20)
  3466. ht6&=DPEEK(tree6_adr%+22)
  3467. xt7&=DPEEK(tree7_adr%+16)
  3468. yt7&=DPEEK(tree7_adr%+18)
  3469. bt7&=DPEEK(tree7_adr%+20)
  3470. ht7&=DPEEK(tree7_adr%+22)
  3471. xt8&=DPEEK(tree8_adr%+16)
  3472. yt8&=DPEEK(tree8_adr%+18)
  3473. bt8&=DPEEK(tree8_adr%+20)
  3474. ht8&=DPEEK(tree8_adr%+22)
  3475. xt10&=DPEEK(tree10_adr%+16)
  3476. yt10&=DPEEK(tree10_adr%+18)
  3477. bt10&=DPEEK(tree10_adr%+20)
  3478. ht10&=DPEEK(tree10_adr%+22)
  3479. xt11&=DPEEK(tree11_adr%+16)
  3480. yt11&=DPEEK(tree11_adr%+18)
  3481. bt11&=DPEEK(tree11_adr%+20)
  3482. ht11&=DPEEK(tree11_adr%+22)
  3483. xt12&=DPEEK(tree12_adr%+16)
  3484. yt12&=DPEEK(tree12_adr%+18)
  3485. bt12&=DPEEK(tree12_adr%+20)
  3486. ht12&=DPEEK(tree12_adr%+22)
  3487. xt13&=DPEEK(tree13_adr%+16)
  3488. yt13&=DPEEK(tree13_adr%+18)
  3489. bt13&=DPEEK(tree13_adr%+20)
  3490. ht13&=DPEEK(tree13_adr%+22)
  3491. xt14&=DPEEK(tree14_adr%+16)
  3492. yt14&=DPEEK(tree14_adr%+18)
  3493. bt14&=DPEEK(tree14_adr%+20)
  3494. ht14&=DPEEK(tree14_adr%+22)
  3495. xt15&=DPEEK(tree15_adr%+16)
  3496. yt15&=DPEEK(tree15_adr%+18)
  3497. bt15&=DPEEK(tree15_adr%+20)
  3498. ht15&=DPEEK(tree15_adr%+22)
  3499. xt16&=DPEEK(tree16_adr%+16)
  3500. yt16&=DPEEK(tree16_adr%+18)
  3501. bt16&=DPEEK(tree16_adr%+20)
  3502. ht16&=DPEEK(tree16_adr%+22)
  3503. xt17&=DPEEK(tree17_adr%+16)
  3504. yt17&=DPEEK(tree17_adr%+18)
  3505. bt17&=DPEEK(tree17_adr%+20)
  3506. ht17&=DPEEK(tree17_adr%+22)
  3507. xt18&=DPEEK(tree18_adr%+16)
  3508. yt18&=DPEEK(tree18_adr%+18)
  3509. bt18&=DPEEK(tree18_adr%+20)
  3510. ht18&=DPEEK(tree18_adr%+22)
  3511. xt19&=DPEEK(tree19_adr%+16)
  3512. yt19&=DPEEK(tree19_adr%+18)
  3513. bt19&=DPEEK(tree19_adr%+20)
  3514. ht19&=DPEEK(tree19_adr%+22)
  3515. xt20&=DPEEK(tree20_adr%+16)
  3516. yt20&=DPEEK(tree20_adr%+18)
  3517. bt20&=DPEEK(tree20_adr%+20)
  3518. ht20&=DPEEK(tree20_adr%+22)
  3519. xt21&=DPEEK(tree21_adr%+16)
  3520. yt21&=DPEEK(tree21_adr%+18)
  3521. bt21&=DPEEK(tree21_adr%+20)
  3522. ht21&=DPEEK(tree21_adr%+22)
  3523. xt22&=DPEEK(tree22_adr%+16)
  3524. yt22&=DPEEK(tree22_adr%+18)
  3525. bt22&=DPEEK(tree22_adr%+20)
  3526. ht22&=DPEEK(tree22_adr%+22)
  3527. xt23&=DPEEK(tree23_adr%+16)
  3528. yt23&=DPEEK(tree23_adr%+18)
  3529. bt23&=DPEEK(tree23_adr%+20)
  3530. ht23&=DPEEK(tree23_adr%+22)
  3531. DPOKE tree24_adr%+16,DPEEK(tree24_adr%+16)+200
  3532. xt24&=DPEEK(tree24_adr%+16)
  3533. yt24&=DPEEK(tree24_adr%+18)
  3534. bt24&=DPEEK(tree24_adr%+20)
  3535. ht24&=DPEEK(tree24_adr%+22)
  3536. xt26&=DPEEK(tree26_adr%+16)
  3537. yt26&=DPEEK(tree26_adr%+18)
  3538. bt26&=DPEEK(tree26_adr%+20)
  3539. ht26&=DPEEK(tree26_adr%+22)
  3540. xt27&=DPEEK(tree27_adr%+16)
  3541. yt27&=DPEEK(tree27_adr%+18)
  3542. bt27&=DPEEK(tree27_adr%+20)
  3543. ht27&=DPEEK(tree27_adr%+22)
  3544. xt28&=DPEEK(tree28_adr%+16)
  3545. yt28&=DPEEK(tree28_adr%+18)
  3546. bt28&=DPEEK(tree28_adr%+20)
  3547. ht28&=DPEEK(tree28_adr%+22)
  3548. xt29&=DPEEK(tree29_adr%+16)
  3549. yt29&=DPEEK(tree29_adr%+18)
  3550. bt29&=DPEEK(tree29_adr%+20)
  3551. ht29&=DPEEK(tree29_adr%+22)
  3552. xt30&=DPEEK(tree30_adr%+16)
  3553. yt30&=DPEEK(tree30_adr%+18)
  3554. bt30&=DPEEK(tree30_adr%+20)
  3555. ht30&=DPEEK(tree30_adr%+22)
  3556. xt31&=DPEEK(tree31_adr%+16)
  3557. yt31&=DPEEK(tree31_adr%+18)
  3558. bt31&=DPEEK(tree31_adr%+20)
  3559. ht31&=DPEEK(tree31_adr%+22)
  3560. xt32&=DPEEK(tree32_adr%+16)
  3561. yt32&=DPEEK(tree32_adr%+18)
  3562. bt32&=DPEEK(tree32_adr%+20)
  3563. ht32&=DPEEK(tree32_adr%+22)
  3564. xt35&=DPEEK(tree35_adr%+16)
  3565. yt35&=DPEEK(tree35_adr%+18)
  3566. bt35&=DPEEK(tree35_adr%+20)
  3567. ht35&=DPEEK(tree35_adr%+22)
  3568. xt33&=DPEEK(tree33_adr%+16)
  3569. yt33&=DPEEK(tree33_adr%+18)
  3570. bt33&=DPEEK(tree33_adr%+20)
  3571. ht33&=DPEEK(tree33_adr%+22)
  3572. xt36&=DPEEK(tree36_adr%+16)
  3573. yt36&=DPEEK(tree36_adr%+18)
  3574. bt36&=DPEEK(tree36_adr%+20)
  3575. ht36&=DPEEK(tree36_adr%+22)
  3576. xt37&=DPEEK(tree37_adr%+16)
  3577. yt37&=DPEEK(tree37_adr%+18)
  3578. bt37&=DPEEK(tree37_adr%+20)
  3579. ht37&=DPEEK(tree37_adr%+22)
  3580. xt38&=DPEEK(tree38_adr%+16)
  3581. yt38&=DPEEK(tree38_adr%+18)
  3582. bt38&=DPEEK(tree38_adr%+20)
  3583. ht38&=DPEEK(tree38_adr%+22)
  3584. xt39&=DPEEK(tree39_adr%+16)
  3585. yt39&=DPEEK(tree39_adr%+18)
  3586. bt39&=DPEEK(tree39_adr%+20)
  3587. ht39&=DPEEK(tree39_adr%+22)
  3588. xt40&=DPEEK(tree40_adr%+16)
  3589. yt40&=DPEEK(tree40_adr%+18)
  3590. bt40&=DPEEK(tree40_adr%+20)
  3591. ht40&=DPEEK(tree40_adr%+22)
  3592. xt41&=DPEEK(tree41_adr%+16)
  3593. yt41&=DPEEK(tree41_adr%+18)
  3594. bt41&=DPEEK(tree41_adr%+20)
  3595. ht41&=DPEEK(tree41_adr%+22)
  3596. bt_output&=OB_W(tree40_adr%,pl100&)
  3597. CHAR{{OB_SPEC(tree6_adr%,t_hoehe&)}}=STR$(INT(zeichen_hoehe%/100))
  3598. CHAR{{OB_SPEC(tree7_adr%,zabs&)}}=STR$(INT(zeilen_abstand_prozent%))
  3599. CHAR{{OB_SPEC(tree9_adr%,z_char&)}}=CHR$(z_ascii_old%+32)
  3600. CHAR{{OB_SPEC(tree8_adr%,string_text&)}}=abc$
  3601. CHAR{{OB_SPEC(tree12_adr%,bstep&)}}=STR$(b_vari/100)
  3602. CHAR{{OB_SPEC(tree13_adr%,punkte&)}}=STR$(pointer%)
  3603. CHAR{{OB_SPEC(tree13_adr%,rest&)}}=STR$(p_max%-pointer%)
  3604. CHAR{{OB_SPEC(tree13_adr%,version&)}}=revision$
  3605. CHAR{{OB_SPEC(tree14_adr%,rx1&)}}=STR$(folie_x%)
  3606. CHAR{{OB_SPEC(tree14_adr%,ry1&)}}=STR$(folie_y%)
  3607. CHAR{{OB_SPEC(tree14_adr%,rx2&)}}=STR$(folie_x2%)
  3608. CHAR{{OB_SPEC(tree14_adr%,ry2&)}}=STR$(folie_y2%)
  3609. CHAR{{OB_SPEC(tree14_adr%,rx3&)}}=STR$(folie_x3%)
  3610. CHAR{{OB_SPEC(tree14_adr%,ry3&)}}=STR$(folie_y3%)
  3611. CHAR{{OB_SPEC(tree15_adr%,p_init1&)}}=p_init1$
  3612. CHAR{{OB_SPEC(tree15_adr%,p_init2&)}}=p_init2$
  3613. CHAR{{OB_SPEC(tree15_adr%,overcut&)}}=STR$(overcut|/10)
  3614. CHAR{{OB_SPEC(tree15_adr%,ma&)}}=ma$
  3615. CHAR{{OB_SPEC(tree15_adr%,da&)}}=da$
  3616. CHAR{{OB_SPEC(tree17_adr%,outl&)}}="3.0"
  3617. CHAR{{OB_SPEC(tree18_adr%,schraffd&)}}=STR$(schraff_dist/100)
  3618. CHAR{{OB_SPEC(tree18_adr%,schraffi&)}}=STR$(schraff_inc/100)
  3619. CHAR{{OB_SPEC(tree18_adr%,schraffw&)}}=STR$(schraff_winkel)
  3620. CHAR{{OB_SPEC(tree18_adr%,schrafix&)}}=STR$(schraff_fix_abst)
  3621. CHAR{{OB_SPEC(tree21_adr%,t_step&)}}=STR$(bit_count_max|)
  3622. CHAR{{OB_SPEC(tree21_adr%,t_gerade&)}}=STR$(geraden_fehler|)
  3623. CHAR{{OB_SPEC(tree21_adr%,t_schmutz&)}}=STR$(schmutz_filter%)
  3624. CHAR{{OB_SPEC(tree21_adr%,bschwelle&)}}=STR$(lange_gerade%/100)
  3625. CHAR{{OB_SPEC(tree21_adr%,knickwinkel&)}}=STR$(CINT(DEG(knick_winkel_max)))
  3626. CHAR{{OB_SPEC(tree21_adr%,bogen_max&)}}=STR$(CINT(DEG(bogen_max*2)))
  3627. CHAR{{OB_SPEC(tree21_adr%,abweichung_gerade&)}}=STR$(abweichung_gerade%/100)
  3628. CHAR{{OB_SPEC(tree22_adr%,scann_x&)}}="1664"
  3629. CHAR{{OB_SPEC(tree22_adr%,scann_y&)}}="800"
  3630. CHAR{{OB_SPEC(tree23_adr%,radius&)}}="10"
  3631. CHAR{{OB_SPEC(tree27_adr%,calamus_nr&)}}=STR$(calamus_nr%)
  3632. CHAR{{OB_SPEC(tree29_adr%,kostfak&)}}=STR$(kostfak)
  3633. CHAR{{OB_SPEC(tree31_adr%,anz_rot&)}}="3"
  3634. CHAR{{OB_SPEC(tree31_adr%,phi_rot&)}}="90"
  3635. OB_STATE(tree15_adr%,rs232&)=state_rs232&+16
  3636. OB_STATE(tree15_adr%,cent&)=state_rs232& XOR 1+16
  3637. OB_STATE(tree15_adr%,hp&)=state_hp&+16
  3638. OB_STATE(tree15_adr%,gp&)=state_hp& XOR 1+16
  3639. OB_STATE(tree26_adr%,absolut&)=absolut!+18
  3640. OB_STATE(tree26_adr%,relativ&)=absolut!+17
  3641. OB_STATE(tree26_adr%,polar&)=absolut!+17
  3642. IF gdu=1
  3643.   OB_STATE(tree15_adr%,gdu01&)=17
  3644. ELSE
  3645.   IF gdu=2.5
  3646.     OB_STATE(tree15_adr%,gdu025&)=17
  3647.   ELSE
  3648.     IF gdu=5
  3649.       OB_STATE(tree15_adr%,gdu05&)=17
  3650.     ELSE
  3651.       OB_STATE(tree15_adr%,gdu1&)=17
  3652.     ENDIF
  3653.   ENDIF
  3654. ENDIF
  3655. OB_STATE(tree1_adr%,lock&)=1
  3656. IF mimaki!
  3657.   OB_STATE(tree15_adr%,gdu05&)=17
  3658.   OB_STATE(tree15_adr%,gdu01&)=8
  3659.   OB_STATE(tree15_adr%,gdu025&)=8
  3660.   OB_STATE(tree15_adr%,gdu1&)=8
  3661.   OB_STATE(tree15_adr%,rs232&)=17
  3662.   OB_STATE(tree15_adr%,mgl&)=17
  3663.   OB_STATE(tree15_adr%,cent&)=16
  3664.   OB_STATE(tree15_adr%,hp&)=16
  3665.   OB_STATE(tree15_adr%,gp&)=16
  3666. ELSE
  3667.   OB_STATE(tree15_adr%,mgl&)=8
  3668. ENDIF
  3669. ~WIND_GET(0,4)                                   ! get desk size
  3670. BMOVE GINTOUT+2,tree0_adr%+16,8                  ! set into rsc
  3671. BMOVE GINTOUT+2,tree1_adr%+16,8                  ! set into rsc
  3672. BMOVE GINTOUT+2,tree2_adr%+16,8                  ! set into rsc
  3673. BMOVE GINTOUT+2,tree3_adr%+16,8                  ! set into rsc
  3674. BMOVE GINTOUT+2,tree4_adr%+16,8                  ! set into rsc
  3675. BMOVE GINTOUT+2,tree5_adr%+16,8                  ! set into rsc
  3676. BMOVE GINTOUT+2,tree9_adr%+16,8                  ! set into rsc
  3677. BMOVE GINTOUT+2,tree25_adr%+16,8                 ! set into rsc
  3678. BMOVE GINTOUT+2,tree34_adr%+16,8                 ! set into rsc
  3679. wind_newdesk(tree0_adr%,0)                       ! install  Datei Baum
  3680. IF default_font$<>""
  3681.   datei$=ein_space$
  3682.   IF EXIST(pfad_fnt$+"\"+default_font$)
  3683.     load_font(pfad_fnt$+"\"+default_font$)
  3684.     programm_font$=LEFT$(default_font$,LEN(default_font$)-4)
  3685.   ELSE
  3686.     make_new_font(-1)
  3687.   ENDIF
  3688. ELSE
  3689.   make_new_font(-1)
  3690. ENDIF
  3691. m$(0)=""
  3692. m$(1)="  CUTOUT"
  3693. m$(2)="--------------------"
  3694. m$(3)=CHR$(2)
  3695. m$(4)=CHR$(3)
  3696. m$(5)=CHR$(4)
  3697. m$(6)=CHR$(5)
  3698. m$(7)=CHR$(6)
  3699. m$(8)=CHR$(7)
  3700. m$(9)=CHR$(8)
  3701. m$(10)=""
  3702. m$(11)=pd_menu$
  3703. m$(12)=pd_datei$
  3704. m$(13)=pd_editieren$
  3705. m$(14)=pd_fenster$
  3706. m$(15)=pd_schnittpunkt$
  3707. m$(16)=pd_bogen$
  3708. m$(17)="----------------------"
  3709. m$(18)=pd_text$
  3710. m$(19)=pd_zeicheneditor$
  3711. m$(20)=m$(17)
  3712. m$(21)=pd_extra$
  3713. m$(22)=m$(17)
  3714. m$(23)=pd_quit$
  3715. m$(24)=""
  3716. m$(25)=pd_optionen$
  3717. m$(26)=pd_marker_anzeigen$
  3718. m$(27)=pd_tangenten_anzeigen$
  3719. m$(28)=pd_fangradius_klein$
  3720. m$(29)=pd_polygon_modus$
  3721. m$(30)=pd_schnittpunkt_genau$
  3722. m$(31)=pd_koordinaten$
  3723. m$(32)=pd_element_selektieren$
  3724. m$(33)=pd_polygon_selektieren$
  3725. m$(34)=pd_warnmeldungen$
  3726. m$(35)="---------------------------"
  3727. m$(36)=pd_skaliere_alles$
  3728. m$(37)=m$(35)
  3729. m$(38)=pd_punkte_nivellieren$
  3730. m$(39)=pd_tangente$
  3731. m$(40)=m$(35)
  3732. m$(41)=pd_plotflaeche$
  3733. m$(42)=pd_bezier_step_aendern$
  3734. m$(43)=pd_plotter_einstellung$
  3735. m$(44)=pd_kosten_faktor$
  3736. m$(45)=pd_pfad_sichern$
  3737. m$(46)=""
  3738. m$(47)=pd_figur$
  3739. m$(48)=pd_rechteck$
  3740. m$(49)=pd_n_eck$
  3741. m$(50)=pd_polygon_outline$
  3742. m$(51)=pd_aequidistante$
  3743. m$(52)=pd_frame$
  3744. m$(53)="---------------------------"
  3745. m$(54)=pd_polygone_ausrichten$
  3746. m$(55)=pd_polygone_zentrieren$
  3747. m$(56)=pd_polygone_vereinen$
  3748. m$(57)=pd_polygone_fuellen$
  3749. m$(58)=m$(53)
  3750. m$(59)=pd_einzelne_punkte_loeschen$
  3751. m$(60)=""
  3752. m$(61)=pd_linie$
  3753. m$(62)=pd_bezier_vektor$
  3754. m$(63)=pd_bezier_einfuegen$
  3755. m$(64)=pd_tausche_bezier_vektor$
  3756. m$(65)=m$(53)
  3757. m$(66)=pd_knacken$
  3758. m$(67)=pd_trimmen$
  3759. m$(68)=pd_lot$
  3760. m$(69)=pd_verlaengern$
  3761. m$(70)=pd_teilen$
  3762. m$(71)=pd_messen$
  3763. m$(72)=m$(53)
  3764. m$(73)=pd_schnittp_2er$
  3765. m$(74)=pd_schnittp_n$
  3766. m$(75)=""
  3767. m$(76)=pd_effekt$
  3768. m$(77)=pd_parameter_schraffur$
  3769. m$(78)=pd_polygon_schraffieren$
  3770. m$(79)=pd_alles_schraffieren$
  3771. m$(80)="------------------------"
  3772. m$(81)=pd_schatten$
  3773. m$(82)=pd_einpassen$
  3774. m$(83)=m$(80)
  3775. m$(84)=pd_kugel$
  3776. m$(85)=""
  3777. m$(86)=""
  3778. MENU m$()
  3779. IF fangklein!
  3780.   MENU 28,1
  3781. ENDIF
  3782. IF polygonmode!
  3783.   MENU 29,1
  3784. ENDIF
  3785. IF warn!
  3786.   MENU 34,1
  3787. ENDIF
  3788. CLIP 0,0,639,399 OFFSET 0,0
  3789. DEFTEXT 1,0,0,6
  3790. COLOR 1
  3791. TEXT 400,7,"Zoom X:"
  3792. TEXT 400,15,"Zoom Y:"
  3793. TEXT 540,7,"X:"
  3794. TEXT 540,15,"Y:"
  3795. DEFTEXT 1,0,0,4
  3796. TEXT 624,7,"mm"
  3797. TEXT 624,15,"mm"
  3798. LINE 536,0,536,20
  3799. LINE 396,0,396,20
  3800. '
  3801. ~FORM_DIAL(3,0,0,0,0,0,0,desk_breite&,desk_hoehe&)                !redraw all
  3802. '
  3803. layer!=FALSE
  3804. zoom=1
  3805. x_layer%=folie_x%
  3806. y_layer%=folie_y%
  3807. x_layero%=x_layer%
  3808. y_layero%=y_layer%
  3809. res_x%=x_layer%
  3810. res_y%=y_layer%
  3811. x_offset&=0
  3812. y_offset&=0
  3813. res_x_old%=x_layer%
  3814. res_y_old%=y_layer%
  3815. x_offset_old&=0
  3816. y_offset_old&=0
  3817. pointer%=0
  3818. get_desktop
  3819. scrb_old&=scrb&
  3820. scrh_old&=scrh&
  3821. CLOSEW 1
  3822. programm$=noname$
  3823. INT{WINDTAB+2}=&X111111000000
  3824. INT{WINDTAB+4}=scrx&
  3825. INT{WINDTAB+6}=scry&
  3826. INT{WINDTAB+8}=scrb&
  3827. INT{WINDTAB+10}=scrh&
  3828. help_titel
  3829. OPENW 1
  3830. calc_slid
  3831. ~WIND_GET(1,4,x_win&,y_win&,b_window&,h_window&)
  3832. neues_polygon!=TRUE
  3833. do_redraw
  3834. DEFMOUSE 3
  3835. p_zoom(zoom*100,zoom*100)
  3836. CHAR{{OB_SPEC(tree14_adr%,rx1&)}}=STR$(x_layer%)
  3837. CHAR{{OB_SPEC(tree14_adr%,ry1&)}}=STR$(y_layer%)
  3838. ' test_vollbild
  3839. '
  3840. ~OBJC_OFFSET(tree28_adr%,gtprewin&,gtxv&,gtyv&)
  3841. gtxv&=gtxv&-x_win&+1
  3842. gtyv&=gtyv&-y_win&+1
  3843. '
  3844. ON MENU MESSAGE GOSUB message
  3845. ON MENU BUTTON 1,1,1 GOSUB button
  3846. ON MENU GOSUB menu
  3847. ON MENU KEY GOSUB key
  3848. ' ON ERROR GOSUB fehler
  3849. '
  3850. '
  3851. REPEAT
  3852.   ON MENU
  3853. UNTIL end!
  3854. '
  3855. IF modified!
  3856.   IF pointer%>0
  3857.     ALERT 3,"| "+sichere$+daten$,1,ja_nein$,i%
  3858.     IF i%=1
  3859.       @save_vektor
  3860.     ENDIF
  3861.   ENDIF
  3862. ENDIF
  3863. '
  3864. ' Bei fertigen Programmen hier nur QUIT
  3865. '
  3866. reset
  3867. ~WIND_GET(0,10)
  3868. IF DPEEK(GINTOUT+2)
  3869.   ALERT 1,"Accessories",1,"Close|Quit",i%
  3870.   IF i%=2
  3871.     QUIT
  3872.   ENDIF
  3873.   REPEAT
  3874.     ~WIND_GET(0,10)
  3875.   UNTIL DPEEK(GINTOUT+2)=0
  3876. ENDIF
  3877. RESERVE                                ! XBIOS(2)-HIMEM+FRE(0)-16384
  3878. '
  3879. PROCEDURE fehler
  3880.   ALERT 1,fehler$,1,leider$,i%
  3881.   '  RESUME NEXT
  3882. RETURN
  3883. '
  3884. '
  3885. PROCEDURE get_undo
  3886.   LOCAL dp%
  3887.   dp%=daten_ptr%
  3888.   IF (pointer%*9+1<work_space%) AND (NOT layer_geladen!)
  3889.     LONG{dp%}=pointer%
  3890.     ADD dp%,4
  3891.     undo!=TRUE
  3892.     BMOVE VARPTR(punkte_x%(0)),dp%,pointer%*4
  3893.     ADD dp%,pointer%*4
  3894.     BMOVE VARPTR(punkte_y%(0)),dp%,pointer%*4
  3895.     ADD dp%,pointer%*4
  3896.     BMOVE VARPTR(punkte_def|(0)),dp%,pointer%
  3897.     undo!=TRUE
  3898.   ELSE
  3899.     undo!=FALSE
  3900.   ENDIF
  3901. RETURN
  3902. '
  3903. PROCEDURE put_undo
  3904.   LOCAL dp%
  3905.   IF undo!
  3906.     dp%=daten_ptr%
  3907.     pointer%=LONG{dp%}
  3908.     ADD dp%,4
  3909.     BMOVE dp%,VARPTR(punkte_x%(0)),pointer%*4
  3910.     ADD dp%,pointer%*4
  3911.     BMOVE dp%,VARPTR(punkte_y%(0)),pointer%*4
  3912.     ADD dp%,pointer%*4
  3913.     BMOVE dp%,VARPTR(punkte_def|(0)),pointer%
  3914.     undo!=FALSE
  3915.     do_redraw
  3916.   ENDIF
  3917. RETURN
  3918. '
  3919. PROCEDURE output_drucker
  3920.   LOCAL handle&,x_resi&,y_resi&,z_old
  3921.   IF GDOS?
  3922.     ERASE work%()
  3923.     IF FRE(0)>250000
  3924.       RESERVE -250000
  3925.       handle&=V_OPNWK(21)
  3926.       IF handle&<>0
  3927.         V~H=handle&
  3928.         x_resi&=INTOUT(0)
  3929.         y_resi&=INTOUT(1)
  3930.         ~V_CLRWK()
  3931.         z_old=zoom
  3932.         zoom=4
  3933.         redraw_ohne(0)
  3934.         ~V_UPDWK()
  3935.         ~V_CLSWK()
  3936.         zoom=z_old
  3937.       ELSE
  3938.       ENDIF
  3939.       RESERVE
  3940.     ELSE
  3941.     ENDIF
  3942.     DIM work%((FRE(0)-80*1024)/4)
  3943.     daten_ptr%=V:work%(0)
  3944.     work_space%=DIM?(work%())*4
  3945.   ELSE
  3946.   ENDIF
  3947. RETURN
  3948. '
  3949. '
  3950. PROCEDURE scan_a1
  3951.   ALERT 3,"| SCAN Hochformat: ",1,"A3|A2|A1",i%
  3952.   SELECT i%
  3953.   CASE 1
  3954.     scann_x%=INT(17*400/8)       !17
  3955.     scann_y%=INT(12*400)        !12
  3956.   CASE 2
  3957.     scann_x%=INT(25*400/8)
  3958.     scann_y%=INT(17*400)
  3959.   CASE 3
  3960.     scann_x%=INT(34*400/8)
  3961.     scann_y%=INT(25*400)
  3962.   ENDSELECT
  3963.   scan_graphtec(3,400,0,0,scann_x%,scann_y%)
  3964. RETURN
  3965. '
  3966. PROCEDURE scan_graphtec(device&,dpi&,x_0%,y_0%,bytes_x%,lines_y%)
  3967.   LOCAL command_bytes&,bytes_to_transfer%,transfer_dir&
  3968.   LOCAL y_offset%,block&,command_bytes&,bytes_to_transfer%
  3969.   ' IF FN test_unit_ready(device&)=0
  3970.   set_graphtec_window(device&,dpi&,x_0%,y_0%,bytes_x%,lines_y%)
  3971.   command_bytes&=10
  3972.   block&=&HFFFF DIV bytes_x% DIV 3
  3973.   bytes_to_transfer%=bytes_x%*block&*3
  3974.   transfer_dir&=0                               ! LESEN
  3975.   command|(0)=&H28
  3976.   command|(1)=0
  3977.   command|(2)=0
  3978.   command|(3)=0
  3979.   command|(4)=0
  3980.   command|(5)=0
  3981.   command|(6)=0
  3982.   command|(7)=0
  3983.   command|(8)=0
  3984.   command|(9)=0
  3985.   WORD{V:command|(7)}=block&
  3986.   '
  3987.   anzahl&=lines_y% DIV block&
  3988.   rest&=lines_y% MOD block&
  3989.   y_offset%=0
  3990.   FOR i%=1 TO anzahl&
  3991.     $c+
  3992.     fehler%=C:scsi%(device&,command_bytes&,bytes_to_transfer%,transfer_dir&,L:V:command|(0),L:daten_ptr%+y_offset%)
  3993.     $c-
  3994.     ADD y_offset%,block&*bytes_x%
  3995.   NEXT i%
  3996.   IF rest&<>0
  3997.     bytes_to_transfer%=bytes_x%*rest&*3
  3998.     WORD{V:command|(7)}=rest&
  3999.     $c+
  4000.     fehler%=C:scsi%(device&,command_bytes&,bytes_to_transfer%,transfer_dir&,L:V:command|(0),L:daten_ptr%+y_offset%)
  4001.     $c-
  4002.   ENDIF
  4003.   '  status&=AND(CARD(fehler%),&X11110)
  4004.   ' message&=CARD(SWAP(fehler%))
  4005.   layer!=TRUE
  4006.   layer_geladen!=TRUE
  4007.   voll_bild!=TRUE
  4008.   outlined!=FALSE
  4009.   do_change_aufloesung(bytes_x%*8,lines_y%,1)
  4010.   init_bit_blit
  4011.   p_zoom(zoom*100,zoom*100)
  4012.   do_redraw
  4013.   ' ENDIF
  4014. RETURN
  4015. '
  4016. PROCEDURE set_graphtec_window(device&,dpi&,x_0%,y_0%,bytes_x%,lines_y%)
  4017.   LOCAL command_bytes&,bytes_to_transfer%,transfer_dir&
  4018.   command_bytes&=10
  4019.   bytes_to_transfer%=53
  4020.   transfer_dir&=1                               ! LESEN (1=SCHREIBEN)
  4021.   command|(0)=&H24
  4022.   command|(1)=0
  4023.   command|(2)=0
  4024.   command|(3)=0
  4025.   command|(4)=0
  4026.   command|(5)=0
  4027.   command|(6)=0
  4028.   command|(7)=0
  4029.   command|(8)=bytes_to_transfer%
  4030.   command|(9)=0
  4031.   FOR i%=0 TO 6
  4032.     buffer|(i%)=0
  4033.   NEXT i%
  4034.   FOR i%=38 TO 47
  4035.     buffer|(i%)=0
  4036.   NEXT i%
  4037.   buffer|(7)=45                         ! Window Descriptor Block Length
  4038.   buffer|(8)=0                          ! Window ID
  4039.   buffer|(9)=0                          ! reserved
  4040.   WORD{V:buffer|(10)}=dpi&              ! X resolution
  4041.   WORD{V:buffer|(12)}=dpi&              ! Y resolution
  4042.   LONG{V:buffer|(14)}=x_0%*24           ! X Upper Left
  4043.   LONG{V:buffer|(18)}=y_0%*3            ! Y Upper Left
  4044.   LONG{V:buffer|(22)}=bytes_x%*24       ! Width
  4045.   LONG{V:buffer|(26)}=lines_y%*3        ! Length
  4046.   buffer|(30)=0                         ! reserved
  4047.   buffer|(31)=0                         ! Kontrast
  4048.   buffer|(32)=0                         ! reserved
  4049.   buffer|(33)=0                         ! Image composition
  4050.   buffer|(34)=1                         ! Bits per Pixel
  4051.   buffer|(35)=0                         ! reserved
  4052.   buffer|(36)=0                         ! reserved
  4053.   buffer|(37)=0                         ! Reverse Image
  4054.   buffer|(48)=2                         ! Cell length
  4055.   buffer|(49)=5                         ! Function Code
  4056.   buffer|(50)=1                         ! Fine Line
  4057.   buffer|(51)=2                         ! Cell length
  4058.   buffer|(52)=6                         ! Function Code
  4059.   buffer|(53)=1                         ! Scann Speed
  4060.   $c+
  4061.   fehler%=C:scsi%(device&,command_bytes&,bytes_to_transfer%,transfer_dir&,L:V:command|(0),L:V:buffer|(0))
  4062.   $c-
  4063. RETURN
  4064. '
  4065. FUNCTION test_unit_ready(device&)
  4066.   command_bytes&=6
  4067.   bytes_to_transfer%=1
  4068.   transfer_dir&=0                               ! LESEN (1=SCHREIBEN)
  4069.   command|(0)=0
  4070.   command|(1)=0
  4071.   command|(2)=0
  4072.   command|(3)=0
  4073.   command|(4)=bytes_to_transfer%
  4074.   command|(5)=0
  4075.   '
  4076.   $c+
  4077.   fehler%=C:scsi%(device&,command_bytes&,L:bytes_to_transfer%,transfer_dir&,L:V:command|(0),L:V:buffer|(0))
  4078.   $c-
  4079.   status&=AND(CARD(fehler%),&X11110)
  4080.   message&=CARD(SWAP(fehler%))
  4081.   '
  4082.   RETURN status&
  4083. ENDFUNC
  4084. '
  4085. '
  4086. PROCEDURE gt_info(i$)
  4087.   CHAR{{OB_SPEC(tree28_adr%,gtstate&)}}=i$
  4088.   ~OBJC_DRAW(tree28_adr%,gtstate&,8,xt28&,yt28&,bt28&,ht28&)
  4089. RETURN
  4090. '
  4091. PROCEDURE dpi_change(prex0&,prey0&,prex0_min&,prey0_min&)
  4092.   CHAR{{OB_SPEC(tree28_adr%,gtdpi&)}}=STR$(gtdpiv&)
  4093.   ~OBJC_DRAW(tree28_adr%,gtdpi&,8,xt28&,yt28&,bt28&,ht28&)
  4094.   CHAR{{OB_SPEC(tree28_adr%,gtb&)}}=STR$(AND(INT(gtbv&/25.4*gtdpiv&),&HFFF8))
  4095.   CHAR{{OB_SPEC(tree28_adr%,gth&)}}=STR$(AND(INT(gthv&/25.4*gtdpiv&),&HFFF8))
  4096.   ~OBJC_DRAW(tree28_adr%,gtb&,8,xt28&,yt28&,bt28&,ht28&)
  4097.   ~OBJC_DRAW(tree28_adr%,gth&,8,xt28&,yt28&,bt28&,ht28&)
  4098.   CHAR{{OB_SPEC(tree28_adr%,gtx&)}}=STR$(AND(INT((prex0&-prex0_min&)/25.4*gtdpiv&),&HFFF8))
  4099.   CHAR{{OB_SPEC(tree28_adr%,gty&)}}=STR$(AND(INT((prey0&-prey0_min&)/25.4*gtdpiv&),&HFFF8))
  4100.   ~OBJC_DRAW(tree28_adr%,gtx&,8,xt28&,yt28&,bt28&,ht28&)
  4101.   ~OBJC_DRAW(tree28_adr%,gty&,8,xt28&,yt28&,bt28&,ht28&)
  4102. RETURN
  4103. '
  4104. PROCEDURE gt_6000
  4105.   LOCAL prex0&,prey0&,prex0_min&,prey0_min&,x_changed&,y_changed&
  4106.   LOCAL prex&,prey&,gthalbton&
  4107.   DEFMOUSE 0
  4108.   SETMOUSE xt28&+240,yt28&+310,0
  4109.   CLIP 0,0,desk_breite&,desk_hoehe& OFFSET x_win&,y_win&
  4110.   ~OBJC_OFFSET(tree28_adr%,gtprewin&,prex&,prey&)
  4111.   gthalbton&=1
  4112.   prex0&=prex&-x_win&+1
  4113.   prey0&=prey&-y_win&+1
  4114.   prex0_min&=prex0&
  4115.   prey0_min&=prey0&
  4116.   prex0_max&=prex0&+217
  4117.   prey0_max&=prey0&+297
  4118.   prex0&=gtxv&
  4119.   prey0&=gtyv&
  4120.   '
  4121.   CHAR{{OB_SPEC(tree28_adr%,gtx&)}}=STR$(AND(INT((prex0&-prex0_min&)/25.4*gtdpiv&),&HFFF8))
  4122.   CHAR{{OB_SPEC(tree28_adr%,gty&)}}=STR$(AND(INT((prey0&-prey0_min&)/25.4*gtdpiv&),&HFFF8))
  4123.   CHAR{{OB_SPEC(tree28_adr%,gtb&)}}=STR$(AND(INT(gtbv&/25.4*gtdpiv&),&HFFF8))
  4124.   CHAR{{OB_SPEC(tree28_adr%,gth&)}}=STR$(AND(INT(gthv&/25.4*gtdpiv&),&HFFF8))
  4125.   CHAR{{OB_SPEC(tree28_adr%,gtdpi&)}}=STR$(gtdpiv&)
  4126.   CHAR{{OB_SPEC(tree28_adr%,gtstate&)}}=waehle$
  4127.   GET xt28&-4,yt28&-4,xt28&+bt28&+4,yt28&+ht28&+4,rette$
  4128.   ~OBJC_DRAW(tree28_adr%,0,8,xt28&,yt28&,bt28&,ht28&)
  4129.   smfdb%(0)=V:prebuf$
  4130.   smfdb%(1)=208
  4131.   smfdb%(2)=292
  4132.   smfdb%(3)=smfdb%(1)/16
  4133.   smfdb%(5)=1
  4134.   dmfdb%(0)=XBIOS(3)
  4135.   dmfdb%(1)=desk_breite&
  4136.   dmfdb%(2)=desk_hoehe&
  4137.   dmfdb%(3)=dmfdb%(1)/16
  4138.   dmfdb%(5)=1
  4139.   p%(0)=0
  4140.   p%(1)=0
  4141.   p%(2)=207
  4142.   p%(3)=291
  4143.   p%(4)=prex&+1
  4144.   p%(5)=prey&+1
  4145.   p%(6)=p%(4)+207
  4146.   p%(7)=p%(5)+291
  4147.   p%(8)=3
  4148.   BITBLT smfdb%(),dmfdb%(),p%()
  4149.   DEFFILL 1,1,1
  4150.   GRAPHMODE 3
  4151.   BOX prex0&,prey0&,prex0&+gtbv&,prey0&+gthv&
  4152.   PBOX prex0&+gtbv&-8,prey0&+gthv&-8,prex0&+gtbv&,prey0&+gthv&
  4153.   REPEAT
  4154.     DO
  4155.       ~FORM_DO(tree28_adr%,0)
  4156.       IF INT{GINTOUT}>0 AND INT{GINTOUT}<100
  4157.         exit_button&=DPEEK(GINTOUT)
  4158.         OB_STATE(tree28_adr%,exit_button&)=0
  4159.         IF exit_button&<>gtprewin&
  4160.           ~OBJC_DRAW(tree28_adr%,exit_button&,8,xt28&,yt28&,bt28&,ht28&)
  4161.         ENDIF
  4162.       ENDIF
  4163.       SELECT exit_button&
  4164.       CASE gtdpimin&
  4165.         IF gtdpiv&>100
  4166.           IF gtdpiv&=480
  4167.             gtdpiv&=400
  4168.           ELSE
  4169.             IF gtdpiv&=600
  4170.               gtdpiv&=480
  4171.             ELSE
  4172.               SUB gtdpiv&,100
  4173.             ENDIF
  4174.           ENDIF
  4175.           dpi_change(prex0&,prey0&,prex0_min&,prey0_min&)
  4176.         ENDIF
  4177.       CASE gtdpiplu&
  4178.         IF gtdpiv&<600
  4179.           IF gtdpiv&=400
  4180.             gtdpiv&=480
  4181.           ELSE
  4182.             IF gtdpiv&=480
  4183.               gtdpiv&=600
  4184.             ELSE
  4185.               ADD gtdpiv&,100
  4186.             ENDIF
  4187.           ENDIF
  4188.           dpi_change(prex0&,prey0&,prex0_min&,prey0_min&)
  4189.         ENDIF
  4190.       CASE gtprewin&
  4191.         MOUSE x_mouse%,y_mouse%,taste|
  4192.         IF x_mouse%>prex0&+gtbv&-8 AND x_mouse%<prex0&+gtbv& AND y_mouse%>prey0&+gthv&-8 AND y_mouse%<prey0&+gthv&
  4193.           DEFMOUSE 3
  4194.           REPEAT
  4195.             MOUSE x_mouse%,y_mouse%,taste|
  4196.             IF x_mouse%<>x_mouse_old% OR y_mouse%<>y_mouse_old%
  4197.               BOX prex0&,prey0&,prex0&+gtbv&,prey0&+gthv&
  4198.               PBOX prex0&+gtbv&-8,prey0&+gthv&-8,prex0&+gtbv&,prey0&+gthv&
  4199.               IF x_mouse%-prex0_min&<217 AND x_mouse%-prex0&>16
  4200.                 gtbv&=x_mouse%-prex0&
  4201.                 i%=AND(INT(gtbv&/25.4*gtdpiv&),&HFFF0)
  4202.                 gtbv&=CINT(i%*25.4/gtdpiv&)
  4203.               ENDIF
  4204.               IF y_mouse%-prey0_min&<298 AND y_mouse%-prey0&>16
  4205.                 gthv&=y_mouse%-prey0&
  4206.               ENDIF
  4207.               BOX prex0&,prey0&,prex0&+gtbv&,prey0&+gthv&
  4208.               PBOX prex0&+gtbv&-8,prey0&+gthv&-8,prex0&+gtbv&,prey0&+gthv&
  4209.               SHOWM
  4210.               x_mouse_old%=x_mouse%
  4211.               y_mouse_old%=y_mouse%
  4212.               CHAR{{OB_SPEC(tree28_adr%,gtb&)}}=STR$(AND(INT(gtbv&/25.4*gtdpiv&),&HFFF0))
  4213.               CHAR{{OB_SPEC(tree28_adr%,gth&)}}=STR$(INT(gthv&/25.4*gtdpiv&))
  4214.               ~OBJC_DRAW(tree28_adr%,gtb&,8,xt28&,yt28&,bt28&,ht28&)
  4215.               ~OBJC_DRAW(tree28_adr%,gth&,8,xt28&,yt28&,bt28&,ht28&)
  4216.             ENDIF
  4217.           UNTIL taste|=0
  4218.           DEFMOUSE 0
  4219.         ELSE
  4220.           IF x_mouse%>prex0& AND x_mouse%<prex0&+gtbv& AND y_mouse%>prey0& AND y_mouse%<prey0&+gthv&
  4221.             x_mouse_old%=x_mouse%
  4222.             y_mouse_old%=y_mouse%
  4223.             DEFMOUSE 3
  4224.             REPEAT
  4225.               MOUSE x_mouse%,y_mouse%,taste|
  4226.               IF x_mouse%<>x_mouse_old% OR y_mouse%<>y_mouse_old%
  4227.                 x_changed&=x_mouse%-x_mouse_old%
  4228.                 y_changed&=y_mouse%-y_mouse_old%
  4229.                 BOX prex0&,prey0&,prex0&+gtbv&,prey0&+gthv&
  4230.                 PBOX prex0&+gtbv&-8,prey0&+gthv&-8,prex0&+gtbv&,prey0&+gthv&
  4231.                 IF prex0&+x_changed&>=prex0_min& AND prex0&+x_changed&+gtbv&<prex0_max&
  4232.                   ADD prex0&,x_changed&
  4233.                 ENDIF
  4234.                 IF prey0&+y_changed&>=prey0_min& AND prey0&+y_changed&+gthv&<prey0_max&
  4235.                   ADD prey0&,y_changed&
  4236.                 ENDIF
  4237.                 BOX prex0&,prey0&,prex0&+gtbv&,prey0&+gthv&
  4238.                 PBOX prex0&+gtbv&-8,prey0&+gthv&-8,prex0&+gtbv&,prey0&+gthv&
  4239.                 SHOWM
  4240.                 x_mouse_old%=x_mouse%
  4241.                 y_mouse_old%=y_mouse%
  4242.                 CHAR{{OB_SPEC(tree28_adr%,gtx&)}}=STR$(AND(INT((prex0&-prex0_min&)/25.4*gtdpiv&),&HFFF8))
  4243.                 CHAR{{OB_SPEC(tree28_adr%,gty&)}}=STR$(AND(INT((prey0&-prey0_min&)/25.4*gtdpiv&),&HFFF8))
  4244.                 ~OBJC_DRAW(tree28_adr%,gtx&,8,xt28&,yt28&,bt28&,ht28&)
  4245.                 ~OBJC_DRAW(tree28_adr%,gty&,8,xt28&,yt28&,bt28&,ht28&)
  4246.               ENDIF
  4247.             UNTIL taste|=0
  4248.             DEFMOUSE 0
  4249.           ENDIF
  4250.         ENDIF
  4251.       CASE gtpresca&
  4252.         gt_info(scannen$+pre_view$)
  4253.         HIDEM
  4254.         gt6000%=VARPTR(gt6000$)
  4255.         $C+
  4256.         VOID C:gt6000%(1,50,3,3,gthalbton&,0,0,26,292,L:V:prebuf$,L:V:prebuf$+8000)
  4257.         $C-
  4258.         OUT (2),13
  4259.         trigger_0
  4260.         DEFMOUSE 3
  4261.         SHOWM
  4262.         BOX prex0&,prey0&,prex0&+gtbv&,prey0&+gthv&
  4263.         PBOX prex0&+gtbv&-8,prey0&+gthv&-8,prex0&+gtbv&,prey0&+gthv&
  4264.         smfdb%(0)=V:prebuf$
  4265.         BITBLT smfdb%(),dmfdb%(),p%()
  4266.         BOX prex0&,prey0&,prex0&+gtbv&,prey0&+gthv&
  4267.         PBOX prex0&+gtbv&-8,prey0&+gthv&-8,prex0&+gtbv&,prey0&+gthv&
  4268.         gt_info(waehle$)
  4269.       ENDSELECT
  4270.       EXIT IF exit_button&=gtcancel&
  4271.       EXIT IF exit_button&=gtscan&
  4272.     LOOP
  4273.     IF exit_button&=gtcancel&
  4274.       PUT xt28&-4,yt28&-4,rette$
  4275.       ok!=TRUE
  4276.     ENDIF
  4277.     IF exit_button&=gtscan&
  4278.       IF OB_STATE(tree28_adr%,gthart&)=1
  4279.         gthalbton&=0
  4280.       ELSE
  4281.         IF OB_STATE(tree28_adr%,gtweich&)=1
  4282.           gthalbton&=16
  4283.         ELSE
  4284.           IF OB_STATE(tree28_adr%,gtraster&)=1
  4285.             gthalbton&=32
  4286.           ELSE
  4287.             gthalbton&=1
  4288.           ENDIF
  4289.         ENDIF
  4290.       ENDIF
  4291.       IF OB_STATE(tree28_adr%,gtrot&)=1
  4292.         gtfarbev&=0
  4293.       ELSE
  4294.         IF OB_STATE(tree28_adr%,gtgruen&)=1
  4295.           gtfarbev&=1
  4296.         ELSE
  4297.           IF OB_STATE(tree28_adr%,gtblau&)=1
  4298.             gtfarbev&=2
  4299.           ELSE
  4300.             gtfarbev&=3
  4301.           ENDIF
  4302.         ENDIF
  4303.       ENDIF
  4304.       IF OB_STATE(tree28_adr%,k0&)=1
  4305.         gtkontrav&=0
  4306.       ELSE
  4307.         IF OB_STATE(tree28_adr%,k1&)=1
  4308.           gtkontrav&=1
  4309.         ELSE
  4310.           IF OB_STATE(tree28_adr%,k2&)=1
  4311.             gtkontrav&=2
  4312.           ELSE
  4313.             IF OB_STATE(tree28_adr%,k3&)=1
  4314.               gtkontrav&=3
  4315.             ELSE
  4316.               IF OB_STATE(tree28_adr%,k4&)=1
  4317.                 gtkontrav&=4
  4318.               ELSE
  4319.                 IF OB_STATE(tree28_adr%,k5&)=1
  4320.                   gtkontrav&=5
  4321.                 ELSE
  4322.                   gtkontrav&=6
  4323.                 ENDIF
  4324.               ENDIF
  4325.             ENDIF
  4326.           ENDIF
  4327.         ENDIF
  4328.       ENDIF
  4329.       gt_info(scannen$+bereich$)
  4330.       gtxorig&=CINT(AND(INT((prex0&+2-prex0_min&)/25.4*gtdpiv&),&HFFF8)/8)
  4331.       gtyorig&=CINT((prey0&+2-prey0_min&)/25.4*gtdpiv&)
  4332.       gtxbytes&=CINT(AND(INT(gtbv&/25.4*gtdpiv&),&HFFF0)/8)
  4333.       gtyzeilen&=CINT(gthv&/25.4*gtdpiv&)
  4334.       IF gtxbytes&*(gtyzeilen&+1)<work_space%
  4335.         HIDEM
  4336.         gt6000%=VARPTR(gt6000$)
  4337.         $C+
  4338.         i%=C:gt6000%(0,gtdpiv&,gtfarbev&,gtkontrav&,gthalbton&,gtxorig&,gtyorig&,gtxbytes&,gtyzeilen&,L:daten_ptr%,L:daten_ptr%+work_space%)
  4339.         $C-
  4340.         OUT (2),13
  4341.         trigger_0
  4342.         DEFMOUSE 3
  4343.         SHOWM
  4344.       ELSE
  4345.         i%=-1
  4346.       ENDIF
  4347.       IF i%>=0
  4348.         gt_info(waehle$)
  4349.         PUT xt28&-4,yt28&-4,rette$
  4350.         layer!=TRUE
  4351.         layer_geladen!=TRUE
  4352.         voll_bild!=TRUE
  4353.         outlined!=FALSE
  4354.         do_change_aufloesung(AND(INT(gtbv&/25.4*gtdpiv&),&HFFF0),INT(gthv&/25.4*gtdpiv&),1)
  4355.         init_bit_blit
  4356.         p_zoom(zoom*100,zoom*100)
  4357.         do_redraw
  4358.         ok!=TRUE
  4359.       ELSE
  4360.         FOR i%=1 TO 5
  4361.           gt_info(fehler$)
  4362.           PAUSE 15
  4363.           gt_info("      ")
  4364.           PAUSE 15
  4365.         NEXT i%
  4366.         gt_info(waehle$)
  4367.         ok!=FALSE
  4368.       ENDIF
  4369.     ENDIF
  4370.   UNTIL ok!
  4371.   gtxv&=prex0&
  4372.   gtyv&=prey0&
  4373.   ~WIND_GET(1,4)
  4374.   clip(x_window&,y_window&,b_window&,h_window&,INT{GINTOUT+2},INT{GINTOUT+4})
  4375.   set_clip_offset
  4376.   GRAPHMODE 1
  4377.   DEFFILL 0,0
  4378.   DEFMOUSE 3
  4379.   init_bit_blit
  4380. RETURN
  4381. '
  4382. PROCEDURE set_clip_offset
  4383.   INT{WINDTAB+64}=INT{WINDTAB+64}-x_offset&
  4384.   INT{WINDTAB+66}=INT{WINDTAB+66}-y_offset&
  4385. RETURN
  4386. '
  4387. PROCEDURE helpo(help$)
  4388.   TITLEW #1,ein_space$+help$+ein_space$
  4389.   set_clip_offset
  4390. RETURN
  4391. '
  4392. PROCEDURE help(help$)
  4393.   TITLEW #1,ein_space$+waehle$+help$+ein_space$
  4394.   set_clip_offset
  4395. RETURN
  4396. '
  4397. PROCEDURE help_titel
  4398.   TITLEW #1,ein_space$+pfad_vek$+"\"+programm$+".VEK "
  4399.   set_clip_offset
  4400.   DEFMOUSE 3
  4401.   DEFLINE 1
  4402.   COLOR 1
  4403.   GRAPHMODE 1
  4404.   p_xy_info("X:","Y:",0)
  4405.   SHOWM
  4406.   trigger_0
  4407.   zeit%=TIMER
  4408. RETURN
  4409. '
  4410. PROCEDURE polygon_fill
  4411.   REPEAT
  4412.     DEFMOUSE 0
  4413.     GET xt20&-4,yt20&-4,xt20&+bt20&+4,yt20&+ht20&+4,rette$
  4414.     SETMOUSE xt20&+bt20&/2,yt20&+160,0
  4415.     ~OBJC_DRAW(tree20_adr%,0,8,xt20&,yt20&,bt20&,ht20&)
  4416.     ~FORM_DO(tree20_adr%,0)
  4417.     exit_button&=DPEEK(GINTOUT)
  4418.     OB_STATE(tree20_adr%,exit_button&)=0
  4419.     PUT xt20&-4,yt20&-4,rette$
  4420.     IF OB_STATE(tree20_adr%,fill1&)=1
  4421.       DEFFILL 1,2,1
  4422.     ELSE IF OB_STATE(tree20_adr%,fill2&)=1
  4423.       DEFFILL 1,2,2
  4424.     ELSE IF OB_STATE(tree20_adr%,fill3&)=1
  4425.       DEFFILL 1,2,3
  4426.     ELSE IF OB_STATE(tree20_adr%,fill4&)=1
  4427.       DEFFILL 1,2,4
  4428.     ELSE IF OB_STATE(tree20_adr%,fill5&)=1
  4429.       DEFFILL 1,2,5
  4430.     ELSE IF OB_STATE(tree20_adr%,fill6&)=1
  4431.       DEFFILL 1,2,6
  4432.     ELSE IF OB_STATE(tree20_adr%,fill7&)=1
  4433.       DEFFILL 1,2,8
  4434.     ENDIF
  4435.     DEFMOUSE mdaten$
  4436.     help(help_polygon$)
  4437.     IF exit_button&<>fillcancel&
  4438.       REPEAT
  4439.         trigger_0
  4440.         wait_taste
  4441.         IF taste|<>2
  4442.           FILL x_mouse%,y_mouse%
  4443.         ENDIF
  4444.       UNTIL taste|=2
  4445.     ENDIF
  4446.   UNTIL exit_button&=fillcancel&
  4447.   ~FRE(0)
  4448.   DEFFILL 1,1
  4449.   help_titel
  4450. RETURN
  4451. '
  4452. ' *****************************************************************************
  4453. ' *                            TANGENTE NIVELLIEREN                           *
  4454. ' *                                                                           *
  4455. ' *  VERÄNDERT VAR: Punkte_X%(), Punkte_Y%()                                  *
  4456. ' *                                                                           *
  4457. ' *****************************************************************************
  4458. '
  4459. PROCEDURE do_niv_tangente(found_quelle%,von%,bis%,dreh_x%,dreh_y%)
  4460.   LOCAL phi,strecke
  4461.   dx=SUB(dreh_x%,punkte_x%(found%))
  4462.   dy=SUB(dreh_y%,punkte_y%(found%))
  4463.   strecke=SQR(dx*dx+dy*dy)
  4464.   get_phi(dreh_x%,dreh_y%,punkte_x%(found_quelle%),punkte_y%(found_quelle%),phi)
  4465.   redraw_von_bis(von%,bis%,0)
  4466.   punkte_x%(found%)=CINT(dreh_x%-strecke*COS(phi))
  4467.   punkte_y%(found%)=CINT(dreh_y%-strecke*SIN(phi))
  4468.   redraw_von_bis(von%,bis%,1)
  4469. RETURN
  4470. '
  4471. PROCEDURE tangente_nivellieren
  4472.   LOCAL found_quelle%,quelle_def|
  4473.   LOCAL von%,bis%,f%,dreh_x%,dreh_y%
  4474.   IF pointer%>1
  4475.     show_cursor_fang
  4476.     REPEAT
  4477.       trigger_0
  4478.       GRAPHMODE 1
  4479.       REPEAT
  4480.         wait_taste
  4481.         EXIT IF taste|=2
  4482.         find(x_mouse%*100/zoom,y_mouse%*100/zoom)
  4483.         quelle_def|=punkte_def|(found%)
  4484.       UNTIL (quelle_def|>da| AND quelle_def|<b3|)
  4485.       IF taste|<>2
  4486.         found_quelle%=found%
  4487.         IF quelle_def|=b1|
  4488.           IF punkte_def|(found_quelle%-1)=b3|
  4489.             found%=found_quelle%-2
  4490.             von%=found_quelle%-4
  4491.             bis%=von%+3
  4492.             dreh_x%=punkte_x%(found_quelle%-1)
  4493.             dreh_y%=punkte_y%(found_quelle%-1)
  4494.             do_niv_tangente(found_quelle%,von%,bis%,dreh_x%,dreh_y%)
  4495.           ELSE
  4496.             IF punkte_def|(found_quelle%-1)=da|
  4497.               found%=found_quelle%
  4498.               found_quelle%=found%-2
  4499.               von%=found%-1
  4500.               bis%=von%+3
  4501.               dreh_x%=punkte_x%(found%-1)
  4502.               dreh_y%=punkte_y%(found%-1)
  4503.               do_niv_tangente(found_quelle%,von%,bis%,dreh_x%,dreh_y%)
  4504.             ELSE
  4505.               IF punkte_def|(found_quelle%-1)=ma|
  4506.                 found%=found_quelle%
  4507.                 REPEAT
  4508.                   INC found%
  4509.                 UNTIL punkte_def|(found%)=ma|
  4510.                 DEC found%
  4511.                 IF punkte_def|(found%)=b3|
  4512.                   DEC found%
  4513.                   von%=found%-2
  4514.                   bis%=von%+3
  4515.                   dreh_x%=punkte_x%(found_quelle%-1)
  4516.                   dreh_y%=punkte_y%(found_quelle%-1)
  4517.                   do_niv_tangente(found_quelle%,von%,bis%,dreh_x%,dreh_y%)
  4518.                 ELSE
  4519.                   IF punkte_def|(found%)=da|
  4520.                     f%=found_quelle%
  4521.                     found_quelle%=found%-1
  4522.                     found%=f%
  4523.                     von%=found%-1
  4524.                     bis%=von%+3
  4525.                     dreh_x%=punkte_x%(found_quelle%+1)
  4526.                     dreh_y%=punkte_y%(found_quelle%+1)
  4527.                     do_niv_tangente(found_quelle%,von%,bis%,dreh_x%,dreh_y%)
  4528.                   ENDIF
  4529.                 ENDIF
  4530.               ENDIF
  4531.             ENDIF
  4532.           ENDIF
  4533.         ELSE
  4534.           IF quelle_def|=b2|
  4535.             IF punkte_def|(found_quelle%+2)=b1|
  4536.               found%=found_quelle%+2
  4537.               von%=found_quelle%+1
  4538.               bis%=von%+3
  4539.               dreh_x%=punkte_x%(found_quelle%+1)
  4540.               dreh_y%=punkte_y%(found_quelle%+1)
  4541.               do_niv_tangente(found_quelle%,von%,bis%,dreh_x%,dreh_y%)
  4542.             ELSE
  4543.               IF punkte_def|(found_quelle%+2)=da|
  4544.                 found%=found_quelle%
  4545.                 found_quelle%=found%+2
  4546.                 von%=found%-2
  4547.                 bis%=von%+3
  4548.                 dreh_x%=punkte_x%(found%+1)
  4549.                 dreh_y%=punkte_y%(found%+1)
  4550.                 do_niv_tangente(found_quelle%,von%,bis%,dreh_x%,dreh_y%)
  4551.               ELSE
  4552.                 IF punkte_def|(found_quelle%+2)=ma|
  4553.                   found%=found_quelle%
  4554.                   REPEAT
  4555.                     DEC found%
  4556.                   UNTIL punkte_def|(found%)=ma|
  4557.                   INC found%
  4558.                   IF punkte_def|(found%)=b1|
  4559.                     von%=found%-1
  4560.                     bis%=von%+3
  4561.                     dreh_x%=punkte_x%(found_quelle%+1)
  4562.                     dreh_y%=punkte_y%(found_quelle%+1)
  4563.                     do_niv_tangente(found_quelle%,von%,bis%,dreh_x%,dreh_y%)
  4564.                   ELSE
  4565.                     IF punkte_def|(found%)=da|
  4566.                       f%=found_quelle%
  4567.                       found_quelle%=found%
  4568.                       found%=f%
  4569.                       von%=found%-2
  4570.                       bis%=von%+3
  4571.                       dreh_x%=punkte_x%(found_quelle%-1)
  4572.                       dreh_y%=punkte_y%(found_quelle%-1)
  4573.                       do_niv_tangente(found_quelle%,von%,bis%,dreh_x%,dreh_y%)
  4574.                     ENDIF
  4575.                   ENDIF
  4576.                 ENDIF
  4577.               ENDIF
  4578.             ENDIF
  4579.           ENDIF
  4580.         ENDIF
  4581.       ENDIF
  4582.     UNTIL taste|=2
  4583.     DEFMOUSE 3
  4584.   ENDIF
  4585. RETURN
  4586. '
  4587. ' *****************************************************************************
  4588. ' *                               ASCII Editor                                *
  4589. ' *                                                                           *
  4590. ' *                                                                           *
  4591. ' *                                                                          ' ******************************************************************************
  4592. ' *                                                                            *
  4593. ' *                                   CUTOUT                                   *
  4594. ' *                                                                            *
  4595. ' *                                 27.02.1992                                 *
  4596. ' *                                                                            *
  4597. ' ******************************************************************************
  4598. '
  4599. '
  4600. $B+
  4601. $I-
  4602. INLINE scsi%,933
  4603. DIM buffer|(512*2)
  4604. DIM command|(12)
  4605. ' VAR:
  4606. ' apl_id&=APPL_INIT()
  4607. magic%=14031952
  4608. '
  4609. ' serien_nummer$="REGIST00"
  4610. ' serien_nummer_vergleich$="REGIST11"
  4611. serien_nummer$=MKD$(101)
  4612. serien_nummer_vergleich$=MKD$(101 XOR magic%)
  4613. '
  4614. fang_schnittpunkt|=4
  4615. buffer%=0
  4616. buffer_max%=0
  4617. poly_len%=0
  4618. bits%=0
  4619. punkt_eintrag&=0
  4620. x_start&=0
  4621. y_start&=0
  4622. edi_max&=0
  4623. m=0
  4624. m_neu=0
  4625. bit_count|=0
  4626. pixel!=FALSE
  4627. '
  4628. regist_nr%=0
  4629. revision$="1.59"
  4630. zeit%=TIMER
  4631. calamus_nr%=0
  4632. ortho|=45
  4633. ortho=RAD(ortho|)
  4634. ortho2=ortho/2
  4635. x_win&=0                                         ! Window X pos  aktuell
  4636. y_win&=0                                         ! Window Y pos  aktuell
  4637. x_window&=0                                      ! Window X pos  aktuell
  4638. y_window&=0                                      ! Window Y pos  aktuell
  4639. b_window&=0                                      ! Window Breite aktuell
  4640. h_window&=0                                      ! Window Höhe   aktuell
  4641. ~WIND_GET(0,4,scrx&,scry&,scrb&,scrh&)           ! maximaler Desktop
  4642. wmx%=scrb&-62
  4643. wmy%=scrh&-57+scry&
  4644. desk_breite&=scrb&
  4645. desk_hoehe&=scrh&+scry&
  4646. gross_bildschirm!=FALSE
  4647. IF desk_breite&>640 OR desk_hoehe&>400
  4648.   gross_bildschirm!=TRUE
  4649. ENDIF
  4650. ADD scrx&,42                                     ! Position Window X+Menuleiste
  4651. SUB scrb&,42                                     ! Breite   Window
  4652. scrb_old&=scrb&
  4653. scrh_old&=scrh&
  4654. res_x%=0                                         ! Auflösung x in mm
  4655. res_y%=0                                         ! Auflösung y in mm
  4656. res_x_old%=0
  4657. res_y_old%=0
  4658. x_layer%=0
  4659. y_layer%=0
  4660. x_layero%=0
  4661. y_layero%=0
  4662. x_offset&=0                                      ! Nullpunkt x im Fenster
  4663. y_offset&=0                                      ! Nullpunkt y im Fenster
  4664. x_offset_old&=0
  4665. y_offset_old&=0
  4666. x_mouse%=0
  4667. y_mouse%=0
  4668. x_mouse_old%=0
  4669. y_mouse_old%=0
  4670. x_mouse_0%=0
  4671. y_mouse_0%=0
  4672. objectbox_x0%=0
  4673. objectbox_y0%=0
  4674. objectbox_x1%=0
  4675. objectbox_y1%=0
  4676. grid%=10                                        ! raster mm
  4677. schraff_dist=201
  4678. schraff_inc=0
  4679. schraff_fix_abst=0
  4680. schraff_winkel=0
  4681. schraff_start%=0
  4682. schraff_y_min%=0
  4683. bit_count_max|=6
  4684. geraden_fehler|=1
  4685. lange_gerade%=4000
  4686. schmutz_filter%=20
  4687. knick_winkel_max=RAD(140)
  4688. bogen_max=PI/2/2
  4689. abweichung_gerade%=0.5*100
  4690. last_poly_s%=-1
  4691. last_poly_e%=-1
  4692. taste|=0
  4693. zoom=1
  4694. zoom_old=1
  4695. zoom_100=1
  4696. pointer%=0                                       ! Zeiger auf Punkteliste
  4697. found%=0                                         ! gefundener Punkt bei SNAP
  4698. found_t%=0                                       ! gefundener Kurvenparameter
  4699. schnittpunkt_genau%=16                           ! Zerlegung Bezier in Teile
  4700. anz_schnittpunkte%=0                             ! Anzahl Schnittpunkte
  4701. b_vari=100
  4702. i%=0                                             ! allgemeiner Schleifenzähler
  4703. ii%=0
  4704. iii%=0
  4705. d0%=0
  4706. dx%=0
  4707. dy%=0
  4708. dx=0
  4709. dy=0
  4710. schnitt_laenge=0
  4711. kostfak=1
  4712. gkosten=0
  4713. px0%=0
  4714. py0%=0
  4715. px1%=0
  4716. py1%=0
  4717. px2%=0
  4718. py2%=0
  4719. px3%=0
  4720. py3%=0
  4721. m_square_breite&=&H3000
  4722. m_square_hoehe&=&H3000
  4723. kerning_256|=m_square_breite& DIV 256
  4724. len_pair_daten&=0
  4725. z_hoehe_def%=16384                               ! Höhe des definierten Zsatzes
  4726. z_breite_def%=16384                              ! Breite     "
  4727. zeichen_hoehe%=3000                              ! gewünschte Höhe in 1/100 mm
  4728. versal_def%=0                                    ! Versal     Höhe in 1/100 mm
  4729. z_ascii_scale=zeichen_hoehe%/z_hoehe_def%        ! Scaling
  4730. z_ascii_scale_old=z_ascii_scale                  ! save Scaling
  4731. global_kerning%=1280                             ! globales Kerning
  4732. zeilen_abstand_prozent%=125                      ! relativer Zeilen Abstand
  4733. zeilen_abstand%=zeichen_hoehe%*zeilen_abstand_prozent%/100-zeichen_hoehe%
  4734. z_cursor_x_spalte%=0                             ! Start String
  4735. z_cursor_x%=0                                    ! ASCII Zeichen Cursor X
  4736. z_cursor_y%=0                                    ! ASCII Zeichen Cursor y
  4737. z_cursor_x_old%=0                                ! letztes Zeichen Cursor X
  4738. z_cursor_y_old%=0                                ! letztes Zeichen Cursor y
  4739. z_ascii_old%=0                                   ! letztes Zeichen ASCII+32
  4740. z_satz_pointer%=0                                ! Pointer auf Zeichensatz
  4741. state_rs232&=0                                   ! Centronics aktiv
  4742. state_hp&=0                                      ! HPGL aktiv
  4743. folie_x%=1188                                    ! Folien Grö₧e
  4744. folie_y%=840
  4745. plotter_x_min%=0
  4746. plotter_y_min%=0
  4747. gdu=0                                            ! 100*Plottereinheit
  4748. sel_start%=0
  4749. sel_end%=0
  4750. gtxv&=0
  4751. gtyv&=0
  4752. gtbv&=216
  4753. gthv&=297
  4754. gtdpiv&=300
  4755. gtfarbev&=3
  4756. gtkontrav&=3
  4757. exit_button&=0
  4758. cursor_x&=0
  4759. cursor_y&=0
  4760. ofn_ver|=0
  4761. overcut|=0
  4762. geschlossen%=0
  4763. '
  4764. phi_x_3d=0
  4765. phi_y_3d=0
  4766. a2_3d=0
  4767. '
  4768. daten_ptr%=0
  4769. work_space%=0
  4770. '
  4771. ' CONST:
  4772. '
  4773. IF FRE(0)>4000000
  4774.   p_max%=99999
  4775. ELSE
  4776.   p_max%=60000
  4777. ENDIF
  4778. ma|=0
  4779. da|=1
  4780. b1|=2
  4781. b2|=3
  4782. b3|=4
  4783. ein_drittel=1/3
  4784. fmin=2.225073858507E-307
  4785. fmin1=0.005
  4786. max1=0.995
  4787. pimal2=PI*2
  4788. pihalbe=PI/2
  4789. pidrittel=PI/3
  4790. fang_rad%=8*100                                  ! FANGRADIUS
  4791. p_at%=XBIOS(3)+76                                ! PRINT AT FÜR X,Y
  4792. p_at_zoom%=p_at%-12                              ! PRINT AT FÜR ZOOM
  4793. x_bytes%=(scrb&+42)/8                            ! BYTES IN X RICHTUNG DESKTOP
  4794. '
  4795. ' CONST: Menuleiste
  4796. '
  4797. tree00&=0
  4798. tree0_adr%=0
  4799. datei&=3
  4800. eintrag&=4
  4801. mfenster&=10
  4802. mtext&=5
  4803. mzedi&=6
  4804. spezial&=7
  4805. all_clear&=8
  4806. bbogen&=9
  4807. mschnitt&=11
  4808. '
  4809. tree01&=1
  4810. tree1_adr%=0
  4811. back_main&=3
  4812. fwd_main&=4
  4813. gerade&=5
  4814. kurve&=6
  4815. schliess&=7
  4816. verrunde&=8
  4817. loeschen&=9
  4818. lock&=10
  4819. snap&=11
  4820. bild&=12
  4821. zircel&=13
  4822. bezier4&=14
  4823. schere&=15
  4824. ' fenster&=15
  4825. '
  4826. tree02&=2
  4827. tree2_adr%=0
  4828. back_datei&=3
  4829. fwd_datei&=4
  4830. l_vek&=5
  4831. l_merge&=6
  4832. r_macro&=7
  4833. r_cvg&=8
  4834. l_img&=9
  4835. l_pic&=10
  4836. ordner&=11
  4837. s_vek&=12
  4838. s_plt&=13
  4839. a_plotter&=14
  4840. '
  4841. tree03&=3
  4842. tree3_adr%=0
  4843. back_fenster&=3
  4844. fwd_fenster&=4
  4845. fmove&=5
  4846. blitz&=6
  4847. fcopy&=7
  4848. fzoom&=8
  4849. fzoomp&=9
  4850. fdreh&=10
  4851. fspiegel&=11
  4852. fkursiv&=12
  4853. dreh3d&=13
  4854. drehxp&=14
  4855. drehxm&=15
  4856. drehym&=16
  4857. drehyp&=17
  4858. floesch&=18
  4859. fzoom1&=19
  4860. '
  4861. tree04&=4
  4862. tree4_adr%=0
  4863. back_spezial&=3
  4864. gtepson&=4
  4865. handy&=5
  4866. kontour&=6
  4867. filter&=7
  4868. trace&=8
  4869. smooth&=9
  4870. simag&=10
  4871. '
  4872. tree05&=5
  4873. tree5_adr%=0
  4874. back_text&=3
  4875. fwd_text&=4
  4876. z_edit&=5
  4877. z_editor&=6
  4878. z_string&=7
  4879. z_t_hoehe&=8
  4880. z_t_abstand&=9
  4881. z_g_kerning&=10
  4882. z_read_ascii&=11
  4883. l_font&=12
  4884. s_font&=14
  4885. c_font&=13
  4886. '
  4887. tree06&=6
  4888. tree6_adr%=0
  4889. t_hoehe&=1
  4890. '
  4891. tree07&=7
  4892. tree7_adr%=0
  4893. zabs&=1
  4894. '
  4895. tree08&=8                                         ! String Text
  4896. tree8_adr%=0
  4897. string_text&=1
  4898. breite&=3
  4899. string_breite&=4
  4900. versal&=5
  4901. string_versal&=6
  4902. pfad&=7
  4903. do_kerning&=8
  4904. string_kreis&=9
  4905. string_kreis_von&=10
  4906. string_kreis_bis&=11
  4907. fontname&=13
  4908. c_text&=14
  4909. icon_pair&=15
  4910. icon_trep&=16
  4911. '
  4912. tree09&=9                                         ! Zeichen Editor
  4913. tree9_adr%=0
  4914. back_editor&=3
  4915. m_matrix&=4
  4916. z_matrix&=5
  4917. move_matrix&=6
  4918. kerning_links&=7
  4919. kerning_rechts&=8
  4920. kerning_auto&=9
  4921. z_get&=10
  4922. z_muell&=11
  4923. z_up&=13
  4924. z_down&=14
  4925. z_char&=15
  4926. '
  4927. tree10&=10
  4928. tree10_adr%=0
  4929. b_kerning&=2
  4930. g_kerning&=3
  4931. '
  4932. tree11&=11                                       ! Optimier
  4933. tree11_adr%=0
  4934. del_ma&=4
  4935. del_ge&=6
  4936. del_el&=8
  4937. '
  4938. tree12&=12
  4939. tree12_adr%=0
  4940. bstep&=1
  4941. '
  4942. tree13&=13                                       ! Info
  4943. tree13_adr%=0
  4944. vernr&=7
  4945. version&=4
  4946. firma&=4
  4947. strasse&=7
  4948. stadt&=10
  4949. punkte&=15
  4950. rest&=17
  4951. '
  4952. tree14&=14                                       ! Auflösung
  4953. tree14_adr%=0
  4954. rx1&=8
  4955. ry1&=10
  4956. rx2&=12
  4957. ry2&=13
  4958. rx3&=16
  4959. ry3&=17
  4960. get_pf&=19
  4961. r1&=4
  4962. r2&=5
  4963. r3&=6
  4964. '
  4965. tree15&=15                                       ! Plotter INIT
  4966. tree15_adr%=0
  4967. p_init1&=3
  4968. p_init2&=4
  4969. gdu01&=9
  4970. gdu025&=10
  4971. gdu05&=11
  4972. gdu1&=12
  4973. overcut&=16
  4974. cent&=18
  4975. rs232&=20
  4976. hp&=23
  4977. gp&=24
  4978. mgl&=25
  4979. ma&=29
  4980. da&=30
  4981. '
  4982. tree16&=16                                       ! Pfade und Parameter
  4983. tree16_adr%=0
  4984. pv&=5
  4985. pp&=7
  4986. pfi&=9
  4987. pg&=11
  4988. pf&=13
  4989. df&=15
  4990. p1&=17
  4991. p2&=19
  4992. schnitt&=21
  4993. gdu&=23
  4994. foliex&=25
  4995. foliey&=27
  4996. warn&=29
  4997. cancel&=31
  4998. '
  4999. tree17&=17
  5000. tree17_adr%=0
  5001. outl&=1
  5002. outl_anz&=2
  5003. '
  5004. tree18&=18
  5005. tree18_adr%=0
  5006. schraffd&=1
  5007. schraffi&=2
  5008. schrafix&=3
  5009. schraffw&=4
  5010. schraffa&=7
  5011. schrafff&=8
  5012. '
  5013. tree19&=19
  5014. tree19_adr%=0
  5015. necka&=1
  5016. neckp&=2
  5017. '
  5018. tree20&=20                                      ! Füll
  5019. tree20_adr%=0
  5020. fill1&=3
  5021. fill2&=5
  5022. fill3&=7
  5023. fill4&=9
  5024. fill5&=11
  5025. fill6&=13
  5026. fill7&=15
  5027. fillcancel&=17
  5028. '
  5029. tree21&=21                                      ! Trace
  5030. tree21_adr%=0
  5031. t_step&=7
  5032. t_gerade&=8
  5033. t_schmutz&=9
  5034. bschwelle&=21
  5035. knickwinkel&=22
  5036. bogen_max&=23
  5037. abweichung_gerade&=24
  5038. nur_gerade&=13
  5039. trace_cancel&=14
  5040. gerade_bezier&=30
  5041. '
  5042. tree22&=22
  5043. tree22_adr%=0
  5044. scann_x&=1
  5045. scann_y&=2
  5046. '
  5047. tree23&=23
  5048. tree23_adr%=0
  5049. radius&=1
  5050. '
  5051. tree24&=24
  5052. tree24_adr%=0
  5053. grau&=6
  5054. stark&=7
  5055. selgrau0&=4
  5056. selgrau&=5
  5057. sellinie&=8
  5058. alle&=9
  5059. auswahl&=10
  5060. '
  5061. tree25&=25                               ! Bogen
  5062. tree25_adr%=0
  5063. backboge&=3
  5064. vkreis&=4
  5065. kreis3&=5
  5066. kreisbog&=6
  5067. bogen3&=7
  5068. bogen2&=8
  5069. ellipse&=9
  5070. elbogen&=10
  5071. eckrund&=11
  5072. '
  5073. tree26&=26                               ! Koordinaten
  5074. tree26_adr%=0
  5075. absolut&=2
  5076. relativ&=3
  5077. polar&=4
  5078. '
  5079. tree27&=27                               ! Calamus Versions Nr.
  5080. tree27_adr%=0
  5081. calamus_nr&=1
  5082. '
  5083. tree28&=28                               ! GT 6000
  5084. tree28_adr%=0
  5085. gtscan&=47
  5086. gtx&=38
  5087. gty&=44
  5088. gtb&=42
  5089. gth&=43
  5090. gtcancel&=46
  5091. gtpresca&=45
  5092. gtdpi&=35
  5093. gtdpimin&=33
  5094. gtdpiplu&=34
  5095. gtprewin&=1
  5096. gtstate&=5
  5097. gtkeiner&=9
  5098. gtraster&=10
  5099. gtweich&=11
  5100. gthart&=12
  5101. gtkeine&=15
  5102. gtrot&=18
  5103. gtgruen&=17
  5104. gtblau&=16
  5105. k0&=22
  5106. k1&=23
  5107. k2&=24
  5108. k3&=25
  5109. k4&=26
  5110. k5&=27
  5111. k6&=28
  5112. '
  5113. tree29&=29                               ! Kosten
  5114. tree29_adr%=0
  5115. kostfak&=1
  5116. sl&=2
  5117. gkosten&=4
  5118. '
  5119. tree30&=30                               ! Select Filter
  5120. tree30_adr%=0
  5121. abs_filter&=1
  5122. '
  5123. tree31&=31                               ! Select Fenster
  5124. tree31_adr%=0
  5125. ohnecopy&=1
  5126. mitcopy&=6
  5127. anz_rot&=3
  5128. phi_rot&=4
  5129. numohne&=5
  5130. ausricht_vector&=7
  5131. '
  5132. tree32&=32                               ! Select Spiegel
  5133. tree32_adr%=0
  5134. anbox&=2
  5135. anachse&=1
  5136. '
  5137. tree33&=33
  5138. tree33_adr%=0
  5139. teil&=1
  5140. '
  5141. tree34&=34                               ! Schnittpunkt
  5142. tree34_adr%=0
  5143. backschn&=3
  5144. fwdschn&=4
  5145. trimm&=5
  5146. knack&=6
  5147. lot&=7
  5148. teilen&=8
  5149. lang&=9
  5150. schnitt2&=10
  5151. schnittn&=11
  5152. delseg&=12
  5153. delel&=13
  5154. schmelz&=14
  5155. '
  5156. tree35&=35                              ! Select Copy
  5157. tree35_adr%=0
  5158. copysing&=1
  5159. copymul&=2
  5160. cx&=4
  5161. cy&=5
  5162. canz&=6
  5163. cdist&=7
  5164. '
  5165. tree36&=36                              ! Ausrichten
  5166. tree36_adr%=0
  5167. a_olinks&=1
  5168. a_oben&=2
  5169. a_orechts&=3
  5170. a_links&=4
  5171. a_mitte&=5
  5172. a_rechts&=6
  5173. a_ulinks&=7
  5174. a_unten&=8
  5175. a_urechts&=9
  5176. '
  5177. tree37&=37                              ! Scalieren
  5178. tree37_adr%=0
  5179. scale_interactiv&=1
  5180. scale_numerisch&=2
  5181. scale_breite&=4
  5182. scale_hoehe&=5
  5183. '
  5184. tree38&=38                              ! Ordner
  5185. tree38_adr%=0
  5186. ordnert&=1
  5187. ordnerok&=2
  5188. ordnerca&=3
  5189. '
  5190. tree39&=39                              ! Kerning
  5191. tree39_adr%=0
  5192. kerning_box&=1
  5193. kerning_minus&=3
  5194. kerning_plus&=4
  5195. kerning_last&=2
  5196. kerning_next&=5
  5197. kerning_exit&=6
  5198. kerning_minus2&=9
  5199. kerning_plus2&=10
  5200. kerning_last2&=8
  5201. kerning_next2&=11
  5202. kerning_clear&=7
  5203. kerning_info&=13
  5204. kerning_pair&=15
  5205. '
  5206. tree40&=40                              ! Plotter OUTPUT
  5207. tree40_adr%=0
  5208. pl100&=3
  5209. plschieber&=4
  5210. plschere&=7
  5211. plschereauf&=5
  5212. plscherezu&=6
  5213. plschere&=7
  5214. '
  5215. tree41&=41                              ! Select Neigen
  5216. tree41_adr%=0
  5217. neige_grad&=2
  5218. neige_vertical&=3
  5219. neige_horizontal&=4
  5220. neige_interaktiv&=5
  5221. '
  5222. ' FLAG:
  5223. '
  5224. undo!=FALSE
  5225. geschlossen!=FALSE
  5226. ok!=FALSE                                        ! allgemein
  5227. layer_geladen!=FALSE                             ! ist  Layer geladen
  5228. layer!=FALSE                                     ! soll Layer gezeigt werden
  5229. window_fulled!=TRUE                              ! ist  Fenster schon gro₧
  5230. voll_bild!=FALSE                                 ! ist  Fenster komplett auf Crt
  5231. eintragen!=FALSE                                 ! ist  eintragen aktiv
  5232. bogen!=FALSE
  5233. mtext!=FALSE
  5234. meditor!=FALSE
  5235. datei!=FALSE
  5236. fenster!=FALSE
  5237. schnittpunktm!=FALSE
  5238. loeschen!=FALSE                                  ! ist  loeschen aktiv
  5239. neues_polygon!=TRUE                              ! erster Punkt im Polygon
  5240. found!=FALSE                                     ! gefunden bei Fangradius
  5241. marker!=FALSE                                    ! sollen Marker gezeigt werden
  5242. marker_select!=FALSE                             ! soll   Marker selectiert
  5243. modified!=FALSE                                  ! wurde Vektorbild geändert
  5244. font_geladen!=FALSE                              ! ist ein Font geladen
  5245. outlined!=FALSE                                  ! wurde Bitmap schon outlined
  5246. auto_schraff!=TRUE
  5247. schraff_fix_abst!=FALSE
  5248. einpassen!=FALSE
  5249. tangente!=FALSE
  5250. tangenten_lock!=TRUE
  5251. warn!=FALSE
  5252. gp_gl!=FALSE                                     ! HPGL oder GPGL
  5253. tasten_rep!=FALSE
  5254. absolut!=TRUE
  5255. relativ!=FALSE
  5256. polar!=FALSE
  5257. absolut_old!=FALSE
  5258. polar_old!=FALSE
  5259. fangklein!=FALSE                                 ! Fangradius gro₧
  5260. fadenkreuz!=FALSE
  5261. polygonmode!=TRUE                                ! Polygonmodus
  5262. ortho!=FALSE
  5263. grid!=FALSE
  5264. scrolled!=FALSE
  5265. move!=FALSE
  5266. drei_d!=FALSE
  5267. status_wechsel!=FALSE
  5268. grid_wechsel!=FALSE
  5269. swap!=FALSE
  5270. '
  5271. ' ARRAY:
  5272. '
  5273. DIM smfdb%(8),dmfdb%(8),p%(8)
  5274. DIM z_smfdb%(8),z_dmfdb%(8),z_p%(8),q_dmfdb%(8)
  5275. DIM punkte_x%(p_max%),punkte_y%(p_max%),punkte_def|(p_max%),buffer%(p_max%/2)
  5276. DIM x_meta%(127),y_meta%(127),punkte_def1|(32)
  5277. ARRAYFILL punkte_def1|(),1
  5278. DIM bezier_x&(33),bezier_y&(33)
  5279. DIM m$(87)
  5280. DIM mk%(60,2)
  5281. DIM m_square%(5)
  5282. DIM z_editor%(32)
  5283. DIM z_ascii%(224),z_kerning&(224*16),z_daten&(224*280),z_pair&(224),z_pair|(224),z_pair_daten|(2000)
  5284. DIM sx1%(9),sy1%(9),sx2%(9),sy2%(9),sp1(9),sp2(9)
  5285. DIM zeilen_buffer$(60)
  5286. rette$=SPACE$(32000)
  5287. pfad$=SPACE$(80)
  5288. kerning_string$=SPACE$(60)
  5289. pfad_pic$=SPACE$(80)
  5290. pfad_img$=SPACE$(80)
  5291. pfad_vek$=SPACE$(80)
  5292. pfad_vek_root$=SPACE$(80)
  5293. pfad_cvg$=SPACE$(80)
  5294. pfad_fnt$=SPACE$(80)
  5295. pfad_cfn$=SPACE$(80)
  5296. default_font$=SPACE$(10)
  5297. programm$=SPACE$(10)
  5298. programm_font$=SPACE$(10)
  5299. test_datei$=SPACE$(10)
  5300. object$=SPACE$(80)
  5301. p_init1$=SPACE$(40)
  5302. p_init2$=SPACE$(40)
  5303. abc$="CutOut Test"
  5304. ma$="M"
  5305. da$="D"
  5306. cutout_font$="CUTOUTOFN"
  5307. calamus_font_grafik$=MKI$(159)+MKI$(15)+MKI$(1)+SPACE$(320)
  5308. ok$="OK"
  5309. ein_space$=" "
  5310. x_y$="X|Y"
  5311. erster$="1. "
  5312. zweiter$="2. "
  5313. help_on$="ON "
  5314. help_off$="OFF"
  5315. vek$="VEK"
  5316. cvg$="CVG"
  5317. img$="IMG"
  5318. plt$="PLT"
  5319. calamus$="CALAMUS"
  5320. cutout$="CutOut"
  5321. ' ****************************************************************************
  5322. OPEN "I",#1,"SYS\LANGUAGE.DRV"
  5323. LINE INPUT #1,pd_menu$
  5324. LINE INPUT #1,pd_datei$
  5325. LINE INPUT #1,pd_editieren$
  5326. LINE INPUT #1,pd_fenster$
  5327. LINE INPUT #1,pd_schnittpunkt$
  5328. LINE INPUT #1,pd_bogen$
  5329. LINE INPUT #1,pd_text$
  5330. LINE INPUT #1,pd_zeicheneditor$
  5331. LINE INPUT #1,pd_extra$
  5332. LINE INPUT #1,pd_quit$
  5333. '
  5334. LINE INPUT #1,pd_optionen$
  5335. LINE INPUT #1,pd_marker_anzeigen$
  5336. LINE INPUT #1,pd_tangenten_anzeigen$
  5337. LINE INPUT #1,pd_fangradius_klein$
  5338. LINE INPUT #1,pd_polygon_modus$
  5339. LINE INPUT #1,pd_schnittpunkt_genau$
  5340. LINE INPUT #1,pd_koordinaten$
  5341. LINE INPUT #1,pd_element_selektieren$
  5342. LINE INPUT #1,pd_polygon_selektieren$
  5343. LINE INPUT #1,pd_warnmeldungen$
  5344. LINE INPUT #1,pd_skaliere_alles$
  5345. LINE INPUT #1,pd_punkte_nivellieren$
  5346. LINE INPUT #1,pd_tangente$
  5347. LINE INPUT #1,pd_plotflaeche$
  5348. LINE INPUT #1,pd_bezier_step_aendern$
  5349. LINE INPUT #1,pd_plotter_einstellung$
  5350. LINE INPUT #1,pd_kosten_faktor$
  5351. LINE INPUT #1,pd_pfad_sichern$
  5352. '
  5353. LINE INPUT #1,pd_figur$
  5354. LINE INPUT #1,pd_rechteck$
  5355. LINE INPUT #1,pd_n_eck$
  5356. LINE INPUT #1,pd_polygon_outline$
  5357. LINE INPUT #1,pd_aequidistante$
  5358. LINE INPUT #1,pd_frame$
  5359. LINE INPUT #1,pd_polygone_ausrichten$
  5360. LINE INPUT #1,pd_polygone_zentrieren$
  5361. LINE INPUT #1,pd_polygone_vereinen$
  5362. LINE INPUT #1,pd_polygone_fuellen$
  5363. LINE INPUT #1,pd_einzelne_punkte_loeschen$
  5364. '
  5365. LINE INPUT #1,pd_linie$
  5366. LINE INPUT #1,pd_bezier_vektor$
  5367. LINE INPUT #1,pd_bezier_einfuegen$
  5368. LINE INPUT #1,pd_tausche_bezier_vektor$
  5369. LINE INPUT #1,pd_knacken$
  5370. LINE INPUT #1,pd_trimmen$
  5371. LINE INPUT #1,pd_lot$
  5372. LINE INPUT #1,pd_verlaengern$
  5373. LINE INPUT #1,pd_teilen$
  5374. LINE INPUT #1,pd_messen$
  5375. LINE INPUT #1,pd_schnittp_2er$
  5376. LINE INPUT #1,pd_schnittp_n$
  5377. '
  5378. LINE INPUT #1,pd_effekt$
  5379. LINE INPUT #1,pd_parameter_schraffur$
  5380. LINE INPUT #1,pd_polygon_schraffieren$
  5381. LINE INPUT #1,pd_alles_schraffieren$
  5382. LINE INPUT #1,pd_schatten$
  5383. LINE INPUT #1,pd_einpassen$
  5384. LINE INPUT #1,pd_kugel$
  5385. '
  5386. LINE INPUT #1,lade$
  5387. LINE INPUT #1,sichere$
  5388. LINE INPUT #1,fuege_ein$
  5389. LINE INPUT #1,vektor$
  5390. LINE INPUT #1,macro$
  5391. LINE INPUT #1,daten$
  5392. LINE INPUT #1,zeichensatz$
  5393. LINE INPUT #1,kein$
  5394. LINE INPUT #1,keine$
  5395. LINE INPUT #1,ja_nein$
  5396. LINE INPUT #1,waehle$
  5397. LINE INPUT #1,fehler$
  5398. LINE INPUT #1,scannen$
  5399. LINE INPUT #1,pre_view$
  5400. LINE INPUT #1,ascii_importieren$
  5401. LINE INPUT #1,ascii_exportieren$
  5402. LINE INPUT #1,schriftblock$
  5403. LINE INPUT #1,radius_zu$
  5404. LINE INPUT #1,winkel_zu$
  5405. LINE INPUT #1,leider$
  5406. LINE INPUT #1,winkel_einstellen$
  5407. LINE INPUT #1,spiegelachse$
  5408. LINE INPUT #1,lupe_mal$
  5409. LINE INPUT #1,fensterbereich$
  5410. LINE INPUT #1,drehzentrum$
  5411. LINE INPUT #1,ordner_exist$
  5412. LINE INPUT #1,kein_leer$
  5413. LINE INPUT #1,suche_schnittpunkte$
  5414. LINE INPUT #1,gleiches_polygon$
  5415. LINE INPUT #1,bezugs$
  5416. LINE INPUT #1,zentriere$
  5417. LINE INPUT #1,huellkurve$
  5418. LINE INPUT #1,huellkurve1$
  5419. LINE INPUT #1,berechne$
  5420. LINE INPUT #1,rechte_taste$
  5421. LINE INPUT #1,endpunkt$
  5422. LINE INPUT #1,lot_an$
  5423. LINE INPUT #1,noname$
  5424. LINE INPUT #1,symbol$
  5425. LINE INPUT #1,orginal_fenster$
  5426. LINE INPUT #1,dmc_font$
  5427. LINE INPUT #1,bild_datei_zu$
  5428. LINE INPUT #1,stad_laden$
  5429. LINE INPUT #1,plotter_ist_off$
  5430. LINE INPUT #1,plot_datei$
  5431. LINE INPUT #1,kein_treiber$
  5432. LINE INPUT #1,schnittstelle_auf$
  5433. LINE INPUT #1,polygone_vereinen$
  5434. LINE INPUT #1,loesche_einzelne$
  5435. LINE INPUT #1,quelle$
  5436. LINE INPUT #1,ziel$
  5437. LINE INPUT #1,nivelliere$
  5438. LINE INPUT #1,alle_daten_l$
  5439. LINE INPUT #1,ganzer_zeichensatz$
  5440. LINE INPUT #1,font_daten_loeschen$
  5441. LINE INPUT #1,zeichen_matrix$
  5442. LINE INPUT #1,datei_existiert$
  5443. LINE INPUT #1,datei_ueberschreiben$
  5444. LINE INPUT #1,glaetten_mit$
  5445. LINE INPUT #1,gerade_bezier$
  5446. LINE INPUT #1,glaetten$
  5447. LINE INPUT #1,bereich$
  5448. LINE INPUT #1,path$
  5449. LINE INPUT #1,help_mittelpunkt$
  5450. LINE INPUT #1,help_radius$
  5451. LINE INPUT #1,help_position$
  5452. LINE INPUT #1,help_startwinkel$
  5453. LINE INPUT #1,help_endwinkel$
  5454. LINE INPUT #1,help_polygon$
  5455. LINE INPUT #1,help_punkt$
  5456. LINE INPUT #1,help_linie$
  5457. LINE INPUT #1,help_element$
  5458. LINE INPUT #1,help_verrund$
  5459. LINE INPUT #1,help_loesche$
  5460. LINE INPUT #1,help_trenn$
  5461. LINE INPUT #1,help_move$
  5462. LINE INPUT #1,help_sel$
  5463. LINE INPUT #1,help_move_window$
  5464. LINE INPUT #1,help_rahmen$
  5465. LINE INPUT #1,help_edit$
  5466. LINE INPUT #1,help_bezier$
  5467. LINE INPUT #1,help_status$
  5468. LINE INPUT #1,help_ortho$
  5469. LINE INPUT #1,help_grid$
  5470. LINE INPUT #1,help_free$
  5471. LINE INPUT #1,help_snap$
  5472. LINE INPUT #1,help_editor$
  5473. LINE INPUT #1,help_pfad$
  5474. CLOSE #1
  5475. ' ****************************************************************************
  5476. integer%=VARPTR(punkte_x%(1))-VARPTR(punkte_x%(0))  ! Länge in Bytes Integer
  5477. '
  5478. z_editor%(0)=2048                                   ! Top      Line   Y
  5479. z_editor%(1)=3072                                   ! Ascent   Line   Y
  5480. z_editor%(2)=6144                                   ! Half     Line   Y
  5481. z_editor%(3)=11264                                  ! Base     Line   Y
  5482. z_editor%(4)=13952                                  ! Descent  Line   Y
  5483. z_editor%(5)=14336                                  ! Bottom   Line   Y
  5484. '
  5485. z_editor%(6)=0                                      ! Matrix   links  X
  5486. z_editor%(7)=16384                                  ! Matrix   rechts X
  5487. z_editor%(8)=1280                                   ! Kerning  links  X
  5488. z_editor%(9)=1280                                   ! Kerning  links  X
  5489. z_editor%(10)=1280                                  ! Kerning  links  X
  5490. z_editor%(11)=1280                                  ! Kerning  links  X
  5491. z_editor%(12)=1280                                  ! Kerning  links  X
  5492. z_editor%(13)=1280                                  ! Kerning  links  X
  5493. z_editor%(14)=1280                                  ! Kerning  links  X
  5494. z_editor%(15)=1280                                  ! Kerning  links  X
  5495. z_editor%(16)=15104                                 ! Kerning  rechts X
  5496. z_editor%(17)=15104                                 ! Kerning  rechts X
  5497. z_editor%(18)=15104                                 ! Kerning  rechts X
  5498. z_editor%(19)=15104                                 ! Kerning  rechts X
  5499. z_editor%(20)=15104                                 ! Kerning  rechts X
  5500. z_editor%(21)=15104                                 ! Kerning  rechts X
  5501. z_editor%(22)=15104                                 ! Kerning  rechts X
  5502. z_editor%(23)=15104                                 ! Kerning  rechts X
  5503. z_editor%(24)=z_editor%(0)                          ! Kerning         Y
  5504. z_editor%(25)=(z_editor%(5)-z_editor%(0))/8         ! Kerning         Y
  5505. z_editor%(26)=z_editor%(24)+z_editor%(25)           ! Kerning         Y
  5506. z_editor%(27)=z_editor%(26)+z_editor%(25)           ! Kerning         Y
  5507. z_editor%(28)=z_editor%(27)+z_editor%(25)           ! Kerning         Y
  5508. z_editor%(29)=z_editor%(28)+z_editor%(25)           ! Kerning         Y
  5509. z_editor%(30)=z_editor%(29)+z_editor%(25)           ! Kerning         Y
  5510. z_editor%(31)=z_editor%(30)+z_editor%(25)           ! Kerning         Y
  5511. z_editor%(32)=0                                     ! Matrix oben     Y
  5512. '
  5513. ' ******************************************************************************
  5514. ' *                                                                            *
  5515. ' *                             MENU INITIALISIERUNG                           *
  5516. ' *                                                                            *
  5517. ' ******************************************************************************
  5518. '
  5519. BMOVE V:serien_nummer$,V:serien_nummer,8
  5520. BMOVE V:serien_nummer_vergleich$,V:serien_nummer_vergleich,8
  5521. regist_nr%=serien_nummer_vergleich
  5522. IF serien_nummer<>(serien_nummer_vergleich XOR magic%)
  5523.   PRINT "SORRY HACKER"
  5524.   PAUSE 300
  5525.   SYSTEM
  5526. ENDIF
  5527. INLINE zasm_ptr%,4136
  5528. INLINE pack_img%,958
  5529. INLINE calc_bezier%,1050
  5530. INLINE p_num%,360
  5531. INLINE find_line%,356
  5532. INLINE kontour%,216
  5533. INLINE staddec%,184
  5534. INLINE imgdec%,228
  5535. INLINE findexcept%,52
  5536. INLINE findpointexcept%,70
  5537. mfang$=MKI$(7)+MKI$(7)+MKI$(1)+MKI$(0)+MKI$(1)
  5538. mfang$=mfang$+MKI$(&X1111111111111110)
  5539. mfang$=mfang$+MKI$(&X1111111111111110)
  5540. mfang$=mfang$+MKI$(&X1100001110000110)
  5541. mfang$=mfang$+MKI$(&X1100001110000110)
  5542. mfang$=mfang$+MKI$(&X1100001110000110)
  5543. mfang$=mfang$+MKI$(&X1100001110000110)
  5544. mfang$=mfang$+MKI$(&X1111110001111110)
  5545. mfang$=mfang$+MKI$(&X1111110001111110)
  5546. mfang$=mfang$+MKI$(&X1111110001111110)
  5547. mfang$=mfang$+MKI$(&X1100001110000110)
  5548. mfang$=mfang$+MKI$(&X1100001110000110)
  5549. mfang$=mfang$+MKI$(&X1100001110000110)
  5550. mfang$=mfang$+MKI$(&X1100001110000110)
  5551. mfang$=mfang$+MKI$(&X1111111111111110)
  5552. mfang$=mfang$+MKI$(&X1111111111111110)
  5553. mfang$=mfang$+MKI$(&X0)
  5554. '
  5555. mfang$=mfang$+MKI$(&X1111111111111110)
  5556. mfang$=mfang$+MKI$(&X1000000100000010)
  5557. mfang$=mfang$+MKI$(&X1000000100000010)
  5558. mfang$=mfang$+MKI$(&X1000000100000010)
  5559. mfang$=mfang$+MKI$(&X1000000100000010)
  5560. mfang$=mfang$+MKI$(&X1000000100000010)
  5561. mfang$=mfang$+MKI$(&X1000000000000010)
  5562. mfang$=mfang$+MKI$(&X1111110001111110)
  5563. mfang$=mfang$+MKI$(&X1000000000000010)
  5564. mfang$=mfang$+MKI$(&X1000000100000010)
  5565. mfang$=mfang$+MKI$(&X1000000100000010)
  5566. mfang$=mfang$+MKI$(&X1000000100000010)
  5567. mfang$=mfang$+MKI$(&X1000000100000010)
  5568. mfang$=mfang$+MKI$(&X1000000100000010)
  5569. mfang$=mfang$+MKI$(&X1111111111111110)
  5570. mfang$=mfang$+MKI$(&X0)
  5571. '
  5572. mfang_klein$=MKI$(7)+MKI$(7)+MKI$(1)+MKI$(0)+MKI$(1)
  5573. mfang_klein$=mfang_klein$+MKI$(&X0)
  5574. mfang_klein$=mfang_klein$+MKI$(&X0)
  5575. mfang_klein$=mfang_klein$+MKI$(&X11111111111000)
  5576. mfang_klein$=mfang_klein$+MKI$(&X11111111111000)
  5577. mfang_klein$=mfang_klein$+MKI$(&X11001110011000)
  5578. mfang_klein$=mfang_klein$+MKI$(&X11001110011000)
  5579. mfang_klein$=mfang_klein$+MKI$(&X11110001111000)
  5580. mfang_klein$=mfang_klein$+MKI$(&X11110001111000)
  5581. mfang_klein$=mfang_klein$+MKI$(&X11110001111000)
  5582. mfang_klein$=mfang_klein$+MKI$(&X11001110011000)
  5583. mfang_klein$=mfang_klein$+MKI$(&X11001110011000)
  5584. mfang_klein$=mfang_klein$+MKI$(&X11111111111000)
  5585. mfang_klein$=mfang_klein$+MKI$(&X11111111111000)
  5586. mfang_klein$=mfang_klein$+MKI$(&X0)
  5587. mfang_klein$=mfang_klein$+MKI$(&X0)
  5588. mfang_klein$=mfang_klein$+MKI$(&X0)
  5589. '
  5590. mfang_klein$=mfang_klein$+MKI$(&X0)
  5591. mfang_klein$=mfang_klein$+MKI$(&X0)
  5592. mfang_klein$=mfang_klein$+MKI$(&X0)
  5593. mfang_klein$=mfang_klein$+MKI$(&X1111111110000)
  5594. mfang_klein$=mfang_klein$+MKI$(&X1000100010000)
  5595. mfang_klein$=mfang_klein$+MKI$(&X1000100010000)
  5596. mfang_klein$=mfang_klein$+MKI$(&X1000000010000)
  5597. mfang_klein$=mfang_klein$+MKI$(&X1110001110000)
  5598. mfang_klein$=mfang_klein$+MKI$(&X1000000010000)
  5599. mfang_klein$=mfang_klein$+MKI$(&X1000100010000)
  5600. mfang_klein$=mfang_klein$+MKI$(&X1000100010000)
  5601. mfang_klein$=mfang_klein$+MKI$(&X1111111110000)
  5602. mfang_klein$=mfang_klein$+MKI$(&X0)
  5603. mfang_klein$=mfang_klein$+MKI$(&X0)
  5604. mfang_klein$=mfang_klein$+MKI$(&X0)
  5605. mfang_klein$=mfang_klein$+MKI$(&X0)
  5606. '
  5607. mdaten$=MKI$(7)+MKI$(7)+MKI$(1)+MKI$(0)+MKI$(1)
  5608. mdaten$=mdaten$+MKI$(&X1110000000)
  5609. mdaten$=mdaten$+MKI$(&X1110000000)
  5610. mdaten$=mdaten$+MKI$(&X1110000000)
  5611. mdaten$=mdaten$+MKI$(&X1110000000)
  5612. mdaten$=mdaten$+MKI$(&X1110000000)
  5613. mdaten$=mdaten$+MKI$(&X1110000000)
  5614. mdaten$=mdaten$+MKI$(&X1111110001111110)
  5615. mdaten$=mdaten$+MKI$(&X1111110001111110)
  5616. mdaten$=mdaten$+MKI$(&X1111110001111110)
  5617. mdaten$=mdaten$+MKI$(&X1110000000)
  5618. mdaten$=mdaten$+MKI$(&X1110000000)
  5619. mdaten$=mdaten$+MKI$(&X1110000000)
  5620. mdaten$=mdaten$+MKI$(&X1110000000)
  5621. mdaten$=mdaten$+MKI$(&X1110000000)
  5622. mdaten$=mdaten$+MKI$(&X1110000000)
  5623. mdaten$=mdaten$+MKI$(&X0)
  5624. '
  5625. mdaten$=mdaten$+MKI$(&X100000000)
  5626. mdaten$=mdaten$+MKI$(&X100000000)
  5627. mdaten$=mdaten$+MKI$(&X100000000)
  5628. mdaten$=mdaten$+MKI$(&X100000000)
  5629. mdaten$=mdaten$+MKI$(&X100000000)
  5630. mdaten$=mdaten$+MKI$(&X100000000)
  5631. mdaten$=mdaten$+MKI$(&X0)
  5632. mdaten$=mdaten$+MKI$(&X1111110001111110)
  5633. mdaten$=mdaten$+MKI$(&X0)
  5634. mdaten$=mdaten$+MKI$(&X100000000)
  5635. mdaten$=mdaten$+MKI$(&X100000000)
  5636. mdaten$=mdaten$+MKI$(&X100000000)
  5637. mdaten$=mdaten$+MKI$(&X100000000)
  5638. mdaten$=mdaten$+MKI$(&X100000000)
  5639. mdaten$=mdaten$+MKI$(&X100000000)
  5640. mdaten$=mdaten$+MKI$(&X0)
  5641. '
  5642. schwer$=MKI$(7)+MKI$(7)+MKI$(-1)+MKI$(0)+MKI$(1)
  5643. schwer$=schwer$+MKI$(&X0)                     !
  5644. schwer$=schwer$+MKI$(&X0)
  5645. schwer$=schwer$+MKI$(&X11111000000)           !
  5646. schwer$=schwer$+MKI$(&X11111000000)
  5647. schwer$=schwer$+MKI$(&X1100111110000)         !
  5648. schwer$=schwer$+MKI$(&X1100111110000)
  5649. schwer$=schwer$+MKI$(&X10000111111000)        !
  5650. schwer$=schwer$+MKI$(&X10000111111000)
  5651. schwer$=schwer$+MKI$(&X10000111111000)        !
  5652. schwer$=schwer$+MKI$(&X10000111111000)
  5653. schwer$=schwer$+MKI$(&X100000111111100)       !
  5654. schwer$=schwer$+MKI$(&X100000111111100)
  5655. schwer$=schwer$+MKI$(&X100000111111100)       !
  5656. schwer$=schwer$+MKI$(&X100000111111100)
  5657. schwer$=schwer$+MKI$(&X111111011111100)       !!
  5658. schwer$=schwer$+MKI$(&X111111011111100)
  5659. schwer$=schwer$+MKI$(&X111111100000100)       !
  5660. schwer$=schwer$+MKI$(&X111111100000100)
  5661. schwer$=schwer$+MKI$(&X111111100000100)       !
  5662. schwer$=schwer$+MKI$(&X111111100000100)
  5663. schwer$=schwer$+MKI$(&X11111100001000)        !
  5664. schwer$=schwer$+MKI$(&X11111100001000)
  5665. schwer$=schwer$+MKI$(&X11111100001000)        !
  5666. schwer$=schwer$+MKI$(&X11111100001000)
  5667. schwer$=schwer$+MKI$(&X1111100110000)         !
  5668. schwer$=schwer$+MKI$(&X1111100110000)
  5669. schwer$=schwer$+MKI$(&X11111000000)           !
  5670. schwer$=schwer$+MKI$(&X11111000000)
  5671. schwer$=schwer$+MKI$(&X0)                     !
  5672. schwer$=schwer$+MKI$(&X0)
  5673. schwer$=schwer$+MKI$(&X0)                     !
  5674. schwer$=schwer$+MKI$(&X0)
  5675. pfad_read
  5676. reset
  5677. RESERVE -64*1024
  5678. DIM work%((FRE(0)-80*1024)/4)
  5679. daten_ptr%=V:work%(0)
  5680. work_space%=DIM?(work%())*4
  5681. KEYPAD 8
  5682. ~RSRC_LOAD("SYS\CUTOUT.RSC")
  5683. ~RSRC_GADDR(0,tree00&,tree0_adr%)
  5684. ~RSRC_GADDR(0,tree01&,tree1_adr%)
  5685. ~RSRC_GADDR(0,tree02&,tree2_adr%)
  5686. ~RSRC_GADDR(0,tree03&,tree3_adr%)
  5687. ~RSRC_GADDR(0,tree04&,tree4_adr%)
  5688. ~RSRC_GADDR(0,tree05&,tree5_adr%)
  5689. ~RSRC_GADDR(0,tree06&,tree6_adr%)
  5690. ~RSRC_GADDR(0,tree07&,tree7_adr%)
  5691. ~RSRC_GADDR(0,tree08&,tree8_adr%)
  5692. ~RSRC_GADDR(0,tree09&,tree9_adr%)
  5693. ~RSRC_GADDR(0,tree10&,tree10_adr%)
  5694. ~RSRC_GADDR(0,tree11&,tree11_adr%)
  5695. ~RSRC_GADDR(0,tree12&,tree12_adr%)
  5696. ~RSRC_GADDR(0,tree13&,tree13_adr%)
  5697. ~RSRC_GADDR(0,tree14&,tree14_adr%)
  5698. ~RSRC_GADDR(0,tree15&,tree15_adr%)
  5699. ~RSRC_GADDR(0,tree16&,tree16_adr%)
  5700. ~RSRC_GADDR(0,tree17&,tree17_adr%)
  5701. ~RSRC_GADDR(0,tree18&,tree18_adr%)
  5702. ~RSRC_GADDR(0,tree19&,tree19_adr%)
  5703. ~RSRC_GADDR(0,tree20&,tree20_adr%)
  5704. ~RSRC_GADDR(0,tree21&,tree21_adr%)
  5705. ~RSRC_GADDR(0,tree22&,tree22_adr%)
  5706. ~RSRC_GADDR(0,tree23&,tree23_adr%)
  5707. ~RSRC_GADDR(0,tree24&,tree24_adr%)
  5708. ~RSRC_GADDR(0,tree25&,tree25_adr%)
  5709. ~RSRC_GADDR(0,tree26&,tree26_adr%)
  5710. ~RSRC_GADDR(0,tree27&,tree27_adr%)
  5711. ~RSRC_GADDR(0,tree28&,tree28_adr%)
  5712. ~RSRC_GADDR(0,tree29&,tree29_adr%)
  5713. ~RSRC_GADDR(0,tree30&,tree30_adr%)
  5714. ~RSRC_GADDR(0,tree31&,tree31_adr%)
  5715. ~RSRC_GADDR(0,tree32&,tree32_adr%)
  5716. ~RSRC_GADDR(0,tree33&,tree33_adr%)
  5717. ~RSRC_GADDR(0,tree34&,tree34_adr%)
  5718. ~RSRC_GADDR(0,tree35&,tree35_adr%)
  5719. ~RSRC_GADDR(0,tree36&,tree36_adr%)
  5720. ~RSRC_GADDR(0,tree37&,tree37_adr%)
  5721. ~RSRC_GADDR(0,tree38&,tree38_adr%)
  5722. ~RSRC_GADDR(0,tree39&,tree39_adr%)
  5723. ~RSRC_GADDR(0,tree40&,tree40_adr%)
  5724. ~RSRC_GADDR(0,tree41&,tree41_adr%)
  5725. ~FORM_CENTER(tree6_adr%)
  5726. ~FORM_CENTER(tree7_adr%)
  5727. ~FORM_CENTER(tree8_adr%)
  5728. ~FORM_CENTER(tree10_adr%)
  5729. ~FORM_CENTER(tree11_adr%)
  5730. ~FORM_CENTER(tree12_adr%)
  5731. ~FORM_CENTER(tree13_adr%)
  5732. ~FORM_CENTER(tree14_adr%)
  5733. ~FORM_CENTER(tree15_adr%)
  5734. ~FORM_CENTER(tree16_adr%)
  5735. ~FORM_CENTER(tree17_adr%)
  5736. ~FORM_CENTER(tree18_adr%)
  5737. ~FORM_CENTER(tree19_adr%)
  5738. ~FORM_CENTER(tree20_adr%)
  5739. ~FORM_CENTER(tree21_adr%)
  5740. ~FORM_CENTER(tree22_adr%)
  5741. ~FORM_CENTER(tree23_adr%)
  5742. ~FORM_CENTER(tree24_adr%)
  5743. ~FORM_CENTER(tree26_adr%)
  5744. ~FORM_CENTER(tree27_adr%)
  5745. ~FORM_CENTER(tree28_adr%)
  5746. ~FORM_CENTER(tree29_adr%)
  5747. ~FORM_CENTER(tree30_adr%)
  5748. ~FORM_CENTER(tree31_adr%)
  5749. ~FORM_CENTER(tree32_adr%)
  5750. ~FORM_CENTER(tree33_adr%)
  5751. ~FORM_CENTER(tree35_adr%)
  5752. ~FORM_CENTER(tree36_adr%)
  5753. ~FORM_CENTER(tree37_adr%)
  5754. ~FORM_CENTER(tree38_adr%)
  5755. ~FORM_CENTER(tree39_adr%)
  5756. ~FORM_CENTER(tree40_adr%)
  5757. ~FORM_CENTER(tree41_adr%)
  5758. xt6&=DPEEK(tree6_adr%+16)
  5759. yt6&=DPEEK(tree6_adr%+18)
  5760. bt6&=DPEEK(tree6_adr%+20)
  5761. ht6&=DPEEK(tree6_adr%+22)
  5762. xt7&=DPEEK(tree7_adr%+16)
  5763. yt7&=DPEEK(tree7_adr%+18)
  5764. bt7&=DPEEK(tree7_adr%+20)
  5765. ht7&=DPEEK(tree7_adr%+22)
  5766. xt8&=DPEEK(tree8_adr%+16)
  5767. yt8&=DPEEK(tree8_adr%+18)
  5768. bt8&=DPEEK(tree8_adr%+20)
  5769. ht8&=DPEEK(tree8_adr%+22)
  5770. xt10&=DPEEK(tree10_adr%+16)
  5771. yt10&=DPEEK(tree10_adr%+18)
  5772. bt10&=DPEEK(tree10_adr%+20)
  5773. ht10&=DPEEK(tree10_adr%+22)
  5774. xt11&=DPEEK(tree11_adr%+16)
  5775. yt11&=DPEEK(tree11_adr%+18)
  5776. bt11&=DPEEK(tree11_adr%+20)
  5777. ht11&=DPEEK(tree11_adr%+22)
  5778. xt12&=DPEEK(tree12_adr%+16)
  5779. yt12&=DPEEK(tree12_adr%+18)
  5780. bt12&=DPEEK(tree12_adr%+20)
  5781. ht12&=DPEEK(tree12_adr%+22)
  5782. xt13&=DPEEK(tree13_adr%+16)
  5783. yt13&=DPEEK(tree13_adr%+18)
  5784. bt13&=DPEEK(tree13_adr%+20)
  5785. ht13&=DPEEK(tree13_adr%+22)
  5786. xt14&=DPEEK(tree14_adr%+16)
  5787. yt14&=DPEEK(tree14_adr%+18)
  5788. bt14&=DPEEK(tree14_adr%+20)
  5789. ht14&=DPEEK(tree14_adr%+22)
  5790. xt15&=DPEEK(tree15_adr%+16)
  5791. yt15&=DPEEK(tree15_adr%+18)
  5792. bt15&=DPEEK(tree15_adr%+20)
  5793. ht15&=DPEEK(tree15_adr%+22)
  5794. xt16&=DPEEK(tree16_adr%+16)
  5795. yt16&=DPEEK(tree16_adr%+18)
  5796. bt16&=DPEEK(tree16_adr%+20)
  5797. ht16&=DPEEK(tree16_adr%+22)
  5798. xt17&=DPEEK(tree17_adr%+16)
  5799. yt17&=DPEEK(tree17_adr%+18)
  5800. bt17&=DPEEK(tree17_adr%+20)
  5801. ht17&=DPEEK(tree17_adr%+22)
  5802. xt18&=DPEEK(tree18_adr%+16)
  5803. yt18&=DPEEK(tree18_adr%+18)
  5804. bt18&=DPEEK(tree18_adr%+20)
  5805. ht18&=DPEEK(tree18_adr%+22)
  5806. xt19&=DPEEK(tree19_adr%+16)
  5807. yt19&=DPEEK(tree19_adr%+18)
  5808. bt19&=DPEEK(tree19_adr%+20)
  5809. ht19&=DPEEK(tree19_adr%+22)
  5810. xt20&=DPEEK(tree20_adr%+16)
  5811. yt20&=DPEEK(tree20_adr%+18)
  5812. bt20&=DPEEK(tree20_adr%+20)
  5813. ht20&=DPEEK(tree20_adr%+22)
  5814. xt21&=DPEEK(tree21_adr%+16)
  5815. yt21&=DPEEK(tree21_adr%+18)
  5816. bt21&=DPEEK(tree21_adr%+20)
  5817. ht21&=DPEEK(tree21_adr%+22)
  5818. xt22&=DPEEK(tree22_adr%+16)
  5819. yt22&=DPEEK(tree22_adr%+18)
  5820. bt22&=DPEEK(tree22_adr%+20)
  5821. ht22&=DPEEK(tree22_adr%+22)
  5822. xt23&=DPEEK(tree23_adr%+16)
  5823. yt23&=DPEEK(tree23_adr%+18)
  5824. bt23&=DPEEK(tree23_adr%+20)
  5825. ht23&=DPEEK(tree23_adr%+22)
  5826. DPOKE tree24_adr%+16,DPEEK(tree24_adr%+16)+200
  5827. xt24&=DPEEK(tree24_adr%+16)
  5828. yt24&=DPEEK(tree24_adr%+18)
  5829. bt24&=DPEEK(tree24_adr%+20)
  5830. ht24&=DPEEK(tree24_adr%+22)
  5831. xt26&=DPEEK(tree26_adr%+16)
  5832. yt26&=DPEEK(tree26_adr%+18)
  5833. bt26&=DPEEK(tree26_adr%+20)
  5834. ht26&=DPEEK(tree26_adr%+22)
  5835. xt27&=DPEEK(tree27_adr%+16)
  5836. yt27&=DPEEK(tree27_adr%+18)
  5837. bt27&=DPEEK(tree27_adr%+20)
  5838. ht27&=DPEEK(tree27_adr%+22)
  5839. xt28&=DPEEK(tree28_adr%+16)
  5840. yt28&=DPEEK(tree28_adr%+18)
  5841. bt28&=DPEEK(tree28_adr%+20)
  5842. ht28&=DPEEK(tree28_adr%+22)
  5843. xt29&=DPEEK(tree29_adr%+16)
  5844. yt29&=DPEEK(tree29_adr%+18)
  5845. bt29&=DPEEK(tree29_adr%+20)
  5846. ht29&=DPEEK(tree29_adr%+22)
  5847. xt30&=DPEEK(tree30_adr%+16)
  5848. yt30&=DPEEK(tree30_adr%+18)
  5849. bt30&=DPEEK(tree30_adr%+20)
  5850. ht30&=DPEEK(tree30_adr%+22)
  5851. xt31&=DPEEK(tree31_adr%+16)
  5852. yt31&=DPEEK(tree31_adr%+18)
  5853. bt31&=DPEEK(tree31_adr%+20)
  5854. ht31&=DPEEK(tree31_adr%+22)
  5855. xt32&=DPEEK(tree32_adr%+16)
  5856. yt32&=DPEEK(tree32_adr%+18)
  5857. bt32&=DPEEK(tree32_adr%+20)
  5858. ht32&=DPEEK(tree32_adr%+22)
  5859. xt35&=DPEEK(tree35_adr%+16)
  5860. yt35&=DPEEK(tree35_adr%+18)
  5861. bt35&=DPEEK(tree35_adr%+20)
  5862. ht35&=DPEEK(tree35_adr%+22)
  5863. xt33&=DPEEK(tree33_adr%+16)
  5864. yt33&=DPEEK(tree33_adr%+18)
  5865. bt33&=DPEEK(tree33_adr%+20)
  5866. ht33&=DPEEK(tree33_adr%+22)
  5867. xt36&=DPEEK(tree36_adr%+16)
  5868. yt36&=DPEEK(tree36_adr%+18)
  5869. bt36&=DPEEK(tree36_adr%+20)
  5870. ht36&=DPEEK(tree36_adr%+22)
  5871. xt37&=DPEEK(tree37_adr%+16)
  5872. yt37&=DPEEK(tree37_adr%+18)
  5873. bt37&=DPEEK(tree37_adr%+20)
  5874. ht37&=DPEEK(tree37_adr%+22)
  5875. xt38&=DPEEK(tree38_adr%+16)
  5876. yt38&=DPEEK(tree38_adr%+18)
  5877. bt38&=DPEEK(tree38_adr%+20)
  5878. ht38&=DPEEK(tree38_adr%+22)
  5879. xt39&=DPEEK(tree39_adr%+16)
  5880. yt39&=DPEEK(tree39_adr%+18)
  5881. bt39&=DPEEK(tree39_adr%+20)
  5882. ht39&=DPEEK(tree39_adr%+22)
  5883. xt40&=DPEEK(tree40_adr%+16)
  5884. yt40&=DPEEK(tree40_adr%+18)
  5885. bt40&=DPEEK(tree40_adr%+20)
  5886. ht40&=DPEEK(tree40_adr%+22)
  5887. xt41&=DPEEK(tree41_adr%+16)
  5888. yt41&=DPEEK(tree41_adr%+18)
  5889. bt41&=DPEEK(tree41_adr%+20)
  5890. ht41&=DPEEK(tree41_adr%+22)
  5891. bt_output&=OB_W(tree40_adr%,pl100&)
  5892. CHAR{{OB_SPEC(tree6_adr%,t_hoehe&)}}=STR$(INT(zeichen_hoehe%/100))
  5893. CHAR{{OB_SPEC(tree7_adr%,zabs&)}}=STR$(INT(zeilen_abstand_prozent%))
  5894. CHAR{{OB_SPEC(tree9_adr%,z_char&)}}=CHR$(z_ascii_old%+32)
  5895. CHAR{{OB_SPEC(tree8_adr%,string_text&)}}=abc$
  5896. CHAR{{OB_SPEC(tree12_adr%,bstep&)}}=STR$(b_vari/100)
  5897. CHAR{{OB_SPEC(tree13_adr%,punkte&)}}=STR$(pointer%)
  5898. CHAR{{OB_SPEC(tree13_adr%,rest&)}}=STR$(p_max%-pointer%)
  5899. CHAR{{OB_SPEC(tree13_adr%,version&)}}=revision$
  5900. CHAR{{OB_SPEC(tree14_adr%,rx1&)}}=STR$(folie_x%)
  5901. CHAR{{OB_SPEC(tree14_adr%,ry1&)}}=STR$(folie_y%)
  5902. CHAR{{OB_SPEC(tree14_adr%,rx2&)}}=STR$(folie_x2%)
  5903. CHAR{{OB_SPEC(tree14_adr%,ry2&)}}=STR$(folie_y2%)
  5904. CHAR{{OB_SPEC(tree14_adr%,rx3&)}}=STR$(folie_x3%)
  5905. CHAR{{OB_SPEC(tree14_adr%,ry3&)}}=STR$(folie_y3%)
  5906. CHAR{{OB_SPEC(tree15_adr%,p_init1&)}}=p_init1$
  5907. CHAR{{OB_SPEC(tree15_adr%,p_init2&)}}=p_init2$
  5908. CHAR{{OB_SPEC(tree15_adr%,overcut&)}}=STR$(overcut|/10)
  5909. CHAR{{OB_SPEC(tree15_adr%,ma&)}}=ma$
  5910. CHAR{{OB_SPEC(tree15_adr%,da&)}}=da$
  5911. CHAR{{OB_SPEC(tree17_adr%,outl&)}}="3.0"
  5912. CHAR{{OB_SPEC(tree18_adr%,schraffd&)}}=STR$(schraff_dist/100)
  5913. CHAR{{OB_SPEC(tree18_adr%,schraffi&)}}=STR$(schraff_inc/100)
  5914. CHAR{{OB_SPEC(tree18_adr%,schraffw&)}}=STR$(schraff_winkel)
  5915. CHAR{{OB_SPEC(tree18_adr%,schrafix&)}}=STR$(schraff_fix_abst)
  5916. CHAR{{OB_SPEC(tree21_adr%,t_step&)}}=STR$(bit_count_max|)
  5917. CHAR{{OB_SPEC(tree21_adr%,t_gerade&)}}=STR$(geraden_fehler|)
  5918. CHAR{{OB_SPEC(tree21_adr%,t_schmutz&)}}=STR$(schmutz_filter%)
  5919. CHAR{{OB_SPEC(tree21_adr%,bschwelle&)}}=STR$(lange_gerade%/100)
  5920. CHAR{{OB_SPEC(tree21_adr%,knickwinkel&)}}=STR$(CINT(DEG(knick_winkel_max)))
  5921. CHAR{{OB_SPEC(tree21_adr%,bogen_max&)}}=STR$(CINT(DEG(bogen_max*2)))
  5922. CHAR{{OB_SPEC(tree21_adr%,abweichung_gerade&)}}=STR$(abweichung_gerade%/100)
  5923. CHAR{{OB_SPEC(tree22_adr%,scann_x&)}}="1664"
  5924. CHAR{{OB_SPEC(tree22_adr%,scann_y&)}}="800"
  5925. CHAR{{OB_SPEC(tree23_adr%,radius&)}}="10"
  5926. CHAR{{OB_SPEC(tree27_adr%,calamus_nr&)}}=STR$(calamus_nr%)
  5927. CHAR{{OB_SPEC(tree29_adr%,kostfak&)}}=STR$(kostfak)
  5928. CHAR{{OB_SPEC(tree31_adr%,anz_rot&)}}="3"
  5929. CHAR{{OB_SPEC(tree31_adr%,phi_rot&)}}="90"
  5930. OB_STATE(tree15_adr%,rs232&)=state_rs232&+16
  5931. OB_STATE(tree15_adr%,cent&)=state_rs232& XOR 1+16
  5932. OB_STATE(tree15_adr%,hp&)=state_hp&+16
  5933. OB_STATE(tree15_adr%,gp&)=state_hp& XOR 1+16
  5934. OB_STATE(tree26_adr%,absolut&)=absolut!+18
  5935. OB_STATE(tree26_adr%,relativ&)=absolut!+17
  5936. OB_STATE(tree26_adr%,polar&)=absolut!+17
  5937. IF gdu=1
  5938.   OB_STATE(tree15_adr%,gdu01&)=17
  5939. ELSE
  5940.   IF gdu=2.5
  5941.     OB_STATE(tree15_adr%,gdu025&)=17
  5942.   ELSE
  5943.     IF gdu=5
  5944.       OB_STATE(tree15_adr%,gdu05&)=17
  5945.     ELSE
  5946.       OB_STATE(tree15_adr%,gdu1&)=17
  5947.     ENDIF
  5948.   ENDIF
  5949. ENDIF
  5950. OB_STATE(tree1_adr%,lock&)=1
  5951. IF mimaki!
  5952.   OB_STATE(tree15_adr%,gdu05&)=17
  5953.   OB_STATE(tree15_adr%,gdu01&)=8
  5954.   OB_STATE(tree15_adr%,gdu025&)=8
  5955.   OB_STATE(tree15_adr%,gdu1&)=8
  5956.   OB_STATE(tree15_adr%,rs232&)=17
  5957.   OB_STATE(tree15_adr%,mgl&)=17
  5958.   OB_STATE(tree15_adr%,cent&)=16
  5959.   OB_STATE(tree15_adr%,hp&)=16
  5960.   OB_STATE(tree15_adr%,gp&)=16
  5961. ELSE
  5962.   OB_STATE(tree15_adr%,mgl&)=8
  5963. ENDIF
  5964. ~WIND_GET(0,4)                                   ! get desk size
  5965. BMOVE GINTOUT+2,tree0_adr%+16,8                  ! set into rsc
  5966. BMOVE GINTOUT+2,tree1_adr%+16,8                  ! set into rsc
  5967. BMOVE GINTOUT+2,tree2_adr%+16,8                  ! set into rsc
  5968. BMOVE GINTOUT+2,tree3_adr%+16,8                  ! set into rsc
  5969. BMOVE GINTOUT+2,tree4_adr%+16,8                  ! set into rsc
  5970. BMOVE GINTOUT+2,tree5_adr%+16,8                  ! set into rsc
  5971. BMOVE GINTOUT+2,tree9_adr%+16,8                  ! set into rsc
  5972. BMOVE GINTOUT+2,tree25_adr%+16,8                 ! set into rsc
  5973. BMOVE GINTOUT+2,tree34_adr%+16,8                 ! set into rsc
  5974. wind_newdesk(tree0_adr%,0)                       ! install  Datei Baum
  5975. IF default_font$<>""
  5976.   datei$=ein_space$
  5977.   IF EXIST(pfad_fnt$+"\"+default_font$)
  5978.     load_font(pfad_fnt$+"\"+default_font$)
  5979.     programm_font$=LEFT$(default_font$,LEN(default_font$)-4)
  5980.   ELSE
  5981.     make_new_font(-1)
  5982.   ENDIF
  5983. ELSE
  5984.   make_new_font(-1)
  5985. ENDIF
  5986. m$(0)=""
  5987. m$(1)="  CUTOUT"
  5988. m$(2)="--------------------"
  5989. m$(3)=CHR$(2)
  5990. m$(4)=CHR$(3)
  5991. m$(5)=CHR$(4)
  5992. m$(6)=CHR$(5)
  5993. m$(7)=CHR$(6)
  5994. m$(8)=CHR$(7)
  5995. m$(9)=CHR$(8)
  5996. m$(10)=""
  5997. m$(11)=pd_menu$
  5998. m$(12)=pd_datei$
  5999. m$(13)=pd_editieren$
  6000. m$(14)=pd_fenster$
  6001. m$(15)=pd_schnittpunkt$
  6002. m$(16)=pd_bogen$
  6003. m$(17)="----------------------"
  6004. m$(18)=pd_text$
  6005. m$(19)=pd_zeicheneditor$
  6006. m$(20)=m$(17)
  6007. m$(21)=pd_extra$
  6008. m$(22)=m$(17)
  6009. m$(23)=pd_quit$
  6010. m$(24)=""
  6011. m$(25)=pd_optionen$
  6012. m$(26)=pd_marker_anzeigen$
  6013. m$(27)=pd_tangenten_anzeigen$
  6014. m$(28)=pd_fangradius_klein$
  6015. m$(29)=pd_polygon_modus$
  6016. m$(30)=pd_schnittpunkt_genau$
  6017. m$(31)=pd_koordinaten$
  6018. m$(32)=pd_element_selektieren$
  6019. m$(33)=pd_polygon_selektieren$
  6020. m$(34)=pd_warnmeldungen$
  6021. m$(35)="---------------------------"
  6022. m$(36)=pd_skaliere_alles$
  6023. m$(37)=m$(35)
  6024. m$(38)=pd_punkte_nivellieren$
  6025. m$(39)=pd_tangente$
  6026. m$(40)=m$(35)
  6027. m$(41)=pd_plotflaeche$
  6028. m$(42)=pd_bezier_step_aendern$
  6029. m$(43)=pd_plotter_einstellung$
  6030. m$(44)=pd_kosten_faktor$
  6031. m$(45)=pd_pfad_sichern$
  6032. m$(46)=""
  6033. m$(47)=pd_figur$
  6034. m$(48)=pd_rechteck$
  6035. m$(49)=pd_n_eck$
  6036. m$(50)=pd_polygon_outline$
  6037. m$(51)=pd_aequidistante$
  6038. m$(52)=pd_frame$
  6039. m$(53)="---------------------------"
  6040. m$(54)=pd_polygone_ausrichten$
  6041. m$(55)=pd_polygone_zentrieren$
  6042. m$(56)=pd_polygone_vereinen$
  6043. m$(57)=pd_polygone_fuellen$
  6044. m$(58)=m$(53)
  6045. m$(59)=pd_einzelne_punkte_loeschen$
  6046. m$(60)=""
  6047. m$(61)=pd_linie$
  6048. m$(62)=pd_bezier_vektor$
  6049. m$(63)=pd_bezier_einfuegen$
  6050. m$(64)=pd_tausche_bezier_vektor$
  6051. m$(65)=m$(53)
  6052. m$(66)=pd_knacken$
  6053. m$(67)=pd_trimmen$
  6054. m$(68)=pd_lot$
  6055. m$(69)=pd_verlaengern$
  6056. m$(70)=pd_teilen$
  6057. m$(71)=pd_messen$
  6058. m$(72)=m$(53)
  6059. m$(73)=pd_schnittp_2er$
  6060. m$(74)=pd_schnittp_n$
  6061. m$(75)=""
  6062. m$(76)=pd_effekt$
  6063. m$(77)=pd_parameter_schraffur$
  6064. m$(78)=pd_polygon_schraffieren$
  6065. m$(79)=pd_alles_schraffieren$
  6066. m$(80)="------------------------"
  6067. m$(81)=pd_schatten$
  6068. m$(82)=pd_einpassen$
  6069. m$(83)=m$(80)
  6070. m$(84)=pd_kugel$
  6071. m$(85)=""
  6072. m$(86)=""
  6073. MENU m$()
  6074. IF fangklein!
  6075.   MENU 28,1
  6076. ENDIF
  6077. IF polygonmode!
  6078.   MENU 29,1
  6079. ENDIF
  6080. IF warn!
  6081.   MENU 34,1
  6082. ENDIF
  6083. CLIP 0,0,639,399 OFFSET 0,0
  6084. DEFTEXT 1,0,0,6
  6085. COLOR 1
  6086. TEXT 400,7,"Zoom X:"
  6087. TEXT 400,15,"Zoom Y:"
  6088. TEXT 540,7,"X:"
  6089. TEXT 540,15,"Y:"
  6090. DEFTEXT 1,0,0,4
  6091. TEXT 624,7,"mm"
  6092. TEXT 624,15,"mm"
  6093. LINE 536,0,536,20
  6094. LINE 396,0,396,20
  6095. '
  6096. ~FORM_DIAL(3,0,0,0,0,0,0,desk_breite&,desk_hoehe&)                !redraw all
  6097. '
  6098. layer!=FALSE
  6099. zoom=1
  6100. x_layer%=folie_x%
  6101. y_layer%=folie_y%
  6102. x_layero%=x_layer%
  6103. y_layero%=y_layer%
  6104. res_x%=x_layer%
  6105. res_y%=y_layer%
  6106. x_offset&=0
  6107. y_offset&=0
  6108. res_x_old%=x_layer%
  6109. res_y_old%=y_layer%
  6110. x_offset_old&=0
  6111. y_offset_old&=0
  6112. pointer%=0
  6113. get_desktop
  6114. scrb_old&=scrb&
  6115. scrh_old&=scrh&
  6116. CLOSEW 1
  6117. programm$=noname$
  6118. INT{WINDTAB+2}=&X111111000000
  6119. INT{WINDTAB+4}=scrx&
  6120. INT{WINDTAB+6}=scry&
  6121. INT{WINDTAB+8}=scrb&
  6122. INT{WINDTAB+10}=scrh&
  6123. help_titel
  6124. OPENW 1
  6125. calc_slid
  6126. ~WIND_GET(1,4,x_win&,y_win&,b_window&,h_window&)
  6127. neues_polygon!=TRUE
  6128. do_redraw
  6129. DEFMOUSE 3
  6130. p_zoom(zoom*100,zoom*100)
  6131. CHAR{{OB_SPEC(tree14_adr%,rx1&)}}=STR$(x_layer%)
  6132. CHAR{{OB_SPEC(tree14_adr%,ry1&)}}=STR$(y_layer%)
  6133. ' test_vollbild
  6134. '
  6135. ~OBJC_OFFSET(tree28_adr%,gtprewin&,gtxv&,gtyv&)
  6136. gtxv&=gtxv&-x_win&+1
  6137. gtyv&=gtyv&-y_win&+1
  6138. '
  6139. ON MENU MESSAGE GOSUB message
  6140. ON MENU BUTTON 1,1,1 GOSUB button
  6141. ON MENU GOSUB menu
  6142. ON MENU KEY GOSUB key
  6143. ' ON ERROR GOSUB fehler
  6144. '
  6145. '
  6146. REPEAT
  6147.   ON MENU
  6148. UNTIL end!
  6149. '
  6150. IF modified!
  6151.   IF pointer%>0
  6152.     ALERT 3,"| "+sichere$+daten$,1,ja_nein$,i%
  6153.     IF i%=1
  6154.       @save_vektor
  6155.     ENDIF
  6156.   ENDIF
  6157. ENDIF
  6158. '
  6159. ' Bei fertigen Programmen hier nur QUIT
  6160. '
  6161. reset
  6162. ~WIND_GET(0,10)
  6163. IF DPEEK(GINTOUT+2)
  6164.   ALERT 1,"Accessories",1,"Close|Quit",i%
  6165.   IF i%=2
  6166.     QUIT
  6167.   ENDIF
  6168.   REPEAT
  6169.     ~WIND_GET(0,10)
  6170.   UNTIL DPEEK(GINTOUT+2)=0
  6171. ENDIF
  6172. RESERVE                                ! XBIOS(2)-HIMEM+FRE(0)-16384
  6173. '
  6174. PROCEDURE fehler
  6175.   ALERT 1,fehler$,1,leider$,i%
  6176.   '  RESUME NEXT
  6177. RETURN
  6178. '
  6179. '
  6180. PROCEDURE get_undo
  6181.   LOCAL dp%
  6182.   dp%=daten_ptr%
  6183.   IF (pointer%*9+1<work_space%) AND (NOT layer_geladen!)
  6184.     LONG{dp%}=pointer%
  6185.     ADD dp%,4
  6186.     undo!=TRUE
  6187.     BMOVE VARPTR(punkte_x%(0)),dp%,pointer%*4
  6188.     ADD dp%,pointer%*4
  6189.     BMOVE VARPTR(punkte_y%(0)),dp%,pointer%*4
  6190.     ADD dp%,pointer%*4
  6191.     BMOVE VARPTR(punkte_def|(0)),dp%,pointer%
  6192.     undo!=TRUE
  6193.   ELSE
  6194.     undo!=FALSE
  6195.   ENDIF
  6196. RETURN
  6197. '
  6198. PROCEDURE put_undo
  6199.   LOCAL dp%
  6200.   IF undo!
  6201.     dp%=daten_ptr%
  6202.     pointer%=LONG{dp%}
  6203.     ADD dp%,4
  6204.     BMOVE dp%,VARPTR(punkte_x%(0)),pointer%*4
  6205.     ADD dp%,pointer%*4
  6206.     BMOVE dp%,VARPTR(punkte_y%(0)),pointer%*4
  6207.     ADD dp%,pointer%*4
  6208.     BMOVE dp%,VARPTR(punkte_def|(0)),pointer%
  6209.     undo!=FALSE
  6210.     do_redraw
  6211.   ENDIF
  6212. RETURN
  6213. '
  6214. PROCEDURE output_drucker
  6215.   LOCAL handle&,x_resi&,y_resi&,z_old
  6216.   IF GDOS?
  6217.     ERASE work%()
  6218.     IF FRE(0)>250000
  6219.       RESERVE -250000
  6220.       handle&=V_OPNWK(21)
  6221.       IF handle&<>0
  6222.         V~H=handle&
  6223.         x_resi&=INTOUT(0)
  6224.         y_resi&=INTOUT(1)
  6225.         ~V_CLRWK()
  6226.         z_old=zoom
  6227.         zoom=4
  6228.         redraw_ohne(0)
  6229.         ~V_UPDWK()
  6230.         ~V_CLSWK()
  6231.         zoom=z_old
  6232.       ELSE
  6233.       ENDIF
  6234.       RESERVE
  6235.     ELSE
  6236.     ENDIF
  6237.     DIM work%((FRE(0)-80*1024)/4)
  6238.     daten_ptr%=V:work%(0)
  6239.     work_space%=DIM?(work%())*4
  6240.   ELSE
  6241.   ENDIF
  6242. RETURN
  6243. '
  6244. '
  6245. PROCEDURE scan_a1
  6246.   ALERT 3,"| SCAN Hochformat: ",1,"A3|A2|A1",i%
  6247.   SELECT i%
  6248.   CASE 1
  6249.     scann_x%=INT(17*400/8)       !17
  6250.     scann_y%=INT(12*400)        !12
  6251.   CASE 2
  6252.     scann_x%=INT(25*400/8)
  6253.     scann_y%=INT(17*400)
  6254.   CASE 3
  6255.     scann_x%=INT(34*400/8)
  6256.     scann_y%=INT(25*400)
  6257.   ENDSELECT
  6258.   scan_graphtec(3,400,0,0,scann_x%,scann_y%)
  6259. RETURN
  6260. '
  6261. PROCEDURE scan_graphtec(device&,dpi&,x_0%,y_0%,bytes_x%,lines_y%)
  6262.   LOCAL command_bytes&,bytes_to_transfer%,transfer_dir&
  6263.   LOCAL y_offset%,block&,command_bytes&,bytes_to_transfer%
  6264.   ' IF FN test_unit_ready(device&)=0
  6265.   set_graphtec_window(device&,dpi&,x_0%,y_0%,bytes_x%,lines_y%)
  6266.   command_bytes&=10
  6267.   block&=&HFFFF DIV bytes_x% DIV 3
  6268.   bytes_to_transfer%=bytes_x%*block&*3
  6269.   transfer_dir&=0                               ! LESEN
  6270.   command|(0)=&H28
  6271.   command|(1)=0
  6272.   command|(2)=0
  6273.   command|(3)=0
  6274.   command|(4)=0
  6275.   command|(5)=0
  6276.   command|(6)=0
  6277.   command|(7)=0
  6278.   command|(8)=0
  6279.   command|(9)=0
  6280.   WORD{V:command|(7)}=block&
  6281.   '
  6282.   anzahl&=lines_y% DIV block&
  6283.   rest&=lines_y% MOD block&
  6284.   y_offset%=0
  6285.   FOR i%=1 TO anzahl&
  6286.     $c+
  6287.     fehler%=C:scsi%(device&,command_bytes&,bytes_to_transfer%,transfer_dir&,L:V:command|(0),L:daten_ptr%+y_offset%)
  6288.     $c-
  6289.     ADD y_offset%,block&*bytes_x%
  6290.   NEXT i%
  6291.   IF rest&<>0
  6292.     bytes_to_transfer%=bytes_x%*rest&*3
  6293.     WORD{V:command|(7)}=rest&
  6294.     $c+
  6295.     fehler%=C:scsi%(device&,command_bytes&,bytes_to_transfer%,transfer_dir&,L:V:command|(0),L:daten_ptr%+y_offset%)
  6296.     $c-
  6297.   ENDIF
  6298.   '  status&=AND(CARD(fehler%),&X11110)
  6299.   ' message&=CARD(SWAP(fehler%))
  6300.   layer!=TRUE
  6301.   layer_geladen!=TRUE
  6302.   voll_bild!=TRUE
  6303.   outlined!=FALSE
  6304.   do_change_aufloesung(bytes_x%*8,lines_y%,1)
  6305.   init_bit_blit
  6306.   p_zoom(zoom*100,zoom*100)
  6307.   do_redraw
  6308.   ' ENDIF
  6309. RETURN
  6310. '
  6311. PROCEDURE set_graphtec_window(device&,dpi&,x_0%,y_0%,bytes_x%,lines_y%)
  6312.   LOCAL command_bytes&,bytes_to_transfer%,transfer_dir&
  6313.   command_bytes&=10
  6314.   bytes_to_transfer%=53
  6315.   transfer_dir&=1                               ! LESEN (1=SCHREIBEN)
  6316.   command|(0)=&H24
  6317.   command|(1)=0
  6318.   command|(2)=0
  6319.   command|(3)=0
  6320.   command|(4)=0
  6321.   command|(5)=0
  6322.   command|(6)=0
  6323.   command|(7)=0
  6324.   command|(8)=bytes_to_transfer%
  6325.   command|(9)=0
  6326.   FOR i%=0 TO 6
  6327.     buffer|(i%)=0
  6328.   NEXT i%
  6329.   FOR i%=38 TO 47
  6330.     buffer|(i%)=0
  6331.   NEXT i%
  6332.   buffer|(7)=45                         ! Window Descriptor Block Length
  6333.   buffer|(8)=0                          ! Window ID
  6334.   buffer|(9)=0                          ! reserved
  6335.   WORD{V:buffer|(10)}=dpi&              ! X resolution
  6336.   WORD{V:buffer|(12)}=dpi&              ! Y resolution
  6337.   LONG{V:buffer|(14)}=x_0%*24           ! X Upper Left
  6338.   LONG{V:buffer|(18)}=y_0%*3            ! Y Upper Left
  6339.   LONG{V:buffer|(22)}=bytes_x%*24       ! Width
  6340.   LONG{V:buffer|(26)}=lines_y%*3        ! Length
  6341.   buffer|(30)=0                         ! reserved
  6342.   buffer|(31)=0                         ! Kontrast
  6343.   buffer|(32)=0                         ! reserved
  6344.   buffer|(33)=0                         ! Image composition
  6345.   buffer|(34)=1                         ! Bits per Pixel
  6346.   buffer|(35)=0                         ! reserved
  6347.   buffer|(36)=0                         ! reserved
  6348.   buffer|(37)=0                         ! Reverse Image
  6349.   buffer|(48)=2                         ! Cell length
  6350.   buffer|(49)=5                         ! Function Code
  6351.   buffer|(50)=1                         ! Fine Line
  6352.   buffer|(51)=2                         ! Cell length
  6353.   buffer|(52)=6                         ! Function Code
  6354.   buffer|(53)=1                         ! Scann Speed
  6355.   $c+
  6356.   fehler%=C:scsi%(device&,command_bytes&,bytes_to_transfer%,transfer_dir&,L:V:command|(0),L:V:buffer|(0))
  6357.   $c-
  6358. RETURN
  6359. '
  6360. FUNCTION test_unit_ready(device&)
  6361.   command_bytes&=6
  6362.   bytes_to_transfer%=1
  6363.   transfer_dir&=0                               ! LESEN (1=SCHREIBEN)
  6364.   command|(0)=0
  6365.   command|(1)=0
  6366.   command|(2)=0
  6367.   command|(3)=0
  6368.   command|(4)=bytes_to_transfer%
  6369.   command|(5)=0
  6370.   '
  6371.   $c+
  6372.   fehler%=C:scsi%(device&,command_bytes&,L:bytes_to_transfer%,transfer_dir&,L:V:command|(0),L:V:buffer|(0))
  6373.   $c-
  6374.   status&=AND(CARD(fehler%),&X11110)
  6375.   message&=CARD(SWAP(fehler%))
  6376.   '
  6377.   RETURN status&
  6378. ENDFUNC
  6379. '
  6380. '
  6381. PROCEDURE gt_info(i$)
  6382.   CHAR{{OB_SPEC(tree28_adr%,gtstate&)}}=i$
  6383.   ~OBJC_DRAW(tree28_adr%,gtstate&,8,xt28&,yt28&,bt28&,ht28&)
  6384. RETURN
  6385. '
  6386. PROCEDURE dpi_change(prex0&,prey0&,prex0_min&,prey0_min&)
  6387.   CHAR{{OB_SPEC(tree28_adr%,gtdpi&)}}=STR$(gtdpiv&)
  6388.   ~OBJC_DRAW(tree28_adr%,gtdpi&,8,xt28&,yt28&,bt28&,ht28&)
  6389.   CHAR{{OB_SPEC(tree28_adr%,gtb&)}}=STR$(AND(INT(gtbv&/25.4*gtdpiv&),&HFFF8))
  6390.   CHAR{{OB_SPEC(tree28_adr%,gth&)}}=STR$(AND(INT(gthv&/25.4*gtdpiv&),&HFFF8))
  6391.   ~OBJC_DRAW(tree28_adr%,gtb&,8,xt28&,yt28&,bt28&,ht28&)
  6392.   ~OBJC_DRAW(tree28_adr%,gth&,8,xt28&,yt28&,bt28&,ht28&)
  6393.   CHAR{{OB_SPEC(tree28_adr%,gtx&)}}=STR$(AND(INT((prex0&-prex0_min&)/25.4*gtdpiv&),&HFFF8))
  6394.   CHAR{{OB_SPEC(tree28_adr%,gty&)}}=STR$(AND(INT((prey0&-prey0_min&)/25.4*gtdpiv&),&HFFF8))
  6395.   ~OBJC_DRAW(tree28_adr%,gtx&,8,xt28&,yt28&,bt28&,ht28&)
  6396.   ~OBJC_DRAW(tree28_adr%,gty&,8,xt28&,yt28&,bt28&,ht28&)
  6397. RETURN
  6398. '
  6399. PROCEDURE gt_6000
  6400.   LOCAL prex0&,prey0&,prex0_min&,prey0_min&,x_changed&,y_changed&
  6401.   LOCAL prex&,prey&,gthalbton&
  6402.   DEFMOUSE 0
  6403.   SETMOUSE xt28&+240,yt28&+310,0
  6404.   CLIP 0,0,desk_breite&,desk_hoehe& OFFSET x_win&,y_win&
  6405.   ~OBJC_OFFSET(tree28_adr%,gtprewin&,prex&,prey&)
  6406.   gthalbton&=1
  6407.   prex0&=prex&-x_win&+1
  6408.   prey0&=prey&-y_win&+1
  6409.   prex0_min&=prex0&
  6410.   prey0_min&=prey0&
  6411.   prex0_max&=prex0&+217
  6412.   prey0_max&=prey0&+297
  6413.   prex0&=gtxv&
  6414.   prey0&=gtyv&
  6415.   '
  6416.   CHAR{{OB_SPEC(tree28_adr%,gtx&)}}=STR$(AND(INT((prex0&-prex0_min&)/25.4*gtdpiv&),&HFFF8))
  6417.   CHAR{{OB_SPEC(tree28_adr%,gty&)}}=STR$(AND(INT((prey0&-prey0_min&)/25.4*gtdpiv&),&HFFF8))
  6418.   CHAR{{OB_SPEC(tree28_adr%,gtb&)}}=STR$(AND(INT(gtbv&/25.4*gtdpiv&),&HFFF8))
  6419.   CHAR{{OB_SPEC(tree28_adr%,gth&)}}=STR$(AND(INT(gthv&/25.4*gtdpiv&),&HFFF8))
  6420.   CHAR{{OB_SPEC(tree28_adr%,gtdpi&)}}=STR$(gtdpiv&)
  6421.   CHAR{{OB_SPEC(tree28_adr%,gtstate&)}}=waehle$
  6422.   GET xt28&-4,yt28&-4,xt28&+bt28&+4,yt28&+ht28&+4,rette$
  6423.   ~OBJC_DRAW(tree28_adr%,0,8,xt28&,yt28&,bt28&,ht28&)
  6424.   smfdb%(0)=V:prebuf$
  6425.   smfdb%(1)=208
  6426.   smfdb%(2)=292
  6427.   smfdb%(3)=smfdb%(1)/16
  6428.   smfdb%(5)=1
  6429.   dmfdb%(0)=XBIOS(3)
  6430.   dmfdb%(1)=desk_breite&
  6431.   dmfdb%(2)=desk_hoehe&
  6432.   dmfdb%(3)=dmfdb%(1)/16
  6433.   dmfdb%(5)=1
  6434.   p%(0)=0
  6435.   p%(1)=0
  6436.   p%(2)=207
  6437.   p%(3)=291
  6438.   p%(4)=prex&+1
  6439.   p%(5)=prey&+1
  6440.   p%(6)=p%(4)+207
  6441.   p%(7)=p%(5)+291
  6442.   p%(8)=3
  6443.   BITBLT smfdb%(),dmfdb%(),p%()
  6444.   DEFFILL 1,1,1
  6445.   GRAPHMODE 3
  6446.   BOX prex0&,prey0&,prex0&+gtbv&,prey0&+gthv&
  6447.   PBOX prex0&+gtbv&-8,prey0&+gthv&-8,prex0&+gtbv&,prey0&+gthv&
  6448.   REPEAT
  6449.     DO
  6450.       ~FORM_DO(tree28_adr%,0)
  6451.       IF INT{GINTOUT}>0 AND INT{GINTOUT}<100
  6452.         exit_button&=DPEEK(GINTOUT)
  6453.         OB_STATE(tree28_adr%,exit_button&)=0
  6454.         IF exit_button&<>gtprewin&
  6455.           ~OBJC_DRAW(tree28_adr%,exit_button&,8,xt28&,yt28&,bt28&,ht28&)
  6456.         ENDIF
  6457.       ENDIF
  6458.       SELECT exit_button&
  6459.       CASE gtdpimin&
  6460.         IF gtdpiv&>100
  6461.           IF gtdpiv&=480
  6462.             gtdpiv&=400
  6463.           ELSE
  6464.             IF gtdpiv&=600
  6465.               gtdpiv&=480
  6466.             ELSE
  6467.               SUB gtdpiv&,100
  6468.             ENDIF
  6469.           ENDIF
  6470.           dpi_change(prex0&,prey0&,prex0_min&,prey0_min&)
  6471.         ENDIF
  6472.       CASE gtdpiplu&
  6473.         IF gtdpiv&<600
  6474.           IF gtdpiv&=400
  6475.             gtdpiv&=480
  6476.           ELSE
  6477.             IF gtdpiv&=480
  6478.               gtdpiv&=600
  6479.             ELSE
  6480.               ADD gtdpiv&,100
  6481.             ENDIF
  6482.           ENDIF
  6483.           dpi_change(prex0&,prey0&,prex0_min&,prey0_min&)
  6484.         ENDIF
  6485.       CASE gtprewin&
  6486.         MOUSE x_mouse%,y_mouse%,taste|
  6487.         IF x_mouse%>prex0&+gtbv&-8 AND x_mouse%<prex0&+gtbv& AND y_mouse%>prey0&+gthv&-8 AND y_mouse%<prey0&+gthv&
  6488.           DEFMOUSE 3
  6489.           REPEAT
  6490.             MOUSE x_mouse%,y_mouse%,taste|
  6491.             IF x_mouse%<>x_mouse_old% OR y_mouse%<>y_mouse_old%
  6492.               BOX prex0&,prey0&,prex0&+gtbv&,prey0&+gthv&
  6493.               PBOX prex0&+gtbv&-8,prey0&+gthv&-8,prex0&+gtbv&,prey0&+gthv&
  6494.               IF x_mouse%-prex0_min&<217 AND x_mouse%-prex0&>16
  6495.                 gtbv&=x_mouse%-prex0&
  6496.                 i%=AND(INT(gtbv&/25.4*gtdpiv&),&HFFF0)
  6497.                 gtbv&=CINT(i%*25.4/gtdpiv&)
  6498.               ENDIF
  6499.               IF y_mouse%-prey0_min&<298 AND y_mouse%-prey0&>16
  6500.                 gthv&=y_mouse%-prey0&
  6501.               ENDIF
  6502.               BOX prex0&,prey0&,prex0&+gtbv&,prey0&+gthv&
  6503.               PBOX prex0&+gtbv&-8,prey0&+gthv&-8,prex0&+gtbv&,prey0&+gthv&
  6504.               SHOWM
  6505.               x_mouse_old%=x_mouse%
  6506.               y_mouse_old%=y_mouse%
  6507.               CHAR{{OB_SPEC(tree28_adr%,gtb&)}}=STR$(AND(INT(gtbv&/25.4*gtdpiv&),&HFFF0))
  6508.               CHAR{{OB_SPEC(tree28_adr%,gth&)}}=STR$(INT(gthv&/25.4*gtdpiv&))
  6509.               ~OBJC_DRAW(tree28_adr%,gtb&,8,xt28&,yt28&,bt28&,ht28&)
  6510.               ~OBJC_DRAW(tree28_adr%,gth&,8,xt28&,yt28&,bt28&,ht28&)
  6511.             ENDIF
  6512.           UNTIL taste|=0
  6513.           DEFMOUSE 0
  6514.         ELSE
  6515.           IF x_mouse%>prex0& AND x_mouse%<prex0&+gtbv& AND y_mouse%>prey0& AND y_mouse%<prey0&+gthv&
  6516.             x_mouse_old%=x_mouse%
  6517.             y_mouse_old%=y_mouse%
  6518.             DEFMOUSE 3
  6519.             REPEAT
  6520.               MOUSE x_mouse%,y_mouse%,taste|
  6521.               IF x_mouse%<>x_mouse_old% OR y_mouse%<>y_mouse_old%
  6522.                 x_changed&=x_mouse%-x_mouse_old%
  6523.                 y_changed&=y_mouse%-y_mouse_old%
  6524.                 BOX prex0&,prey0&,prex0&+gtbv&,prey0&+gthv&
  6525.                 PBOX prex0&+gtbv&-8,prey0&+gthv&-8,prex0&+gtbv&,prey0&+gthv&
  6526.                 IF prex0&+x_changed&>=prex0_min& AND prex0&+x_changed&+gtbv&<prex0_max&
  6527.                   ADD prex0&,x_changed&
  6528.                 ENDIF
  6529.                 IF prey0&+y_changed&>=prey0_min& AND prey0&+y_changed&+gthv&<prey0_max&
  6530.                   ADD prey0&,y_changed&
  6531.                 ENDIF
  6532.                 BOX prex0&,prey0&,prex0&+gtbv&,prey0&+gthv&
  6533.                 PBOX prex0&+gtbv&-8,prey0&+gthv&-8,prex0&+gtbv&,prey0&+gthv&
  6534.                 SHOWM
  6535.                 x_mouse_old%=x_mouse%
  6536.                 y_mouse_old%=y_mouse%
  6537.                 CHAR{{OB_SPEC(tree28_adr%,gtx&)}}=STR$(AND(INT((prex0&-prex0_min&)/25.4*gtdpiv&),&HFFF8))
  6538.                 CHAR{{OB_SPEC(tree28_adr%,gty&)}}=STR$(AND(INT((prey0&-prey0_min&)/25.4*gtdpiv&),&HFFF8))
  6539.                 ~OBJC_DRAW(tree28_adr%,gtx&,8,xt28&,yt28&,bt28&,ht28&)
  6540.                 ~OBJC_DRAW(tree28_adr%,gty&,8,xt28&,yt28&,bt28&,ht28&)
  6541.               ENDIF
  6542.             UNTIL taste|=0
  6543.             DEFMOUSE 0
  6544.           ENDIF
  6545.         ENDIF
  6546.       CASE gtpresca&
  6547.         gt_info(scannen$+pre_view$)
  6548.         HIDEM
  6549.         gt6000%=VARPTR(gt6000$)
  6550.         $C+
  6551.         VOID C:gt6000%(1,50,3,3,gthalbton&,0,0,26,292,L:V:prebuf$,L:V:prebuf$+8000)
  6552.         $C-
  6553.         OUT (2),13
  6554.         trigger_0
  6555.         DEFMOUSE 3
  6556.         SHOWM
  6557.         BOX prex0&,prey0&,prex0&+gtbv&,prey0&+gthv&
  6558.         PBOX prex0&+gtbv&-8,prey0&+gthv&-8,prex0&+gtbv&,prey0&+gthv&
  6559.         smfdb%(0)=V:prebuf$
  6560.         BITBLT smfdb%(),dmfdb%(),p%()
  6561.         BOX prex0&,prey0&,prex0&+gtbv&,prey0&+gthv&
  6562.         PBOX prex0&+gtbv&-8,prey0&+gthv&-8,prex0&+gtbv&,prey0&+gthv&
  6563.         gt_info(waehle$)
  6564.       ENDSELECT
  6565.       EXIT IF exit_button&=gtcancel&
  6566.       EXIT IF exit_button&=gtscan&
  6567.     LOOP
  6568.     IF exit_button&=gtcancel&
  6569.       PUT xt28&-4,yt28&-4,rette$
  6570.       ok!=TRUE
  6571.     ENDIF
  6572.     IF exit_button&=gtscan&
  6573.       IF OB_STATE(tree28_adr%,gthart&)=1
  6574.         gthalbton&=0
  6575.       ELSE
  6576.         IF OB_STATE(tree28_adr%,gtweich&)=1
  6577.           gthalbton&=16
  6578.         ELSE
  6579.           IF OB_STATE(tree28_adr%,gtraster&)=1
  6580.             gthalbton&=32
  6581.           ELSE
  6582.             gthalbton&=1
  6583.           ENDIF
  6584.         ENDIF
  6585.       ENDIF
  6586.       IF OB_STATE(tree28_adr%,gtrot&)=1
  6587.         gtfarbev&=0
  6588.       ELSE
  6589.         IF OB_STATE(tree28_adr%,gtgruen&)=1
  6590.           gtfarbev&=1
  6591.         ELSE
  6592.           IF OB_STATE(tree28_adr%,gtblau&)=1
  6593.             gtfarbev&=2
  6594.           ELSE
  6595.             gtfarbev&=3
  6596.           ENDIF
  6597.         ENDIF
  6598.       ENDIF
  6599.       IF OB_STATE(tree28_adr%,k0&)=1
  6600.         gtkontrav&=0
  6601.       ELSE
  6602.         IF OB_STATE(tree28_adr%,k1&)=1
  6603.           gtkontrav&=1
  6604.         ELSE
  6605.           IF OB_STATE(tree28_adr%,k2&)=1
  6606.             gtkontrav&=2
  6607.           ELSE
  6608.             IF OB_STATE(tree28_adr%,k3&)=1
  6609.               gtkontrav&=3
  6610.             ELSE
  6611.               IF OB_STATE(tree28_adr%,k4&)=1
  6612.                 gtkontrav&=4
  6613.               ELSE
  6614.                 IF OB_STATE(tree28_adr%,k5&)=1
  6615.                   gtkontrav&=5
  6616.                 ELSE
  6617.                   gtkontrav&=6
  6618.                 ENDIF
  6619.               ENDIF
  6620.             ENDIF
  6621.           ENDIF
  6622.         ENDIF
  6623.       ENDIF
  6624.       gt_info(scannen$+bereich$)
  6625.       gtxorig&=CINT(AND(INT((prex0&+2-prex0_min&)/25.4*gtdpiv&),&HFFF8)/8)
  6626.       gtyorig&=CINT((prey0&+2-prey0_min&)/25.4*gtdpiv&)
  6627.       gtxbytes&=CINT(AND(INT(gtbv&/25.4*gtdpiv&),&HFFF0)/8)
  6628.       gtyzeilen&=CINT(gthv&/25.4*gtdpiv&)
  6629.       IF gtxbytes&*(gtyzeilen&+1)<work_space%
  6630.         HIDEM
  6631.         gt6000%=VARPTR(gt6000$)
  6632.         $C+
  6633.         i%=C:gt6000%(0,gtdpiv&,gtfarbev&,gtkontrav&,gthalbton&,gtxorig&,gtyorig&,gtxbytes&,gtyzeilen&,L:daten_ptr%,L:daten_ptr%+work_space%)
  6634.         $C-
  6635.         OUT (2),13
  6636.         trigger_0
  6637.         DEFMOUSE 3
  6638.         SHOWM
  6639.       ELSE
  6640.         i%=-1
  6641.       ENDIF
  6642.       IF i%>=0
  6643.         gt_info(waehle$)
  6644.         PUT xt28&-4,yt28&-4,rette$
  6645.         layer!=TRUE
  6646.         layer_geladen!=TRUE
  6647.         voll_bild!=TRUE
  6648.         outlined!=FALSE
  6649.         do_change_aufloesung(AND(INT(gtbv&/25.4*gtdpiv&),&HFFF0),INT(gthv&/25.4*gtdpiv&),1)
  6650.         init_bit_blit
  6651.         p_zoom(zoom*100,zoom*100)
  6652.         do_redraw
  6653.         ok!=TRUE
  6654.       ELSE
  6655.         FOR i%=1 TO 5
  6656.           gt_info(fehler$)
  6657.           PAUSE 15
  6658.           gt_info("      ")
  6659.           PAUSE 15
  6660.         NEXT i%
  6661.         gt_info(waehle$)
  6662.         ok!=FALSE
  6663.       ENDIF
  6664.     ENDIF
  6665.   UNTIL ok!
  6666.   gtxv&=prex0&
  6667.   gtyv&=prey0&
  6668.   ~WIND_GET(1,4)
  6669.   clip(x_window&,y_window&,b_window&,h_window&,INT{GINTOUT+2},INT{GINTOUT+4})
  6670.   set_clip_offset
  6671.   GRAPHMODE 1
  6672.   DEFFILL 0,0
  6673.   DEFMOUSE 3
  6674.   init_bit_blit
  6675. RETURN
  6676. '
  6677. PROCEDURE set_clip_offset
  6678.   INT{WINDTAB+64}=INT{WINDTAB+64}-x_offset&
  6679.   INT{WINDTAB+66}=INT{WINDTAB+66}-y_offset&
  6680. RETURN
  6681. '
  6682. PROCEDURE helpo(help$)
  6683.   TITLEW #1,ein_space$+help$+ein_space$
  6684.   set_clip_offset
  6685. RETURN
  6686. '
  6687. PROCEDURE help(help$)
  6688.   TITLEW #1,ein_space$+waehle$+help$+ein_space$
  6689.   set_clip_offset
  6690. RETURN
  6691. '
  6692. PROCEDURE help_titel
  6693.   TITLEW #1,ein_space$+pfad_vek$+"\"+programm$+".VEK "
  6694.   set_clip_offset
  6695.   DEFMOUSE 3
  6696.   DEFLINE 1
  6697.   COLOR 1
  6698.   GRAPHMODE 1
  6699.   p_xy_info("X:","Y:",0)
  6700.   SHOWM
  6701.   trigger_0
  6702.   zeit%=TIMER
  6703. RETURN
  6704. '
  6705. PROCEDURE polygon_fill
  6706.   REPEAT
  6707.     DEFMOUSE 0
  6708.     GET xt20&-4,yt20&-4,xt20&+bt20&+4,yt20&+ht20&+4,rette$
  6709.     SETMOUSE xt20&+bt20&/2,yt20&+160,0
  6710.     ~OBJC_DRAW(tree20_adr%,0,8,xt20&,yt20&,bt20&,ht20&)
  6711.     ~FORM_DO(tree20_adr%,0)
  6712.     exit_button&=DPEEK(GINTOUT)
  6713.     OB_STATE(tree20_adr%,exit_button&)=0
  6714.     PUT xt20&-4,yt20&-4,rette$
  6715.     IF OB_STATE(tree20_adr%,fill1&)=1
  6716.       DEFFILL 1,2,1
  6717.     ELSE IF OB_STATE(tree20_adr%,fill2&)=1
  6718.       DEFFILL 1,2,2
  6719.     ELSE IF OB_STATE(tree20_adr%,fill3&)=1
  6720.       DEFFILL 1,2,3
  6721.     ELSE IF OB_STATE(tree20_adr%,fill4&)=1
  6722.       DEFFILL 1,2,4
  6723.     ELSE IF OB_STATE(tree20_adr%,fill5&)=1
  6724.       DEFFILL 1,2,5
  6725.     ELSE IF OB_STATE(tree20_adr%,fill6&)=1
  6726.       DEFFILL 1,2,6
  6727.     ELSE IF OB_STATE(tree20_adr%,fill7&)=1
  6728.       DEFFILL 1,2,8
  6729.     ENDIF
  6730.     DEFMOUSE mdaten$
  6731.     help(help_polygon$)
  6732.     IF exit_button&<>fillcancel&
  6733.       REPEAT
  6734.         trigger_0
  6735.         wait_taste
  6736.         IF taste|<>2
  6737.           FILL x_mouse%,y_mouse%
  6738.         ENDIF
  6739.       UNTIL taste|=2
  6740.     ENDIF
  6741.   UNTIL exit_button&=fillcancel&
  6742.   ~FRE(0)
  6743.   DEFFILL 1,1
  6744.   help_titel
  6745. RETURN
  6746. '
  6747. ' *****************************************************************************
  6748. ' *                            TANGENTE NIVELLIEREN                           *
  6749. ' *                                                                           *
  6750. ' *  VERÄNDERT VAR: Punkte_X%(), Punkte_Y%()                                  *
  6751. ' *                                                                           *
  6752. ' *****************************************************************************
  6753. '
  6754. PROCEDURE do_niv_tangente(found_quelle%,von%,bis%,dreh_x%,dreh_y%)
  6755.   LOCAL phi,strecke
  6756.   dx=SUB(dreh_x%,punkte_x%(found%))
  6757.   dy=SUB(dreh_y%,punkte_y%(found%))
  6758.   strecke=SQR(dx*dx+dy*dy)
  6759.   get_phi(dreh_x%,dreh_y%,punkte_x%(found_quelle%),punkte_y%(found_quelle%),phi)
  6760.   redraw_von_bis(von%,bis%,0)
  6761.   punkte_x%(found%)=CINT(dreh_x%-strecke*COS(phi))
  6762.   punkte_y%(found%)=CINT(dreh_y%-strecke*SIN(phi))
  6763.   redraw_von_bis(von%,bis%,1)
  6764. RETURN
  6765. '
  6766. PROCEDURE tangente_nivellieren
  6767.   LOCAL found_quelle%,quelle_def|
  6768.   LOCAL von%,bis%,f%,dreh_x%,dreh_y%
  6769.   IF pointer%>1
  6770.     show_cursor_fang
  6771.     REPEAT
  6772.       trigger_0
  6773.       GRAPHMODE 1
  6774.       REPEAT
  6775.         wait_taste
  6776.         EXIT IF taste|=2
  6777.         find(x_mouse%*100/zoom,y_mouse%*100/zoom)
  6778.         quelle_def|=punkte_def|(found%)
  6779.       UNTIL (quelle_def|>da| AND quelle_def|<b3|)
  6780.       IF taste|<>2
  6781.         found_quelle%=found%
  6782.         IF quelle_def|=b1|
  6783.           IF punkte_def|(found_quelle%-1)=b3|
  6784.             found%=found_quelle%-2
  6785.             von%=found_quelle%-4
  6786.             bis%=von%+3
  6787.             dreh_x%=punkte_x%(found_quelle%-1)
  6788.             dreh_y%=punkte_y%(found_quelle%-1)
  6789.             do_niv_tangente(found_quelle%,von%,bis%,dreh_x%,dreh_y%)
  6790.           ELSE
  6791.             IF punkte_def|(found_quelle%-1)=da|
  6792.               found%=found_quelle%
  6793.               found_quelle%=found%-2
  6794.               von%=found%-1
  6795.               bis%=von%+3
  6796.               dreh_x%=punkte_x%(found%-1)
  6797.               dreh_y%=punkte_y%(found%-1)
  6798.               do_niv_tangente(found_quelle%,von%,bis%,dreh_x%,dreh_y%)
  6799.             ELSE
  6800.               IF punkte_def|(found_quelle%-1)=ma|
  6801.                 found%=found_quelle%
  6802.                 REPEAT
  6803.                   INC found%
  6804.                 UNTIL punkte_def|(found%)=ma|
  6805.                 DEC found%
  6806.                 IF punkte_def|(found%)=b3|
  6807.                   DEC found%
  6808.                   von%=found%-2
  6809.                   bis%=von%+3
  6810.                   dreh_x%=punkte_x%(found_quelle%-1)
  6811.                   dreh_y%=punkte_y%(found_quelle%-1)
  6812.                   do_niv_tangente(found_quelle%,von%,bis%,dreh_x%,dreh_y%)
  6813.                 ELSE
  6814.                   IF punkte_def|(found%)=da|
  6815.                     f%=found_quelle%
  6816.                     found_quelle%=found%-1
  6817.                     found%=f%
  6818.                     von%=found%-1
  6819.                     bis%=von%+3
  6820.                     dreh_x%=punkte_x%(found_quelle%+1)
  6821.                     dreh_y%=punkte_y%(found_quelle%+1)
  6822.                     do_niv_tangente(found_quelle%,von%,bis%,dreh_x%,dreh_y%)
  6823.                   ENDIF
  6824.                 ENDIF
  6825.               ENDIF
  6826.             ENDIF
  6827.           ENDIF
  6828.         ELSE
  6829.           IF quelle_def|=b2|
  6830.             IF punkte_def|(found_quelle%+2)=b1|
  6831.               found%=found_quelle%+2
  6832.               von%=found_quelle%+1
  6833.               bis%=von%+3
  6834.               dreh_x%=punkte_x%(found_quelle%+1)
  6835.               dreh_y%=punkte_y%(found_quelle%+1)
  6836.               do_niv_tangente(found_quelle%,von%,bis%,dreh_x%,dreh_y%)
  6837.             ELSE
  6838.               IF punkte_def|(found_quelle%+2)=da|
  6839.                 found%=found_quelle%
  6840.                 found_quelle%=found%+2
  6841.                 von%=found%-2
  6842.                 bis%=von%+3
  6843.                 dreh_x%=punkte_x%(found%+1)
  6844.                 dreh_y%=punkte_y%(found%+1)
  6845.                 do_niv_tangente(found_quelle%,von%,bis%,dreh_x%,dreh_y%)
  6846.               ELSE
  6847.                 IF punkte_def|(found_quelle%+2)=ma|
  6848.                   found%=found_quelle%
  6849.                   REPEAT
  6850.                     DEC found%
  6851.                   UNTIL punkte_def|(found%)=ma|
  6852.                   INC found%
  6853.                   IF punkte_def|(found%)=b1|
  6854.                     von%=found%-1
  6855.                     bis%=von%+3
  6856.                     dreh_x%=punkte_x%(found_quelle%+1)
  6857.                     dreh_y%=punkte_y%(found_quelle%+1)
  6858.                     do_niv_tangente(found_quelle%,von%,bis%,dreh_x%,dreh_y%)
  6859.                   ELSE
  6860.                     IF punkte_def|(found%)=da|
  6861.                       f%=found_quelle%
  6862.                       found_quelle%=found%
  6863.                       found%=f%
  6864.                       von%=found%-2
  6865.                       bis%=von%+3
  6866.                       dreh_x%=punkte_x%(found_quelle%-1)
  6867.                       dreh_y%=punkte_y%(found_quelle%-1)
  6868.                       do_niv_tangente(found_quelle%,von%,bis%,dreh_x%,dreh_y%)
  6869.                     ENDIF
  6870.                   ENDIF
  6871.                 ENDIF
  6872.               ENDIF
  6873.             ENDIF
  6874.           ENDIF
  6875.         ENDIF
  6876.       ENDIF
  6877.     UNTIL taste|=2
  6878.     DEFMOUSE 3
  6879.   ENDIF
  6880. RETURN
  6881. '
  6882. ' *****************************************************************************
  6883. ' *                               ASCII Editor                                *
  6884. ' *                                                                           *
  6885. ' *                                                                           *
  6886. ' *                                                                          ' ******************************************************************************
  6887. ' *                                                                            *
  6888. ' *                                   CUTOUT                                   *
  6889. ' *                                                                            *
  6890. ' *                                 27.02.1992                                 *
  6891. ' *                                                                            *
  6892. ' ******************************************************************************
  6893. '
  6894. '
  6895. $B+
  6896. $I-
  6897. INLINE scsi%,933
  6898. DIM buffer|(512*2)
  6899. DIM command|(12)
  6900. ' VAR:
  6901. ' apl_id&=APPL_INIT()
  6902. magic%=14031952
  6903. '
  6904. ' serien_nummer$="REGIST00"
  6905. ' serien_nummer_vergleich$="REGIST11"
  6906. serien_nummer$=MKD$(101)
  6907. serien_nummer_vergleich$=MKD$(101 XOR magic%)
  6908. '
  6909. fang_schnittpunkt|=4
  6910. buffer%=0
  6911. buffer_max%=0
  6912. poly_len%=0
  6913. bits%=0
  6914. punkt_eintrag&=0
  6915. x_start&=0
  6916. y_start&=0
  6917. edi_max&=0
  6918. m=0
  6919. m_neu=0
  6920. bit_count|=0
  6921. pixel!=FALSE
  6922. '
  6923. regist_nr%=0
  6924. revision$="1.59"
  6925. zeit%=TIMER
  6926. calamus_nr%=0
  6927. ortho|=45
  6928. ortho=RAD(ortho|)
  6929. ortho2=ortho/2
  6930. x_win&=0                                         ! Window X pos  aktuell
  6931. y_win&=0                                         ! Window Y pos  aktuell
  6932. x_window&=0                                      ! Window X pos  aktuell
  6933. y_window&=0                                      ! Window Y pos  aktuell
  6934. b_window&=0                                      ! Window Breite aktuell
  6935. h_window&=0                                      ! Window Höhe   aktuell
  6936. ~WIND_GET(0,4,scrx&,scry&,scrb&,scrh&)           ! maximaler Desktop
  6937. wmx%=scrb&-62
  6938. wmy%=scrh&-57+scry&
  6939. desk_breite&=scrb&
  6940. desk_hoehe&=scrh&+scry&
  6941. gross_bildschirm!=FALSE
  6942. IF desk_breite&>640 OR desk_hoehe&>400
  6943.   gross_bildschirm!=TRUE
  6944. ENDIF
  6945. ADD scrx&,42                                     ! Position Window X+Menuleiste
  6946. SUB scrb&,42                                     ! Breite   Window
  6947. scrb_old&=scrb&
  6948. scrh_old&=scrh&
  6949. res_x%=0                                         ! Auflösung x in mm
  6950. res_y%=0                                         ! Auflösung y in mm
  6951. res_x_old%=0
  6952. res_y_old%=0
  6953. x_layer%=0
  6954. y_layer%=0
  6955. x_layero%=0
  6956. y_layero%=0
  6957. x_offset&=0                                      ! Nullpunkt x im Fenster
  6958. y_offset&=0                                      ! Nullpunkt y im Fenster
  6959. x_offset_old&=0
  6960. y_offset_old&=0
  6961. x_mouse%=0
  6962. y_mouse%=0
  6963. x_mouse_old%=0
  6964. y_mouse_old%=0
  6965. x_mouse_0%=0
  6966. y_mouse_0%=0
  6967. objectbox_x0%=0
  6968. objectbox_y0%=0
  6969. objectbox_x1%=0
  6970. objectbox_y1%=0
  6971. grid%=10                                        ! raster mm
  6972. schraff_dist=201
  6973. schraff_inc=0
  6974. schraff_fix_abst=0
  6975. schraff_winkel=0
  6976. schraff_start%=0
  6977. schraff_y_min%=0
  6978. bit_count_max|=6
  6979. geraden_fehler|=1
  6980. lange_gerade%=4000
  6981. schmutz_filter%=20
  6982. knick_winkel_max=RAD(140)
  6983. bogen_max=PI/2/2
  6984. abweichung_gerade%=0.5*100
  6985. last_poly_s%=-1
  6986. last_poly_e%=-1
  6987. taste|=0
  6988. zoom=1
  6989. zoom_old=1
  6990. zoom_100=1
  6991. pointer%=0                                       ! Zeiger auf Punkteliste
  6992. found%=0                                         ! gefundener Punkt bei SNAP
  6993. found_t%=0                                       ! gefundener Kurvenparameter
  6994. schnittpunkt_genau%=16                           ! Zerlegung Bezier in Teile
  6995. anz_schnittpunkte%=0                             ! Anzahl Schnittpunkte
  6996. b_vari=100
  6997. i%=0                                             ! allgemeiner Schleifenzähler
  6998. ii%=0
  6999. iii%=0
  7000. d0%=0
  7001. dx%=0
  7002. dy%=0
  7003. dx=0
  7004. dy=0
  7005. schnitt_laenge=0
  7006. kostfak=1
  7007. gkosten=0
  7008. px0%=0
  7009. py0%=0
  7010. px1%=0
  7011. py1%=0
  7012. px2%=0
  7013. py2%=0
  7014. px3%=0
  7015. py3%=0
  7016. m_square_breite&=&H3000
  7017. m_square_hoehe&=&H3000
  7018. kerning_256|=m_square_breite& DIV 256
  7019. len_pair_daten&=0
  7020. z_hoehe_def%=16384                               ! Höhe des definierten Zsatzes
  7021. z_breite_def%=16384                              ! Breite     "
  7022. zeichen_hoehe%=3000                              ! gewünschte Höhe in 1/100 mm
  7023. versal_def%=0                                    ! Versal     Höhe in 1/100 mm
  7024. z_ascii_scale=zeichen_hoehe%/z_hoehe_def%        ! Scaling
  7025. z_ascii_scale_old=z_ascii_scale                  ! save Scaling
  7026. global_kerning%=1280                             ! globales Kerning
  7027. zeilen_abstand_prozent%=125                      ! relativer Zeilen Abstand
  7028. zeilen_abstand%=zeichen_hoehe%*zeilen_abstand_prozent%/100-zeichen_hoehe%
  7029. z_cursor_x_spalte%=0                             ! Start String
  7030. z_cursor_x%=0                                    ! ASCII Zeichen Cursor X
  7031. z_cursor_y%=0                                    ! ASCII Zeichen Cursor y
  7032. z_cursor_x_old%=0                                ! letztes Zeichen Cursor X
  7033. z_cursor_y_old%=0                                ! letztes Zeichen Cursor y
  7034. z_ascii_old%=0                                   ! letztes Zeichen ASCII+32
  7035. z_satz_pointer%=0                                ! Pointer auf Zeichensatz
  7036. state_rs232&=0                                   ! Centronics aktiv
  7037. state_hp&=0                                      ! HPGL aktiv
  7038. folie_x%=1188                                    ! Folien Grö₧e
  7039. folie_y%=840
  7040. plotter_x_min%=0
  7041. plotter_y_min%=0
  7042. gdu=0                                            ! 100*Plottereinheit
  7043. sel_start%=0
  7044. sel_end%=0
  7045. gtxv&=0
  7046. gtyv&=0
  7047. gtbv&=216
  7048. gthv&=297
  7049. gtdpiv&=300
  7050. gtfarbev&=3
  7051. gtkontrav&=3
  7052. exit_button&=0
  7053. cursor_x&=0
  7054. cursor_y&=0
  7055. ofn_ver|=0
  7056. overcut|=0
  7057. geschlossen%=0
  7058. '
  7059. phi_x_3d=0
  7060. phi_y_3d=0
  7061. a2_3d=0
  7062. '
  7063. daten_ptr%=0
  7064. work_space%=0
  7065. '
  7066. ' CONST:
  7067. '
  7068. IF FRE(0)>4000000
  7069.   p_max%=99999
  7070. ELSE
  7071.   p_max%=60000
  7072. ENDIF
  7073. ma|=0
  7074. da|=1
  7075. b1|=2
  7076. b2|=3
  7077. b3|=4
  7078. ein_drittel=1/3
  7079. fmin=2.225073858507E-307
  7080. fmin1=0.005
  7081. max1=0.995
  7082. pimal2=PI*2
  7083. pihalbe=PI/2
  7084. pidrittel=PI/3
  7085. fang_rad%=8*100                                  ! FANGRADIUS
  7086. p_at%=XBIOS(3)+76                                ! PRINT AT FÜR X,Y
  7087. p_at_zoom%=p_at%-12                              ! PRINT AT FÜR ZOOM
  7088. x_bytes%=(scrb&+42)/8                            ! BYTES IN X RICHTUNG DESKTOP
  7089. '
  7090. ' CONST: Menuleiste
  7091. '
  7092. tree00&=0
  7093. tree0_adr%=0
  7094. datei&=3
  7095. eintrag&=4
  7096. mfenster&=10
  7097. mtext&=5
  7098. mzedi&=6
  7099. spezial&=7
  7100. all_clear&=8
  7101. bbogen&=9
  7102. mschnitt&=11
  7103. '
  7104. tree01&=1
  7105. tree1_adr%=0
  7106. back_main&=3
  7107. fwd_main&=4
  7108. gerade&=5
  7109. kurve&=6
  7110. schliess&=7
  7111. verrunde&=8
  7112. loeschen&=9
  7113. lock&=10
  7114. snap&=11
  7115. bild&=12
  7116. zircel&=13
  7117. bezier4&=14
  7118. schere&=15
  7119. ' fenster&=15
  7120. '
  7121. tree02&=2
  7122. tree2_adr%=0
  7123. back_datei&=3
  7124. fwd_datei&=4
  7125. l_vek&=5
  7126. l_merge&=6
  7127. r_macro&=7
  7128. r_cvg&=8
  7129. l_img&=9
  7130. l_pic&=10
  7131. ordner&=11
  7132. s_vek&=12
  7133. s_plt&=13
  7134. a_plotter&=14
  7135. '
  7136. tree03&=3
  7137. tree3_adr%=0
  7138. back_fenster&=3
  7139. fwd_fenster&=4
  7140. fmove&=5
  7141. blitz&=6
  7142. fcopy&=7
  7143. fzoom&=8
  7144. fzoomp&=9
  7145. fdreh&=10
  7146. fspiegel&=11
  7147. fkursiv&=12
  7148. dreh3d&=13
  7149. drehxp&=14
  7150. drehxm&=15
  7151. drehym&=16
  7152. drehyp&=17
  7153. floesch&=18
  7154. fzoom1&=19
  7155. '
  7156. tree04&=4
  7157. tree4_adr%=0
  7158. back_spezial&=3
  7159. gtepson&=4
  7160. handy&=5
  7161. kontour&=6
  7162. filter&=7
  7163. trace&=8
  7164. smooth&=9
  7165. simag&=10
  7166. '
  7167. tree05&=5
  7168. tree5_adr%=0
  7169. back_text&=3
  7170. fwd_text&=4
  7171. z_edit&=5
  7172. z_editor&=6
  7173. z_string&=7
  7174. z_t_hoehe&=8
  7175. z_t_abstand&=9
  7176. z_g_kerning&=10
  7177. z_read_ascii&=11
  7178. l_font&=12
  7179. s_font&=14
  7180. c_font&=13
  7181. '
  7182. tree06&=6
  7183. tree6_adr%=0
  7184. t_hoehe&=1
  7185. '
  7186. tree07&=7
  7187. tree7_adr%=0
  7188. zabs&=1
  7189. '
  7190. tree08&=8                                         ! String Text
  7191. tree8_adr%=0
  7192. string_text&=1
  7193. breite&=3
  7194. string_breite&=4
  7195. versal&=5
  7196. string_versal&=6
  7197. pfad&=7
  7198. do_kerning&=8
  7199. string_kreis&=9
  7200. string_kreis_von&=10
  7201. string_kreis_bis&=11
  7202. fontname&=13
  7203. c_text&=14
  7204. icon_pair&=15
  7205. icon_trep&=16
  7206. '
  7207. tree09&=9                                         ! Zeichen Editor
  7208. tree9_adr%=0
  7209. back_editor&=3
  7210. m_matrix&=4
  7211. z_matrix&=5
  7212. move_matrix&=6
  7213. kerning_links&=7
  7214. kerning_rechts&=8
  7215. kerning_auto&=9
  7216. z_get&=10
  7217. z_muell&=11
  7218. z_up&=13
  7219. z_down&=14
  7220. z_char&=15
  7221. '
  7222. tree10&=10
  7223. tree10_adr%=0
  7224. b_kerning&=2
  7225. g_kerning&=3
  7226. '
  7227. tree11&=11                                       ! Optimier
  7228. tree11_adr%=0
  7229. del_ma&=4
  7230. del_ge&=6
  7231. del_el&=8
  7232. '
  7233. tree12&=12
  7234. tree12_adr%=0
  7235. bstep&=1
  7236. '
  7237. tree13&=13                                       ! Info
  7238. tree13_adr%=0
  7239. vernr&=7
  7240. version&=4
  7241. firma&=4
  7242. strasse&=7
  7243. stadt&=10
  7244. punkte&=15
  7245. rest&=17
  7246. '
  7247. tree14&=14                                       ! Auflösung
  7248. tree14_adr%=0
  7249. rx1&=8
  7250. ry1&=10
  7251. rx2&=12
  7252. ry2&=13
  7253. rx3&=16
  7254. ry3&=17
  7255. get_pf&=19
  7256. r1&=4
  7257. r2&=5
  7258. r3&=6
  7259. '
  7260. tree15&=15                                       ! Plotter INIT
  7261. tree15_adr%=0
  7262. p_init1&=3
  7263. p_init2&=4
  7264. gdu01&=9
  7265. gdu025&=10
  7266. gdu05&=11
  7267. gdu1&=12
  7268. overcut&=16
  7269. cent&=18
  7270. rs232&=20
  7271. hp&=23
  7272. gp&=24
  7273. mgl&=25
  7274. ma&=29
  7275. da&=30
  7276. '
  7277. tree16&=16                                       ! Pfade und Parameter
  7278. tree16_adr%=0
  7279. pv&=5
  7280. pp&=7
  7281. pfi&=9
  7282. pg&=11
  7283. pf&=13
  7284. df&=15
  7285. p1&=17
  7286. p2&=19
  7287. schnitt&=21
  7288. gdu&=23
  7289. foliex&=25
  7290. foliey&=27
  7291. warn&=29
  7292. cancel&=31
  7293. '
  7294. tree17&=17
  7295. tree17_adr%=0
  7296. outl&=1
  7297. outl_anz&=2
  7298. '
  7299. tree18&=18
  7300. tree18_adr%=0
  7301. schraffd&=1
  7302. schraffi&=2
  7303. schrafix&=3
  7304. schraffw&=4
  7305. schraffa&=7
  7306. schrafff&=8
  7307. '
  7308. tree19&=19
  7309. tree19_adr%=0
  7310. necka&=1
  7311. neckp&=2
  7312. '
  7313. tree20&=20                                      ! Füll
  7314. tree20_adr%=0
  7315. fill1&=3
  7316. fill2&=5
  7317. fill3&=7
  7318. fill4&=9
  7319. fill5&=11
  7320. fill6&=13
  7321. fill7&=15
  7322. fillcancel&=17
  7323. '
  7324. tree21&=21                                      ! Trace
  7325. tree21_adr%=0
  7326. t_step&=7
  7327. t_gerade&=8
  7328. t_schmutz&=9
  7329. bschwelle&=21
  7330. knickwinkel&=22
  7331. bogen_max&=23
  7332. abweichung_gerade&=24
  7333. nur_gerade&=13
  7334. trace_cancel&=14
  7335. gerade_bezier&=30
  7336. '
  7337. tree22&=22
  7338. tree22_adr%=0
  7339. scann_x&=1
  7340. scann_y&=2
  7341. '
  7342. tree23&=23
  7343. tree23_adr%=0
  7344. radius&=1
  7345. '
  7346. tree24&=24
  7347. tree24_adr%=0
  7348. grau&=6
  7349. stark&=7
  7350. selgrau0&=4
  7351. selgrau&=5
  7352. sellinie&=8
  7353. alle&=9
  7354. auswahl&=10
  7355. '
  7356. tree25&=25                               ! Bogen
  7357. tree25_adr%=0
  7358. backboge&=3
  7359. vkreis&=4
  7360. kreis3&=5
  7361. kreisbog&=6
  7362. bogen3&=7
  7363. bogen2&=8
  7364. ellipse&=9
  7365. elbogen&=10
  7366. eckrund&=11
  7367. '
  7368. tree26&=26                               ! Koordinaten
  7369. tree26_adr%=0
  7370. absolut&=2
  7371. relativ&=3
  7372. polar&=4
  7373. '
  7374. tree27&=27                               ! Calamus Versions Nr.
  7375. tree27_adr%=0
  7376. calamus_nr&=1
  7377. '
  7378. tree28&=28                               ! GT 6000
  7379. tree28_adr%=0
  7380. gtscan&=47
  7381. gtx&=38
  7382. gty&=44
  7383. gtb&=42
  7384. gth&=43
  7385. gtcancel&=46
  7386. gtpresca&=45
  7387. gtdpi&=35
  7388. gtdpimin&=33
  7389. gtdpiplu&=34
  7390. gtprewin&=1
  7391. gtstate&=5
  7392. gtkeiner&=9
  7393. gtraster&=10
  7394. gtweich&=11
  7395. gthart&=12
  7396. gtkeine&=15
  7397. gtrot&=18
  7398. gtgruen&=17
  7399. gtblau&=16
  7400. k0&=22
  7401. k1&=23
  7402. k2&=24
  7403. k3&=25
  7404. k4&=26
  7405. k5&=27
  7406. k6&=28
  7407. '
  7408. tree29&=29                               ! Kosten
  7409. tree29_adr%=0
  7410. kostfak&=1
  7411. sl&=2
  7412. gkosten&=4
  7413. '
  7414. tree30&=30                               ! Select Filter
  7415. tree30_adr%=0
  7416. abs_filter&=1
  7417. '
  7418. tree31&=31                               ! Select Fenster
  7419. tree31_adr%=0
  7420. ohnecopy&=1
  7421. mitcopy&=6
  7422. anz_rot&=3
  7423. phi_rot&=4
  7424. numohne&=5
  7425. ausricht_vector&=7
  7426. '
  7427. tree32&=32                               ! Select Spiegel
  7428. tree32_adr%=0
  7429. anbox&=2
  7430. anachse&=1
  7431. '
  7432. tree33&=33
  7433. tree33_adr%=0
  7434. teil&=1
  7435. '
  7436. tree34&=34                               ! Schnittpunkt
  7437. tree34_adr%=0
  7438. backschn&=3
  7439. fwdschn&=4
  7440. trimm&=5
  7441. knack&=6
  7442. lot&=7
  7443. teilen&=8
  7444. lang&=9
  7445. schnitt2&=10
  7446. schnittn&=11
  7447. delseg&=12
  7448. delel&=13
  7449. schmelz&=14
  7450. '
  7451. tree35&=35                              ! Select Copy
  7452. tree35_adr%=0
  7453. copysing&=1
  7454. copymul&=2
  7455. cx&=4
  7456. cy&=5
  7457. canz&=6
  7458. cdist&=7
  7459. '
  7460. tree36&=36                              ! Ausrichten
  7461. tree36_adr%=0
  7462. a_olinks&=1
  7463. a_oben&=2
  7464. a_orechts&=3
  7465. a_links&=4
  7466. a_mitte&=5
  7467. a_rechts&=6
  7468. a_ulinks&=7
  7469. a_unten&=8
  7470. a_urechts&=9
  7471. '
  7472. tree37&=37                              ! Scalieren
  7473. tree37_adr%=0
  7474. scale_interactiv&=1
  7475. scale_numerisch&=2
  7476. scale_breite&=4
  7477. scale_hoehe&=5
  7478. '
  7479. tree38&=38                              ! Ordner
  7480. tree38_adr%=0
  7481. ordnert&=1
  7482. ordnerok&=2
  7483. ordnerca&=3
  7484. '
  7485. tree39&=39                              ! Kerning
  7486. tree39_adr%=0
  7487. kerning_box&=1
  7488. kerning_minus&=3
  7489. kerning_plus&=4
  7490. kerning_last&=2
  7491. kerning_next&=5
  7492. kerning_exit&=6
  7493. kerning_minus2&=9
  7494. kerning_plus2&=10
  7495. kerning_last2&=8
  7496. kerning_next2&=11
  7497. kerning_clear&=7
  7498. kerning_info&=13
  7499. kerning_pair&=15
  7500. '
  7501. tree40&=40                              ! Plotter OUTPUT
  7502. tree40_adr%=0
  7503. pl100&=3
  7504. plschieber&=4
  7505. plschere&=7
  7506. plschereauf&=5
  7507. plscherezu&=6
  7508. plschere&=7
  7509. '
  7510. tree41&=41                              ! Select Neigen
  7511. tree41_adr%=0
  7512. neige_grad&=2
  7513. neige_vertical&=3
  7514. neige_horizontal&=4
  7515. neige_interaktiv&=5
  7516. '
  7517. ' FLAG:
  7518. '
  7519. undo!=FALSE
  7520. geschlossen!=FALSE
  7521. ok!=FALSE                                        ! allgemein
  7522. layer_geladen!=FALSE                             ! ist  Layer geladen
  7523. layer!=FALSE                                     ! soll Layer gezeigt werden
  7524. window_fulled!=TRUE                              ! ist  Fenster schon gro₧
  7525. voll_bild!=FALSE                                 ! ist  Fenster komplett auf Crt
  7526. eintragen!=FALSE                                 ! ist  eintragen aktiv
  7527. bogen!=FALSE
  7528. mtext!=FALSE
  7529. meditor!=FALSE
  7530. datei!=FALSE
  7531. fenster!=FALSE
  7532. schnittpunktm!=FALSE
  7533. loeschen!=FALSE                                  ! ist  loeschen aktiv
  7534. neues_polygon!=TRUE                              ! erster Punkt im Polygon
  7535. found!=FALSE                                     ! gefunden bei Fangradius
  7536. marker!=FALSE                                    ! sollen Marker gezeigt werden
  7537. marker_select!=FALSE                             ! soll   Marker selectiert
  7538. modified!=FALSE                                  ! wurde Vektorbild geändert
  7539. font_geladen!=FALSE                              ! ist ein Font geladen
  7540. outlined!=FALSE                                  ! wurde Bitmap schon outlined
  7541. auto_schraff!=TRUE
  7542. schraff_fix_abst!=FALSE
  7543. einpassen!=FALSE
  7544. tangente!=FALSE
  7545. tangenten_lock!=TRUE
  7546. warn!=FALSE
  7547. gp_gl!=FALSE                                     ! HPGL oder GPGL
  7548. tasten_rep!=FALSE
  7549. absolut!=TRUE
  7550. relativ!=FALSE
  7551. polar!=FALSE
  7552. absolut_old!=FALSE
  7553. polar_old!=FALSE
  7554. fangklein!=FALSE                                 ! Fangradius gro₧
  7555. fadenkreuz!=FALSE
  7556. polygonmode!=TRUE                                ! Polygonmodus
  7557. ortho!=FALSE
  7558. grid!=FALSE
  7559. scrolled!=FALSE
  7560. move!=FALSE
  7561. drei_d!=FALSE
  7562. status_wechsel!=FALSE
  7563. grid_wechsel!=FALSE
  7564. swap!=FALSE
  7565. '
  7566. ' ARRAY:
  7567. '
  7568. DIM smfdb%(8),dmfdb%(8),p%(8)
  7569. DIM z_smfdb%(8),z_dmfdb%(8),z_p%(8),q_dmfdb%(8)
  7570. DIM punkte_x%(p_max%),punkte_y%(p_max%),punkte_def|(p_max%),buffer%(p_max%/2)
  7571. DIM x_meta%(127),y_meta%(127),punkte_def1|(32)
  7572. ARRAYFILL punkte_def1|(),1
  7573. DIM bezier_x&(33),bezier_y&(33)
  7574. DIM m$(87)
  7575. DIM mk%(60,2)
  7576. DIM m_square%(5)
  7577. DIM z_editor%(32)
  7578. DIM z_ascii%(224),z_kerning&(224*16),z_daten&(224*280),z_pair&(224),z_pair|(224),z_pair_daten|(2000)
  7579. DIM sx1%(9),sy1%(9),sx2%(9),sy2%(9),sp1(9),sp2(9)
  7580. DIM zeilen_buffer$(60)
  7581. rette$=SPACE$(32000)
  7582. pfad$=SPACE$(80)
  7583. kerning_string$=SPACE$(60)
  7584. pfad_pic$=SPACE$(80)
  7585. pfad_img$=SPACE$(80)
  7586. pfad_vek$=SPACE$(80)
  7587. pfad_vek_root$=SPACE$(80)
  7588. pfad_cvg$=SPACE$(80)
  7589. pfad_fnt$=SPACE$(80)
  7590. pfad_cfn$=SPACE$(80)
  7591. default_font$=SPACE$(10)
  7592. programm$=SPACE$(10)
  7593. programm_font$=SPACE$(10)
  7594. test_datei$=SPACE$(10)
  7595. object$=SPACE$(80)
  7596. p_init1$=SPACE$(40)
  7597. p_init2$=SPACE$(40)
  7598. abc$="CutOut Test"
  7599. ma$="M"
  7600. da$="D"
  7601. cutout_font$="CUTOUTOFN"
  7602. calamus_font_grafik$=MKI$(159)+MKI$(15)+MKI$(1)+SPACE$(320)
  7603. ok$="OK"
  7604. ein_space$=" "
  7605. x_y$="X|Y"
  7606. erster$="1. "
  7607. zweiter$="2. "
  7608. help_on$="ON "
  7609. help_off$="OFF"
  7610. vek$="VEK"
  7611. cvg$="CVG"
  7612. img$="IMG"
  7613. plt$="PLT"
  7614. calamus$="CALAMUS"
  7615. cutout$="CutOut"
  7616. ' ****************************************************************************
  7617. OPEN "I",#1,"SYS\LANGUAGE.DRV"
  7618. LINE INPUT #1,pd_menu$
  7619. LINE INPUT #1,pd_datei$
  7620. LINE INPUT #1,pd_editieren$
  7621. LINE INPUT #1,pd_fenster$
  7622. LINE INPUT #1,pd_schnittpunkt$
  7623. LINE INPUT #1,pd_bogen$
  7624. LINE INPUT #1,pd_text$
  7625. LINE INPUT #1,pd_zeicheneditor$
  7626. LINE INPUT #1,pd_extra$
  7627. LINE INPUT #1,pd_quit$
  7628. '
  7629. LINE INPUT #1,pd_optionen$
  7630. LINE INPUT #1,pd_marker_anzeigen$
  7631. LINE INPUT #1,pd_tangenten_anzeigen$
  7632. LINE INPUT #1,pd_fangradius_klein$
  7633. LINE INPUT #1,pd_polygon_modus$
  7634. LINE INPUT #1,pd_schnittpunkt_genau$
  7635. LINE INPUT #1,pd_koordinaten$
  7636. LINE INPUT #1,pd_element_selektieren$
  7637. LINE INPUT #1,pd_polygon_selektieren$
  7638. LINE INPUT #1,pd_warnmeldungen$
  7639. LINE INPUT #1,pd_skaliere_alles$
  7640. LINE INPUT #1,pd_punkte_nivellieren$
  7641. LINE INPUT #1,pd_tangente$
  7642. LINE INPUT #1,pd_plotflaeche$
  7643. LINE INPUT #1,pd_bezier_step_aendern$
  7644. LINE INPUT #1,pd_plotter_einstellung$
  7645. LINE INPUT #1,pd_kosten_faktor$
  7646. LINE INPUT #1,pd_pfad_sichern$
  7647. '
  7648. LINE INPUT #1,pd_figur$
  7649. LINE INPUT #1,pd_rechteck$
  7650. LINE INPUT #1,pd_n_eck$
  7651. LINE INPUT #1,pd_polygon_outline$
  7652. LINE INPUT #1,pd_aequidistante$
  7653. LINE INPUT #1,pd_frame$
  7654. LINE INPUT #1,pd_polygone_ausrichten$
  7655. LINE INPUT #1,pd_polygone_zentrieren$
  7656. LINE INPUT #1,pd_polygone_vereinen$
  7657. LINE INPUT #1,pd_polygone_fuellen$
  7658. LINE INPUT #1,pd_einzelne_punkte_loeschen$
  7659. '
  7660. LINE INPUT #1,pd_linie$
  7661. LINE INPUT #1,pd_bezier_vektor$
  7662. LINE INPUT #1,pd_bezier_einfuegen$
  7663. LINE INPUT #1,pd_tausche_bezier_vektor$
  7664. LINE INPUT #1,pd_knacken$
  7665. LINE INPUT #1,pd_trimmen$
  7666. LINE INPUT #1,pd_lot$
  7667. LINE INPUT #1,pd_verlaengern$
  7668. LINE INPUT #1,pd_teilen$
  7669. LINE INPUT #1,pd_messen$
  7670. LINE INPUT #1,pd_schnittp_2er$
  7671. LINE INPUT #1,pd_schnittp_n$
  7672. '
  7673. LINE INPUT #1,pd_effekt$
  7674. LINE INPUT #1,pd_parameter_schraffur$
  7675. LINE INPUT #1,pd_polygon_schraffieren$
  7676. LINE INPUT #1,pd_alles_schraffieren$
  7677. LINE INPUT #1,pd_schatten$
  7678. LINE INPUT #1,pd_einpassen$
  7679. LINE INPUT #1,pd_kugel$
  7680. '
  7681. LINE INPUT #1,lade$
  7682. LINE INPUT #1,sichere$
  7683. LINE INPUT #1,fuege_ein$
  7684. LINE INPUT #1,vektor$
  7685. LINE INPUT #1,macro$
  7686. LINE INPUT #1,daten$
  7687. LINE INPUT #1,zeichensatz$
  7688. LINE INPUT #1,kein$
  7689. LINE INPUT #1,keine$
  7690. LINE INPUT #1,ja_nein$
  7691. LINE INPUT #1,waehle$
  7692. LINE INPUT #1,fehler$
  7693. LINE INPUT #1,scannen$
  7694. LINE INPUT #1,pre_view$
  7695. LINE INPUT #1,ascii_importieren$
  7696. LINE INPUT #1,ascii_exportieren$
  7697. LINE INPUT #1,schriftblock$
  7698. LINE INPUT #1,radius_zu$
  7699. LINE INPUT #1,winkel_zu$
  7700. LINE INPUT #1,leider$
  7701. LINE INPUT #1,winkel_einstellen$
  7702. LINE INPUT #1,spiegelachse$
  7703. LINE INPUT #1,lupe_mal$
  7704. LINE INPUT #1,fensterbereich$
  7705. LINE INPUT #1,drehzentrum$
  7706. LINE INPUT #1,ordner_exist$
  7707. LINE INPUT #1,kein_leer$
  7708. LINE INPUT #1,suche_schnittpunkte$
  7709. LINE INPUT #1,gleiches_polygon$
  7710. LINE INPUT #1,bezugs$
  7711. LINE INPUT #1,zentriere$
  7712. LINE INPUT #1,huellkurve$
  7713. LINE INPUT #1,huellkurve1$
  7714. LINE INPUT #1,berechne$
  7715. LINE INPUT #1,rechte_taste$
  7716. LINE INPUT #1,endpunkt$
  7717. LINE INPUT #1,lot_an$
  7718. LINE INPUT #1,noname$
  7719. LINE INPUT #1,symbol$
  7720. LINE INPUT #1,orginal_fenster$
  7721. LINE INPUT #1,dmc_font$
  7722. LINE INPUT #1,bild_datei_zu$
  7723. LINE INPUT #1,stad_laden$
  7724. LINE INPUT #1,plotter_ist_off$
  7725. LINE INPUT #1,plot_datei$
  7726. LINE INPUT #1,kein_treiber$
  7727. LINE INPUT #1,schnittstelle_auf$
  7728. LINE INPUT #1,polygone_vereinen$
  7729. LINE INPUT #1,loesche_einzelne$
  7730. LINE INPUT #1,quelle$
  7731. LINE INPUT #1,ziel$
  7732. LINE INPUT #1,nivelliere$
  7733. LINE INPUT #1,alle_daten_l$
  7734. LINE INPUT #1,ganzer_zeichensatz$
  7735. LINE INPUT #1,font_daten_loeschen$
  7736. LINE INPUT #1,zeichen_matrix$
  7737. LINE INPUT #1,datei_existiert$
  7738. LINE INPUT #1,datei_ueberschreiben$
  7739. LINE INPUT #1,glaetten_mit$
  7740. LINE INPUT #1,gerade_bezier$
  7741. LINE INPUT #1,glaetten$
  7742. LINE INPUT #1,bereich$
  7743. LINE INPUT #1,path$
  7744. LINE INPUT #1,help_mittelpunkt$
  7745. LINE INPUT #1,help_radius$
  7746. LINE INPUT #1,help_position$
  7747. LINE INPUT #1,help_startwinkel$
  7748. LINE INPUT #1,help_endwinkel$
  7749. LINE INPUT #1,help_polygon$
  7750. LINE INPUT #1,help_punkt$
  7751. LINE INPUT #1,help_linie$
  7752. LINE INPUT #1,help_element$
  7753. LINE INPUT #1,help_verrund$
  7754. LINE INPUT #1,help_loesche$
  7755. LINE INPUT #1,help_trenn$
  7756. LINE INPUT #1,help_move$
  7757. LINE INPUT #1,help_sel$
  7758. LINE INPUT #1,help_move_window$
  7759. LINE INPUT #1,help_rahmen$
  7760. LINE INPUT #1,help_edit$
  7761. LINE INPUT #1,help_bezier$
  7762. LINE INPUT #1,help_status$
  7763. LINE INPUT #1,help_ortho$
  7764. LINE INPUT #1,help_grid$
  7765. LINE INPUT #1,help_free$
  7766. LINE INPUT #1,help_snap$
  7767. LINE INPUT #1,help_editor$
  7768. LINE INPUT #1,help_pfad$
  7769. CLOSE #1
  7770. ' ****************************************************************************
  7771. integer%=VARPTR(punkte_x%(1))-VARPTR(punkte_x%(0))  ! Länge in Bytes Integer
  7772. '
  7773. z_editor%(0)=2048                                   ! Top      Line   Y
  7774. z_editor%(1)=3072                                   ! Ascent   Line   Y
  7775. z_editor%(2)=6144                                   ! Half     Line   Y
  7776. z_editor%(3)=11264                                  ! Base     Line   Y
  7777. z_editor%(4)=13952                                  ! Descent  Line   Y
  7778. z_editor%(5)=14336                                  ! Bottom   Line   Y
  7779. '
  7780. z_editor%(6)=0                                      ! Matrix   links  X
  7781. z_editor%(7)=16384                                  ! Matrix   rechts X
  7782. z_editor%(8)=1280                                   ! Kerning  links  X
  7783. z_editor%(9)=1280                                   ! Kerning  links  X
  7784. z_editor%(10)=1280                                  ! Kerning  links  X
  7785. z_editor%(11)=1280                                  ! Kerning  links  X
  7786. z_editor%(12)=1280                                  ! Kerning  links  X
  7787. z_editor%(13)=1280                                  ! Kerning  links  X
  7788. z_editor%(14)=1280                                  ! Kerning  links  X
  7789. z_editor%(15)=1280                                  ! Kerning  links  X
  7790. z_editor%(16)=15104                                 ! Kerning  rechts X
  7791. z_editor%(17)=15104                                 ! Kerning  rechts X
  7792. z_editor%(18)=15104                                 ! Kerning  rechts X
  7793. z_editor%(19)=15104                                 ! Kerning  rechts X
  7794. z_editor%(20)=15104                                 ! Kerning  rechts X
  7795. z_editor%(21)=15104                                 ! Kerning  rechts X
  7796. z_editor%(22)=15104                                 ! Kerning  rechts X
  7797. z_editor%(23)=15104                                 ! Kerning  rechts X
  7798. z_editor%(24)=z_editor%(0)                          ! Kerning         Y
  7799. z_editor%(25)=(z_editor%(5)-z_editor%(0))/8         ! Kerning         Y
  7800. z_editor%(26)=z_editor%(24)+z_editor%(25)           ! Kerning         Y
  7801. z_editor%(27)=z_editor%(26)+z_editor%(25)           ! Kerning         Y
  7802. z_editor%(28)=z_editor%(27)+z_editor%(25)           ! Kerning         Y
  7803. z_editor%(29)=z_editor%(28)+z_editor%(25)           ! Kerning         Y
  7804. z_editor%(30)=z_editor%(29)+z_editor%(25)           ! Kerning         Y
  7805. z_editor%(31)=z_editor%(30)+z_editor%(25)           ! Kerning         Y
  7806. z_editor%(32)=0                                     ! Matrix oben     Y
  7807. '
  7808. ' ******************************************************************************
  7809. ' *                                                                            *
  7810. ' *                             MENU INITIALISIERUNG                           *
  7811. ' *                                                                            *
  7812. ' ******************************************************************************
  7813. '
  7814. BMOVE V:serien_nummer$,V:serien_nummer,8
  7815. BMOVE V:serien_nummer_vergleich$,V:serien_nummer_vergleich,8
  7816. regist_nr%=serien_nummer_vergleich
  7817. IF serien_nummer<>(serien_nummer_vergleich XOR magic%)
  7818.   PRINT "SORRY HACKER"
  7819.   PAUSE 300
  7820.   SYSTEM
  7821. ENDIF
  7822. INLINE zasm_ptr%,4136
  7823. INLINE pack_img%,958
  7824. INLINE calc_bezier%,1050
  7825. INLINE p_num%,360
  7826. INLINE find_line%,356
  7827. INLINE kontour%,216
  7828. INLINE staddec%,184
  7829. INLINE imgdec%,228
  7830. INLINE findexcept%,52
  7831. INLINE findpointexcept%,70
  7832. mfang$=MKI$(7)+MKI$(7)+MKI$(1)+MKI$(0)+MKI$(1)
  7833. mfang$=mfang$+MKI$(&X1111111111111110)
  7834. mfang$=mfang$+MKI$(&X1111111111111110)
  7835. mfang$=mfang$+MKI$(&X1100001110000110)
  7836. mfang$=mfang$+MKI$(&X1100001110000110)
  7837. mfang$=mfang$+MKI$(&X1100001110000110)
  7838. mfang$=mfang$+MKI$(&X1100001110000110)
  7839. mfang$=mfang$+MKI$(&X1111110001111110)
  7840. mfang$=mfang$+MKI$(&X1111110001111110)
  7841. mfang$=mfang$+MKI$(&X1111110001111110)
  7842. mfang$=mfang$+MKI$(&X1100001110000110)
  7843. mfang$=mfang$+MKI$(&X1100001110000110)
  7844. mfang$=mfang$+MKI$(&X1100001110000110)
  7845. mfang$=mfang$+MKI$(&X1100001110000110)
  7846. mfang$=mfang$+MKI$(&X1111111111111110)
  7847. mfang$=mfang$+MKI$(&X1111111111111110)
  7848. mfang$=mfang$+MKI$(&X0)
  7849. '
  7850. mfang$=mfang$+MKI$(&X1111111111111110)
  7851. mfang$=mfang$+MKI$(&X1000000100000010)
  7852. mfang$=mfang$+MKI$(&X1000000100000010)
  7853. mfang$=mfang$+MKI$(&X1000000100000010)
  7854. mfang$=mfang$+MKI$(&X1000000100000010)
  7855. mfang$=mfang$+MKI$(&X1000000100000010)
  7856. mfang$=mfang$+MKI$(&X1000000000000010)
  7857. mfang$=mfang$+MKI$(&X1111110001111110)
  7858. mfang$=mfang$+MKI$(&X1000000000000010)
  7859. mfang$=mfang$+MKI$(&X1000000100000010)
  7860. mfang$=mfang$+MKI$(&X1000000100000010)
  7861. mfang$=mfang$+MKI$(&X1000000100000010)
  7862. mfang$=mfang$+MKI$(&X1000000100000010)
  7863. mfang$=mfang$+MKI$(&X1000000100000010)
  7864. mfang$=mfang$+MKI$(&X1111111111111110)
  7865. mfang$=mfang$+MKI$(&X0)
  7866. '
  7867. mfang_klein$=MKI$(7)+MKI$(7)+MKI$(1)+MKI$(0)+MKI$(1)
  7868. mfang_klein$=mfang_klein$+MKI$(&X0)
  7869. mfang_klein$=mfang_klein$+MKI$(&X0)
  7870. mfang_klein$=mfang_klein$+MKI$(&X11111111111000)
  7871. mfang_klein$=mfang_klein$+MKI$(&X11111111111000)
  7872. mfang_klein$=mfang_klein$+MKI$(&X11001110011000)
  7873. mfang_klein$=mfang_klein$+MKI$(&X11001110011000)
  7874. mfang_klein$=mfang_klein$+MKI$(&X11110001111000)
  7875. mfang_klein$=mfang_klein$+MKI$(&X11110001111000)
  7876. mfang_klein$=mfang_klein$+MKI$(&X11110001111000)
  7877. mfang_klein$=mfang_klein$+MKI$(&X11001110011000)
  7878. mfang_klein$=mfang_klein$+MKI$(&X11001110011000)
  7879. mfang_klein$=mfang_klein$+MKI$(&X11111111111000)
  7880. mfang_klein$=mfang_klein$+MKI$(&X11111111111000)
  7881. mfang_klein$=mfang_klein$+MKI$(&X0)
  7882. mfang_klein$=mfang_klein$+MKI$(&X0)
  7883. mfang_klein$=mfang_klein$+MKI$(&X0)
  7884. '
  7885. mfang_klein$=mfang_klein$+MKI$(&X0)
  7886. mfang_klein$=mfang_klein$+MKI$(&X0)
  7887. mfang_klein$=mfang_klein$+MKI$(&X0)
  7888. mfang_klein$=mfang_klein$+MKI$(&X1111111110000)
  7889. mfang_klein$=mfang_klein$+MKI$(&X1000100010000)
  7890. mfang_klein$=mfang_klein$+MKI$(&X1000100010000)
  7891. mfang_klein$=mfang_klein$+MKI$(&X1000000010000)
  7892. mfang_klein$=mfang_klein$+MKI$(&X1110001110000)
  7893. mfang_klein$=mfang_klein$+MKI$(&X1000000010000)
  7894. mfang_klein$=mfang_klein$+MKI$(&X1000100010000)
  7895. mfang_klein$=mfang_klein$+MKI$(&X1000100010000)
  7896. mfang_klein$=mfang_klein$+MKI$(&X1111111110000)
  7897. mfang_klein$=mfang_klein$+MKI$(&X0)
  7898. mfang_klein$=mfang_klein$+MKI$(&X0)
  7899. mfang_klein$=mfang_klein$+MKI$(&X0)
  7900. mfang_klein$=mfang_klein$+MKI$(&X0)
  7901. '
  7902. mdaten$=MKI$(7)+MKI$(7)+MKI$(1)+MKI$(0)+MKI$(1)
  7903. mdaten$=mdaten$+MKI$(&X1110000000)
  7904. mdaten$=mdaten$+MKI$(&X1110000000)
  7905. mdaten$=mdaten$+MKI$(&X1110000000)
  7906. mdaten$=mdaten$+MKI$(&X1110000000)
  7907. mdaten$=mdaten$+MKI$(&X1110000000)
  7908. mdaten$=mdaten$+MKI$(&X1110000000)
  7909. mdaten$=mdaten$+MKI$(&X1111110001111110)
  7910. mdaten$=mdaten$+MKI$(&X1111110001111110)
  7911. mdaten$=mdaten$+MKI$(&X1111110001111110)
  7912. mdaten$=mdaten$+MKI$(&X1110000000)
  7913. mdaten$=mdaten$+MKI$(&X1110000000)
  7914. mdaten$=mdaten$+MKI$(&X1110000000)
  7915. mdaten$=mdaten$+MKI$(&X1110000000)
  7916. mdaten$=mdaten$+MKI$(&X1110000000)
  7917. mdaten$=mdaten$+MKI$(&X1110000000)
  7918. mdaten$=mdaten$+MKI$(&X0)
  7919. '
  7920. mdaten$=mdaten$+MKI$(&X100000000)
  7921. mdaten$=mdaten$+MKI$(&X100000000)
  7922. mdaten$=mdaten$+MKI$(&X100000000)
  7923. mdaten$=mdaten$+MKI$(&X100000000)
  7924. mdaten$=mdaten$+MKI$(&X100000000)
  7925. mdaten$=mdaten$+MKI$(&X100000000)
  7926. mdaten$=mdaten$+MKI$(&X0)
  7927. mdaten$=mdaten$+MKI$(&X1111110001111110)
  7928. mdaten$=mdaten$+MKI$(&X0)
  7929. mdaten$=mdaten$+MKI$(&X100000000)
  7930. mdaten$=mdaten$+MKI$(&X100000000)
  7931. mdaten$=mdaten$+MKI$(&X100000000)
  7932. mdaten$=mdaten$+MKI$(&X100000000)
  7933. mdaten$=mdaten$+MKI$(&X100000000)
  7934. mdaten$=mdaten$+MKI$(&X100000000)
  7935. mdaten$=mdaten$+MKI$(&X0)
  7936. '
  7937. schwer$=MKI$(7)+MKI$(7)+MKI$(-1)+MKI$(0)+MKI$(1)
  7938. schwer$=schwer$+MKI$(&X0)                     !
  7939. schwer$=schwer$+MKI$(&X0)
  7940. schwer$=schwer$+MKI$(&X11111000000)           !
  7941. schwer$=schwer$+MKI$(&X11111000000)
  7942. schwer$=schwer$+MKI$(&X1100111110000)         !
  7943. schwer$=schwer$+MKI$(&X1100111110000)
  7944. schwer$=schwer$+MKI$(&X10000111111000)        !
  7945. schwer$=schwer$+MKI$(&X10000111111000)
  7946. schwer$=schwer$+MKI$(&X10000111111000)        !
  7947. schwer$=schwer$+MKI$(&X10000111111000)
  7948. schwer$=schwer$+MKI$(&X100000111111100)       !
  7949. schwer$=schwer$+MKI$(&X100000111111100)
  7950. schwer$=schwer$+MKI$(&X100000111111100)       !
  7951. schwer$=schwer$+MKI$(&X100000111111100)
  7952. schwer$=schwer$+MKI$(&X111111011111100)       !!
  7953. schwer$=schwer$+MKI$(&X111111011111100)
  7954. schwer$=schwer$+MKI$(&X111111100000100)       !
  7955. schwer$=schwer$+MKI$(&X111111100000100)
  7956. schwer$=schwer$+MKI$(&X111111100000100)       !
  7957. schwer$=schwer$+MKI$(&X111111100000100)
  7958. schwer$=schwer$+MKI$(&X11111100001000)        !
  7959. schwer$=schwer$+MKI$(&X11111100001000)
  7960. schwer$=schwer$+MKI$(&X11111100001000)        !
  7961. schwer$=schwer$+MKI$(&X11111100001000)
  7962. schwer$=schwer$+MKI$(&X1111100110000)         !
  7963. schwer$=schwer$+MKI$(&X1111100110000)
  7964. schwer$=schwer$+MKI$(&X11111000000)           !
  7965. schwer$=schwer$+MKI$(&X11111000000)
  7966. schwer$=schwer$+MKI$(&X0)                     !
  7967. schwer$=schwer$+MKI$(&X0)
  7968. schwer$=schwer$+MKI$(&X0)                     !
  7969. schwer$=schwer$+MKI$(&X0)
  7970. pfad_read
  7971. reset
  7972. RESERVE -64*1024
  7973. DIM work%((FRE(0)-80*1024)/4)
  7974. daten_ptr%=V:work%(0)
  7975. work_space%=DIM?(work%())*4
  7976. KEYPAD 8
  7977. ~RSRC_LOAD("SYS\CUTOUT.RSC")
  7978. ~RSRC_GADDR(0,tree00&,tree0_adr%)
  7979. ~RSRC_GADDR(0,tree01&,tree1_adr%)
  7980. ~RSRC_GADDR(0,tree02&,tree2_adr%)
  7981. ~RSRC_GADDR(0,tree03&,tree3_adr%)
  7982. ~RSRC_GADDR(0,tree04&,tree4_adr%)
  7983. ~RSRC_GADDR(0,tree05&,tree5_adr%)
  7984. ~RSRC_GADDR(0,tree06&,tree6_adr%)
  7985. ~RSRC_GADDR(0,tree07&,tree7_adr%)
  7986. ~RSRC_GADDR(0,tree08&,tree8_adr%)
  7987. ~RSRC_GADDR(0,tree09&,tree9_adr%)
  7988. ~RSRC_GADDR(0,tree10&,tree10_adr%)
  7989. ~RSRC_GADDR(0,tree11&,tree11_adr%)
  7990. ~RSRC_GADDR(0,tree12&,tree12_adr%)
  7991. ~RSRC_GADDR(0,tree13&,tree13_adr%)
  7992. ~RSRC_GADDR(0,tree14&,tree14_adr%)
  7993. ~RSRC_GADDR(0,tree15&,tree15_adr%)
  7994. ~RSRC_GADDR(0,tree16&,tree16_adr%)
  7995. ~RSRC_GADDR(0,tree17&,tree17_adr%)
  7996. ~RSRC_GADDR(0,tree18&,tree18_adr%)
  7997. ~RSRC_GADDR(0,tree19&,tree19_adr%)
  7998. ~RSRC_GADDR(0,tree20&,tree20_adr%)
  7999. ~RSRC_GADDR(0,tree21&,tree21_adr%)
  8000. ~RSRC_GADDR(0,tree22&,tree22_adr%)
  8001. ~RSRC_GADDR(0,tree23&,tree23_adr%)
  8002. ~RSRC_GADDR(0,tree24&,tree24_adr%)
  8003. ~RSRC_GADDR(0,tree25&,tree25_adr%)
  8004. ~RSRC_GADDR(0,tree26&,tree26_adr%)
  8005. ~RSRC_GADDR(0,tree27&,tree27_adr%)
  8006. ~RSRC_GADDR(0,tree28&,tree28_adr%)
  8007. ~RSRC_GADDR(0,tree29&,tree29_adr%)
  8008. ~RSRC_GADDR(0,tree30&,tree30_adr%)
  8009. ~RSRC_GADDR(0,tree31&,tree31_adr%)
  8010. ~RSRC_GADDR(0,tree32&,tree32_adr%)
  8011. ~RSRC_GADDR(0,tree33&,tree33_adr%)
  8012. ~RSRC_GADDR(0,tree34&,tree34_adr%)
  8013. ~RSRC_GADDR(0,tree35&,tree35_adr%)
  8014. ~RSRC_GADDR(0,tree36&,tree36_adr%)
  8015. ~RSRC_GADDR(0,tree37&,tree37_adr%)
  8016. ~RSRC_GADDR(0,tree38&,tree38_adr%)
  8017. ~RSRC_GADDR(0,tree39&,tree39_adr%)
  8018. ~RSRC_GADDR(0,tree40&,tree40_adr%)
  8019. ~RSRC_GADDR(0,tree41&,tree41_adr%)
  8020. ~FORM_CENTER(tree6_adr%)
  8021. ~FORM_CENTER(tree7_adr%)
  8022. ~FORM_CENTER(tree8_adr%)
  8023. ~FORM_CENTER(tree10_adr%)
  8024. ~FORM_CENTER(tree11_adr%)
  8025. ~FORM_CENTER(tree12_adr%)
  8026. ~FORM_CENTER(tree13_adr%)
  8027. ~FORM_CENTER(tree14_adr%)
  8028. ~FORM_CENTER(tree15_adr%)
  8029. ~FORM_CENTER(tree16_adr%)
  8030. ~FORM_CENTER(tree17_adr%)
  8031. ~FORM_CENTER(tree18_adr%)
  8032. ~FORM_CENTER(tree19_adr%)
  8033. ~FORM_CENTER(tree20_adr%)
  8034. ~FORM_CENTER(tree21_adr%)
  8035. ~FORM_CENTER(tree22_adr%)
  8036. ~FORM_CENTER(tree23_adr%)
  8037. ~FORM_CENTER(tree24_adr%)
  8038. ~FORM_CENTER(tree26_adr%)
  8039. ~FORM_CENTER(tree27_adr%)
  8040. ~FORM_CENTER(tree28_adr%)
  8041. ~FORM_CENTER(tree29_adr%)
  8042. ~FORM_CENTER(tree30_adr%)
  8043. ~FORM_CENTER(tree31_adr%)
  8044. ~FORM_CENTER(tree32_adr%)
  8045. ~FORM_CENTER(tree33_adr%)
  8046. ~FORM_CENTER(tree35_adr%)
  8047. ~FORM_CENTER(tree36_adr%)
  8048. ~FORM_CENTER(tree37_adr%)
  8049. ~FORM_CENTER(tree38_adr%)
  8050. ~FORM_CENTER(tree39_adr%)
  8051. ~FORM_CENTER(tree40_adr%)
  8052. ~FORM_CENTER(tree41_adr%)
  8053. xt6&=DPEEK(tree6_adr%+16)
  8054. yt6&=DPEEK(tree6_adr%+18)
  8055. bt6&=DPEEK(tree6_adr%+20)
  8056. ht6&=DPEEK(tree6_adr%+22)
  8057. xt7&=DPEEK(tree7_adr%+16)
  8058. yt7&=DPEEK(tree7_adr%+18)
  8059. bt7&=DPEEK(tree7_adr%+20)
  8060. ht7&=DPEEK(tree7_adr%+22)
  8061. xt8&=DPEEK(tree8_adr%+16)
  8062. yt8&=DPEEK(tree8_adr%+18)
  8063. bt8&=DPEEK(tree8_adr%+20)
  8064. ht8&=DPEEK(tree8_adr%+22)
  8065. xt10&=DPEEK(tree10_adr%+16)
  8066. yt10&=DPEEK(tree10_adr%+18)
  8067. bt10&=DPEEK(tree10_adr%+20)
  8068. ht10&=DPEEK(tree10_adr%+22)
  8069. xt11&=DPEEK(tree11_adr%+16)
  8070. yt11&=DPEEK(tree11_adr%+18)
  8071. bt11&=DPEEK(tree11_adr%+20)
  8072. ht11&=DPEEK(tree11_adr%+22)
  8073. xt12&=DPEEK(tree12_adr%+16)
  8074. yt12&=DPEEK(tree12_adr%+18)
  8075. bt12&=DPEEK(tree12_adr%+20)
  8076. ht12&=DPEEK(tree12_adr%+22)
  8077. xt13&=DPEEK(tree13_adr%+16)
  8078. yt13&=DPEEK(tree13_adr%+18)
  8079. bt13&=DPEEK(tree13_adr%+20)
  8080. ht13&=DPEEK(tree13_adr%+22)
  8081. xt14&=DPEEK(tree14_adr%+16)
  8082. yt14&=DPEEK(tree14_adr%+18)
  8083. bt14&=DPEEK(tree14_adr%+20)
  8084. ht14&=DPEEK(tree14_adr%+22)
  8085. xt15&=DPEEK(tree15_adr%+16)
  8086. yt15&=DPEEK(tree15_adr%+18)
  8087. bt15&=DPEEK(tree15_adr%+20)
  8088. ht15&=DPEEK(tree15_adr%+22)
  8089. xt16&=DPEEK(tree16_adr%+16)
  8090. yt16&=DPEEK(tree16_adr%+18)
  8091. bt16&=DPEEK(tree16_adr%+20)
  8092. ht16&=DPEEK(tree16_adr%+22)
  8093. xt17&=DPEEK(tree17_adr%+16)
  8094. yt17&=DPEEK(tree17_adr%+18)
  8095. bt17&=DPEEK(tree17_adr%+20)
  8096. ht17&=DPEEK(tree17_adr%+22)
  8097. xt18&=DPEEK(tree18_adr%+16)
  8098. yt18&=DPEEK(tree18_adr%+18)
  8099. bt18&=DPEEK(tree18_adr%+20)
  8100. ht18&=DPEEK(tree18_adr%+22)
  8101. xt19&=DPEEK(tree19_adr%+16)
  8102. yt19&=DPEEK(tree19_adr%+18)
  8103. bt19&=DPEEK(tree19_adr%+20)
  8104. ht19&=DPEEK(tree19_adr%+22)
  8105. xt20&=DPEEK(tree20_adr%+16)
  8106. yt20&=DPEEK(tree20_adr%+18)
  8107. bt20&=DPEEK(tree20_adr%+20)
  8108. ht20&=DPEEK(tree20_adr%+22)
  8109. xt21&=DPEEK(tree21_adr%+16)
  8110. yt21&=DPEEK(tree21_adr%+18)
  8111. bt21&=DPEEK(tree21_adr%+20)
  8112. ht21&=DPEEK(tree21_adr%+22)
  8113. xt22&=DPEEK(tree22_adr%+16)
  8114. yt22&=DPEEK(tree22_adr%+18)
  8115. bt22&=DPEEK(tree22_adr%+20)
  8116. ht22&=DPEEK(tree22_adr%+22)
  8117. xt23&=DPEEK(tree23_adr%+16)
  8118. yt23&=DPEEK(tree23_adr%+18)
  8119. bt23&=DPEEK(tree23_adr%+20)
  8120. ht23&=DPEEK(tree23_adr%+22)
  8121. DPOKE tree24_adr%+16,DPEEK(tree24_adr%+16)+200
  8122. xt24&=DPEEK(tree24_adr%+16)
  8123. yt24&=DPEEK(tree24_adr%+18)
  8124. bt24&=DPEEK(tree24_adr%+20)
  8125. ht24&=DPEEK(tree24_adr%+22)
  8126. xt26&=DPEEK(tree26_adr%+16)
  8127. yt26&=DPEEK(tree26_adr%+18)
  8128. bt26&=DPEEK(tree26_adr%+20)
  8129. ht26&=DPEEK(tree26_adr%+22)
  8130. xt27&=DPEEK(tree27_adr%+16)
  8131. yt27&=DPEEK(tree27_adr%+18)
  8132. bt27&=DPEEK(tree27_adr%+20)
  8133. ht27&=DPEEK(tree27_adr%+22)
  8134. xt28&=DPEEK(tree28_adr%+16)
  8135. yt28&=DPEEK(tree28_adr%+18)
  8136. bt28&=DPEEK(tree28_adr%+20)
  8137. ht28&=DPEEK(tree28_adr%+22)
  8138. xt29&=DPEEK(tree29_adr%+16)
  8139. yt29&=DPEEK(tree29_adr%+18)
  8140. bt29&=DPEEK(tree29_adr%+20)
  8141. ht29&=DPEEK(tree29_adr%+22)
  8142. xt30&=DPEEK(tree30_adr%+16)
  8143. yt30&=DPEEK(tree30_adr%+18)
  8144. bt30&=DPEEK(tree30_adr%+20)
  8145. ht30&=DPEEK(tree30_adr%+22)
  8146. xt31&=DPEEK(tree31_adr%+16)
  8147. yt31&=DPEEK(tree31_adr%+18)
  8148. bt31&=DPEEK(tree31_adr%+20)
  8149. ht31&=DPEEK(tree31_adr%+22)
  8150. xt32&=DPEEK(tree32_adr%+16)
  8151. yt32&=DPEEK(tree32_adr%+18)
  8152. bt32&=DPEEK(tree32_adr%+20)
  8153. ht32&=DPEEK(tree32_adr%+22)
  8154. xt35&=DPEEK(tree35_adr%+16)
  8155. yt35&=DPEEK(tree35_adr%+18)
  8156. bt35&=DPEEK(tree35_adr%+20)
  8157. ht35&=DPEEK(tree35_adr%+22)
  8158. xt33&=DPEEK(tree33_adr%+16)
  8159. yt33&=DPEEK(tree33_adr%+18)
  8160. bt33&=DPEEK(tree33_adr%+20)
  8161. ht33&=DPEEK(tree33_adr%+22)
  8162. xt36&=DPEEK(tree36_adr%+16)
  8163. yt36&=DPEEK(tree36_adr%+18)
  8164. bt36&=DPEEK(tree36_adr%+20)
  8165. ht36&=DPEEK(tree36_adr%+22)
  8166. xt37&=DPEEK(tree37_adr%+16)
  8167. yt37&=DPEEK(tree37_adr%+18)
  8168. bt37&=DPEEK(tree37_adr%+20)
  8169. ht37&=DPEEK(tree37_adr%+22)
  8170. xt38&=DPEEK(tree38_adr%+16)
  8171. yt38&=DPEEK(tree38_adr%+18)
  8172. bt38&=DPEEK(tree38_adr%+20)
  8173. ht38&=DPEEK(tree38_adr%+22)
  8174. xt39&=DPEEK(tree39_adr%+16)
  8175. yt39&=DPEEK(tree39_adr%+18)
  8176. bt39&=DPEEK(tree39_adr%+20)
  8177. ht39&=DPEEK(tree39_adr%+22)
  8178. xt40&=DPEEK(tree40_adr%+16)
  8179. yt40&=DPEEK(tree40_adr%+18)
  8180. bt40&=DPEEK(tree40_adr%+20)
  8181. ht40&=DPEEK(tree40_adr%+22)
  8182. xt41&=DPEEK(tree41_adr%+16)
  8183. yt41&=DPEEK(tree41_adr%+18)
  8184. bt41&=DPEEK(tree41_adr%+20)
  8185. ht41&=DPEEK(tree41_adr%+22)
  8186. bt_output&=OB_W(tree40_adr%,pl100&)
  8187. CHAR{{OB_SPEC(tree6_adr%,t_hoehe&)}}=STR$(INT(zeichen_hoehe%/100))
  8188. CHAR{{OB_SPEC(tree7_adr%,zabs&)}}=STR$(INT(zeilen_abstand_prozent%))
  8189. CHAR{{OB_SPEC(tree9_adr%,z_char&)}}=CHR$(z_ascii_old%+32)
  8190. CHAR{{OB_SPEC(tree8_adr%,string_text&)}}=abc$
  8191. CHAR{{OB_SPEC(tree12_adr%,bstep&)}}=STR$(b_vari/100)
  8192. CHAR{{OB_SPEC(tree13_adr%,punkte&)}}=STR$(pointer%)
  8193. CHAR{{OB_SPEC(tree13_adr%,rest&)}}=STR$(p_max%-pointer%)
  8194. CHAR{{OB_SPEC(tree13_adr%,version&)}}=revision$
  8195. CHAR{{OB_SPEC(tree14_adr%,rx1&)}}=STR$(folie_x%)
  8196. CHAR{{OB_SPEC(tree14_adr%,ry1&)}}=STR$(folie_y%)
  8197. CHAR{{OB_SPEC(tree14_adr%,rx2&)}}=STR$(folie_x2%)
  8198. CHAR{{OB_SPEC(tree14_adr%,ry2&)}}=STR$(folie_y2%)
  8199. CHAR{{OB_SPEC(tree14_adr%,rx3&)}}=STR$(folie_x3%)
  8200. CHAR{{OB_SPEC(tree14_adr%,ry3&)}}=STR$(folie_y3%)
  8201. CHAR{{OB_SPEC(tree15_adr%,p_init1&)}}=p_init1$
  8202. CHAR{{OB_SPEC(tree15_adr%,p_init2&)}}=p_init2$
  8203. CHAR{{OB_SPEC(tree15_adr%,overcut&)}}=STR$(overcut|/10)
  8204. CHAR{{OB_SPEC(tree15_adr%,ma&)}}=ma$
  8205. CHAR{{OB_SPEC(tree15_adr%,da&)}}=da$
  8206. CHAR{{OB_SPEC(tree17_adr%,outl&)}}="3.0"
  8207. CHAR{{OB_SPEC(tree18_adr%,schraffd&)}}=STR$(schraff_dist/100)
  8208. CHAR{{OB_SPEC(tree18_adr%,schraffi&)}}=STR$(schraff_inc/100)
  8209. CHAR{{OB_SPEC(tree18_adr%,schraffw&)}}=STR$(schraff_winkel)
  8210. CHAR{{OB_SPEC(tree18_adr%,schrafix&)}}=STR$(schraff_fix_abst)
  8211. CHAR{{OB_SPEC(tree21_adr%,t_step&)}}=STR$(bit_count_max|)
  8212. CHAR{{OB_SPEC(tree21_adr%,t_gerade&)}}=STR$(geraden_fehler|)
  8213. CHAR{{OB_SPEC(tree21_adr%,t_schmutz&)}}=STR$(schmutz_filter%)
  8214. CHAR{{OB_SPEC(tree21_adr%,bschwelle&)}}=STR$(lange_gerade%/100)
  8215. CHAR{{OB_SPEC(tree21_adr%,knickwinkel&)}}=STR$(CINT(DEG(knick_winkel_max)))
  8216. CHAR{{OB_SPEC(tree21_adr%,bogen_max&)}}=STR$(CINT(DEG(bogen_max*2)))
  8217. CHAR{{OB_SPEC(tree21_adr%,abweichung_gerade&)}}=STR$(abweichung_gerade%/100)
  8218. CHAR{{OB_SPEC(tree22_adr%,scann_x&)}}="1664"
  8219. CHAR{{OB_SPEC(tree22_adr%,scann_y&)}}="800"
  8220. CHAR{{OB_SPEC(tree23_adr%,radius&)}}="10"
  8221. CHAR{{OB_SPEC(tree27_adr%,calamus_nr&)}}=STR$(calamus_nr%)
  8222. CHAR{{OB_SPEC(tree29_adr%,kostfak&)}}=STR$(kostfak)
  8223. CHAR{{OB_SPEC(tree31_adr%,anz_rot&)}}="3"
  8224. CHAR{{OB_SPEC(tree31_adr%,phi_rot&)}}="90"
  8225. OB_STATE(tree15_adr%,rs232&)=state_rs232&+16
  8226. OB_STATE(tree15_adr%,cent&)=state_rs232& XOR 1+16
  8227. OB_STATE(tree15_adr%,hp&)=state_hp&+16
  8228. OB_STATE(tree15_adr%,gp&)=state_hp& XOR 1+16
  8229. OB_STATE(tree26_adr%,absolut&)=absolut!+18
  8230. OB_STATE(tree26_adr%,relativ&)=absolut!+17
  8231. OB_STATE(tree26_adr%,polar&)=absolut!+17
  8232. IF gdu=1
  8233.   OB_STATE(tree15_adr%,gdu01&)=17
  8234. ELSE
  8235.   IF gdu=2.5
  8236.     OB_STATE(tree15_adr%,gdu025&)=17
  8237.   ELSE
  8238.     IF gdu=5
  8239.       OB_STATE(tree15_adr%,gdu05&)=17
  8240.     ELSE
  8241.       OB_STATE(tree15_adr%,gdu1&)=17
  8242.     ENDIF
  8243.   ENDIF
  8244. ENDIF
  8245. OB_STATE(tree1_adr%,lock&)=1
  8246. IF mimaki!
  8247.   OB_STATE(tree15_adr%,gdu05&)=17
  8248.   OB_STATE(tree15_adr%,gdu01&)=8
  8249.   OB_STATE(tree15_adr%,gdu025&)=8
  8250.   OB_STATE(tree15_adr%,gdu1&)=8
  8251.   OB_STATE(tree15_adr%,rs232&)=17
  8252.   OB_STATE(tree15_adr%,mgl&)=17
  8253.   OB_STATE(tree15_adr%,cent&)=16
  8254.   OB_STATE(tree15_adr%,hp&)=16
  8255.   OB_STATE(tree15_adr%,gp&)=16
  8256. ELSE
  8257.   OB_STATE(tree15_adr%,mgl&)=8
  8258. ENDIF
  8259. ~WIND_GET(0,4)                                   ! get desk size
  8260. BMOVE GINTOUT+2,tree0_adr%+16,8                  ! set into rsc
  8261. BMOVE GINTOUT+2,tree1_adr%+16,8                  ! set into rsc
  8262. BMOVE GINTOUT+2,tree2_adr%+16,8                  ! set into rsc
  8263. BMOVE GINTOUT+2,tree3_adr%+16,8                  ! set into rsc
  8264. BMOVE GINTOUT+2,tree4_adr%+16,8                  ! set into rsc
  8265. BMOVE GINTOUT+2,tree5_adr%+16,8                  ! set into rsc
  8266. BMOVE GINTOUT+2,tree9_adr%+16,8                  ! set into rsc
  8267. BMOVE GINTOUT+2,tree25_adr%+16,8                 ! set into rsc
  8268. BMOVE GINTOUT+2,tree34_adr%+16,8                 ! set into rsc
  8269. wind_newdesk(tree0_adr%,0)                       ! install  Datei Baum
  8270. IF default_font$<>""
  8271.   datei$=ein_space$
  8272.   IF EXIST(pfad_fnt$+"\"+default_font$)
  8273.     load_font(pfad_fnt$+"\"+default_font$)
  8274.     programm_font$=LEFT$(default_font$,LEN(default_font$)-4)
  8275.   ELSE
  8276.     make_new_font(-1)
  8277.   ENDIF
  8278. ELSE
  8279.   make_new_font(-1)
  8280. ENDIF
  8281. m$(0)=""
  8282. m$(1)="  CUTOUT"
  8283. m$(2)="--------------------"
  8284. m$(3)=CHR$(2)
  8285. m$(4)=CHR$(3)
  8286. m$(5)=CHR$(4)
  8287. m$(6)=CHR$(5)
  8288. m$(7)=CHR$(6)
  8289. m$(8)=CHR$(7)
  8290. m$(9)=CHR$(8)
  8291. m$(10)=""
  8292. m$(11)=pd_menu$
  8293. m$(12)=pd_datei$
  8294. m$(13)=pd_editieren$
  8295. m$(14)=pd_fenster$
  8296. m$(15)=pd_schnittpunkt$
  8297. m$(16)=pd_bogen$
  8298. m$(17)="----------------------"
  8299. m$(18)=pd_text$
  8300. m$(19)=pd_zeicheneditor$
  8301. m$(20)=m$(17)
  8302. m$(21)=pd_extra$
  8303. m$(22)=m$(17)
  8304. m$(23)=pd_quit$
  8305. m$(24)=""
  8306. m$(25)=pd_optionen$
  8307. m$(26)=pd_marker_anzeigen$
  8308. m$(27)=pd_tangenten_anzeigen$
  8309. m$(28)=pd_fangradius_klein$
  8310. m$(29)=pd_polygon_modus$
  8311. m$(30)=pd_schnittpunkt_genau$
  8312. m$(31)=pd_koordinaten$
  8313. m$(32)=pd_element_selektieren$
  8314. m$(33)=pd_polygon_selektieren$
  8315. m$(34)=pd_warnmeldungen$
  8316. m$(35)="---------------------------"
  8317. m$(36)=pd_skaliere_alles$
  8318. m$(37)=m$(35)
  8319. m$(38)=pd_punkte_nivellieren$
  8320. m$(39)=pd_tangente$
  8321. m$(40)=m$(35)
  8322. m$(41)=pd_plotflaeche$
  8323. m$(42)=pd_bezier_step_aendern$
  8324. m$(43)=pd_plotter_einstellung$
  8325. m$(44)=pd_kosten_faktor$
  8326. m$(45)=pd_pfad_sichern$
  8327. m$(46)=""
  8328. m$(47)=pd_figur$
  8329. m$(48)=pd_rechteck$
  8330. m$(49)=pd_n_eck$
  8331. m$(50)=pd_polygon_outline$
  8332. m$(51)=pd_aequidistante$
  8333. m$(52)=pd_frame$
  8334. m$(53)="---------------------------"
  8335. m$(54)=pd_polygone_ausrichten$
  8336. m$(55)=pd_polygone_zentrieren$
  8337. m$(56)=pd_polygone_vereinen$
  8338. m$(57)=pd_polygone_fuellen$
  8339. m$(58)=m$(53)
  8340. m$(59)=pd_einzelne_punkte_loeschen$
  8341. m$(60)=""
  8342. m$(61)=pd_linie$
  8343. m$(62)=pd_bezier_vektor$
  8344. m$(63)=pd_bezier_einfuegen$
  8345. m$(64)=pd_tausche_bezier_vektor$
  8346. m$(65)=m$(53)
  8347. m$(66)=pd_knacken$
  8348. m$(67)=pd_trimmen$
  8349. m$(68)=pd_lot$
  8350. m$(69)=pd_verlaengern$
  8351. m$(70)=pd_teilen$
  8352. m$(71)=pd_messen$
  8353. m$(72)=m$(53)
  8354. m$(73)=pd_schnittp_2er$
  8355. m$(74)=pd_schnittp_n$
  8356. m$(75)=""
  8357. m$(76)=pd_effekt$
  8358. m$(77)=pd_parameter_schraffur$
  8359. m$(78)=pd_polygon_schraffieren$
  8360. m$(79)=pd_alles_schraffieren$
  8361. m$(80)="------------------------"
  8362. m$(81)=pd_schatten$
  8363. m$(82)=pd_einpassen$
  8364. m$(83)=m$(80)
  8365. m$(84)=pd_kugel$
  8366. m$(85)=""
  8367. m$(86)=""
  8368. MENU m$()
  8369. IF fangklein!
  8370.   MENU 28,1
  8371. ENDIF
  8372. IF polygonmode!
  8373.   MENU 29,1
  8374. ENDIF
  8375. IF warn!
  8376.   MENU 34,1
  8377. ENDIF
  8378. CLIP 0,0,639,399 OFFSET 0,0
  8379. DEFTEXT 1,0,0,6
  8380. COLOR 1
  8381. TEXT 400,7,"Zoom X:"
  8382. TEXT 400,15,"Zoom Y:"
  8383. TEXT 540,7,"X:"
  8384. TEXT 540,15,"Y:"
  8385. DEFTEXT 1,0,0,4
  8386. TEXT 624,7,"mm"
  8387. TEXT 624,15,"mm"
  8388. LINE 536,0,536,20
  8389. LINE 396,0,396,20
  8390. '
  8391. ~FORM_DIAL(3,0,0,0,0,0,0,desk_breite&,desk_hoehe&)                !redraw all
  8392. '
  8393. layer!=FALSE
  8394. zoom=1
  8395. x_layer%=folie_x%
  8396. y_layer%=folie_y%
  8397. x_layero%=x_layer%
  8398. y_layero%=y_layer%
  8399. res_x%=x_layer%
  8400. res_y%=y_layer%
  8401. x_offset&=0
  8402. y_offset&=0
  8403. res_x_old%=x_layer%
  8404. res_y_old%=y_layer%
  8405. x_offset_old&=0
  8406. y_offset_old&=0
  8407. pointer%=0
  8408. get_desktop
  8409. scrb_old&=scrb&
  8410. scrh_old&=scrh&
  8411. CLOSEW 1
  8412. programm$=noname$
  8413. INT{WINDTAB+2}=&X111111000000
  8414. INT{WINDTAB+4}=scrx&
  8415. INT{WINDTAB+6}=scry&
  8416. INT{WINDTAB+8}=scrb&
  8417. INT{WINDTAB+10}=scrh&
  8418. help_titel
  8419. OPENW 1
  8420. calc_slid
  8421. ~WIND_GET(1,4,x_win&,y_win&,b_window&,h_window&)
  8422. neues_polygon!=TRUE
  8423. do_redraw
  8424. DEFMOUSE 3
  8425. p_zoom(zoom*100,zoom*100)
  8426. CHAR{{OB_SPEC(tree14_adr%,rx1&)}}=STR$(x_layer%)
  8427. CHAR{{OB_SPEC(tree14_adr%,ry1&)}}=STR$(y_layer%)
  8428. ' test_vollbild
  8429. '
  8430. ~OBJC_OFFSET(tree28_adr%,gtprewin&,gtxv&,gtyv&)
  8431. gtxv&=gtxv&-x_win&+1
  8432. gtyv&=gtyv&-y_win&+1
  8433. '
  8434. ON MENU MESSAGE GOSUB message
  8435. ON MENU BUTTON 1,1,1 GOSUB button
  8436. ON MENU GOSUB menu
  8437. ON MENU KEY GOSUB key
  8438. ' ON ERROR GOSUB fehler
  8439. '
  8440. '
  8441. REPEAT
  8442.   ON MENU
  8443. UNTIL end!
  8444. '
  8445. IF modified!
  8446.   IF pointer%>0
  8447.     ALERT 3,"| "+sichere$+daten$,1,ja_nein$,i%
  8448.     IF i%=1
  8449.       @save_vektor
  8450.     ENDIF
  8451.   ENDIF
  8452. ENDIF
  8453. '
  8454. ' Bei fertigen Programmen hier nur QUIT
  8455. '
  8456. reset
  8457. ~WIND_GET(0,10)
  8458. IF DPEEK(GINTOUT+2)
  8459.   ALERT 1,"Accessories",1,"Close|Quit",i%
  8460.   IF i%=2
  8461.     QUIT
  8462.   ENDIF
  8463.   REPEAT
  8464.     ~WIND_GET(0,10)
  8465.   UNTIL DPEEK(GINTOUT+2)=0
  8466. ENDIF
  8467. RESERVE                                ! XBIOS(2)-HIMEM+FRE(0)-16384
  8468. '
  8469. PROCEDURE fehler
  8470.   ALERT 1,fehler$,1,leider$,i%
  8471.   '  RESUME NEXT
  8472. RETURN
  8473. '
  8474. '
  8475. PROCEDURE get_undo
  8476.   LOCAL dp%
  8477.   dp%=daten_ptr%
  8478.   IF (pointer%*9+1<work_space%) AND (NOT layer_geladen!)
  8479.     LONG{dp%}=pointer%
  8480.     ADD dp%,4
  8481.     undo!=TRUE
  8482.     BMOVE VARPTR(punkte_x%(0)),dp%,pointer%*4
  8483.     ADD dp%,pointer%*4
  8484.     BMOVE VARPTR(punkte_y%(0)),dp%,pointer%*4
  8485.     ADD dp%,pointer%*4
  8486.     BMOVE VARPTR(punkte_def|(0)),dp%,pointer%
  8487.     undo!=TRUE
  8488.   ELSE
  8489.     undo!=FALSE
  8490.   ENDIF
  8491. RETURN
  8492. '
  8493. PROCEDURE put_undo
  8494.   LOCAL dp%
  8495.   IF undo!
  8496.     dp%=daten_ptr%
  8497.     pointer%=LONG{dp%}
  8498.     ADD dp%,4
  8499.     BMOVE dp%,VARPTR(punkte_x%(0)),pointer%*4
  8500.     ADD dp%,pointer%*4
  8501.     BMOVE dp%,VARPTR(punkte_y%(0)),pointer%*4
  8502.     ADD dp%,pointer%*4
  8503.     BMOVE dp%,VARPTR(punkte_def|(0)),pointer%
  8504.     undo!=FALSE
  8505.     do_redraw
  8506.   ENDIF
  8507. RETURN
  8508. '
  8509. PROCEDURE output_drucker
  8510.   LOCAL handle&,x_resi&,y_resi&,z_old
  8511.   IF GDOS?
  8512.     ERASE work%()
  8513.     IF FRE(0)>250000
  8514.       RESERVE -250000
  8515.       handle&=V_OPNWK(21)
  8516.       IF handle&<>0
  8517.         V~H=handle&
  8518.         x_resi&=INTOUT(0)
  8519.         y_resi&=INTOUT(1)
  8520.         ~V_CLRWK()
  8521.         z_old=zoom
  8522.         zoom=4
  8523.         redraw_ohne(0)
  8524.         ~V_UPDWK()
  8525.         ~V_CLSWK()
  8526.         zoom=z_old
  8527.       ELSE
  8528.       ENDIF
  8529.       RESERVE
  8530.     ELSE
  8531.     ENDIF
  8532.     DIM work%((FRE(0)-80*1024)/4)
  8533.     daten_ptr%=V:work%(0)
  8534.     work_space%=DIM?(work%())*4
  8535.   ELSE
  8536.   ENDIF
  8537. RETURN
  8538. '
  8539. '
  8540. PROCEDURE scan_a1
  8541.   ALERT 3,"| SCAN Hochformat: ",1,"A3|A2|A1",i%
  8542.   SELECT i%
  8543.   CASE 1
  8544.     scann_x%=INT(17*400/8)       !17
  8545.     scann_y%=INT(12*400)        !12
  8546.   CASE 2
  8547.     scann_x%=INT(25*400/8)
  8548.     scann_y%=INT(17*400)
  8549.   CASE 3
  8550.     scann_x%=INT(34*400/8)
  8551.     scann_y%=INT(25*400)
  8552.   ENDSELECT
  8553.   scan_graphtec(3,400,0,0,scann_x%,scann_y%)
  8554. RETURN
  8555. '
  8556. PROCEDURE scan_graphtec(device&,dpi&,x_0%,y_0%,bytes_x%,lines_y%)
  8557.   LOCAL command_bytes&,bytes_to_transfer%,transfer_dir&
  8558.   LOCAL y_offset%,block&,command_bytes&,bytes_to_transfer%
  8559.   ' IF FN test_unit_ready(device&)=0
  8560.   set_graphtec_window(device&,dpi&,x_0%,y_0%,bytes_x%,lines_y%)
  8561.   command_bytes&=10
  8562.   block&=&HFFFF DIV bytes_x% DIV 3
  8563.   bytes_to_transfer%=bytes_x%*block&*3
  8564.   transfer_dir&=0                               ! LESEN
  8565.   command|(0)=&H28
  8566.   command|(1)=0
  8567.   command|(2)=0
  8568.   command|(3)=0
  8569.   command|(4)=0
  8570.   command|(5)=0
  8571.   command|(6)=0
  8572.   command|(7)=0
  8573.   command|(8)=0
  8574.   command|(9)=0
  8575.   WORD{V:command|(7)}=block&
  8576.   '
  8577.   anzahl&=lines_y% DIV block&
  8578.   rest&=lines_y% MOD block&
  8579.   y_offset%=0
  8580.   FOR i%=1 TO anzahl&
  8581.     $c+
  8582.     fehler%=C:scsi%(device&,command_bytes&,bytes_to_transfer%,transfer_dir&,L:V:command|(0),L:daten_ptr%+y_offset%)
  8583.     $c-
  8584.     ADD y_offset%,block&*bytes_x%
  8585.   NEXT i%
  8586.   IF rest&<>0
  8587.     bytes_to_transfer%=bytes_x%*rest&*3
  8588.     WORD{V:command|(7)}=rest&
  8589.     $c+
  8590.     fehler%=C:scsi%(device&,command_bytes&,bytes_to_transfer%,transfer_dir&,L:V:command|(0),L:daten_ptr%+y_offset%)
  8591.     $c-
  8592.   ENDIF
  8593.   '  status&=AND(CARD(fehler%),&X11110)
  8594.   ' message&=CARD(SWAP(fehler%))
  8595.   layer!=TRUE
  8596.   layer_geladen!=TRUE
  8597.   voll_bild!=TRUE
  8598.   outlined!=FALSE
  8599.   do_change_aufloesung(bytes_x%*8,lines_y%,1)
  8600.   init_bit_blit
  8601.   p_zoom(zoom*100,zoom*100)
  8602.   do_redraw
  8603.   ' ENDIF
  8604. RETURN
  8605. '
  8606. PROCEDURE set_graphtec_window(device&,dpi&,x_0%,y_0%,bytes_x%,lines_y%)
  8607.   LOCAL command_bytes&,bytes_to_transfer%,transfer_dir&
  8608.   command_bytes&=10
  8609.   bytes_to_transfer%=53
  8610.   transfer_dir&=1                               ! LESEN (1=SCHREIBEN)
  8611.   command|(0)=&H24
  8612.   command|(1)=0
  8613.   command|(2)=0
  8614.   command|(3)=0
  8615.   command|(4)=0
  8616.   command|(5)=0
  8617.   command|(6)=0
  8618.   command|(7)=0
  8619.   command|(8)=bytes_to_transfer%
  8620.   command|(9)=0
  8621.   FOR i%=0 TO 6
  8622.     buffer|(i%)=0
  8623.   NEXT i%
  8624.   FOR i%=38 TO 47
  8625.     buffer|(i%)=0
  8626.   NEXT i%
  8627.   buffer|(7)=45                         ! Window Descriptor Block Length
  8628.   buffer|(8)=0                          ! Window ID
  8629.   buffer|(9)=0                          ! reserved
  8630.   WORD{V:buffer|(10)}=dpi&              ! X resolution
  8631.   WORD{V:buffer|(12)}=dpi&              ! Y resolution
  8632.   LONG{V:buffer|(14)}=x_0%*24           ! X Upper Left
  8633.   LONG{V:buffer|(18)}=y_0%*3            ! Y Upper Left
  8634.   LONG{V:buffer|(22)}=bytes_x%*24       ! Width
  8635.   LONG{V:buffer|(26)}=lines_y%*3        ! Length
  8636.   buffer|(30)=0                         ! reserved
  8637.   buffer|(31)=0                         ! Kontrast
  8638.   buffer|(32)=0                         ! reserved
  8639.   buffer|(33)=0                         ! Image composition
  8640.   buffer|(34)=1                         ! Bits per Pixel
  8641.   buffer|(35)=0                         ! reserved
  8642.   buffer|(36)=0                         ! reserved
  8643.   buffer|(37)=0                         ! Reverse Image
  8644.   buffer|(48)=2                         ! Cell length
  8645.   buffer|(49)=5                         ! Function Code
  8646.   buffer|(50)=1                         ! Fine Line
  8647.   buffer|(51)=2                         ! Cell length
  8648.   buffer|(52)=6                         ! Function Code
  8649.   buffer|(53)=1                         ! Scann Speed
  8650.   $c+
  8651.   fehler%=C:scsi%(device&,command_bytes&,bytes_to_transfer%,transfer_dir&,L:V:command|(0),L:V:buffer|(0))
  8652.   $c-
  8653. RETURN
  8654. '
  8655. FUNCTION test_unit_ready(device&)
  8656.   command_bytes&=6
  8657.   bytes_to_transfer%=1
  8658.   transfer_dir&=0                               ! LESEN (1=SCHREIBEN)
  8659.   command|(0)=0
  8660.   command|(1)=0
  8661.   command|(2)=0
  8662.   command|(3)=0
  8663.   command|(4)=bytes_to_transfer%
  8664.   command|(5)=0
  8665.   '
  8666.   $c+
  8667.   fehler%=C:scsi%(device&,command_bytes&,L:bytes_to_transfer%,transfer_dir&,L:V:command|(0),L:V:buffer|(0))
  8668.   $c-
  8669.   status&=AND(CARD(fehler%),&X11110)
  8670.   message&=CARD(SWAP(fehler%))
  8671.   '
  8672.   RETURN status&
  8673. ENDFUNC
  8674. '
  8675. '
  8676. PROCEDURE gt_info(i$)
  8677.   CHAR{{OB_SPEC(tree28_adr%,gtstate&)}}=i$
  8678.   ~OBJC_DRAW(tree28_adr%,gtstate&,8,xt28&,yt28&,bt28&,ht28&)
  8679. RETURN
  8680. '
  8681. PROCEDURE dpi_change(prex0&,prey0&,prex0_min&,prey0_min&)
  8682.   CHAR{{OB_SPEC(tree28_adr%,gtdpi&)}}=STR$(gtdpiv&)
  8683.   ~OBJC_DRAW(tree28_adr%,gtdpi&,8,xt28&,yt28&,bt28&,ht28&)
  8684.   CHAR{{OB_SPEC(tree28_adr%,gtb&)}}=STR$(AND(INT(gtbv&/25.4*gtdpiv&),&HFFF8))
  8685.   CHAR{{OB_SPEC(tree28_adr%,gth&)}}=STR$(AND(INT(gthv&/25.4*gtdpiv&),&HFFF8))
  8686.   ~OBJC_DRAW(tree28_adr%,gtb&,8,xt28&,yt28&,bt28&,ht28&)
  8687.   ~OBJC_DRAW(tree28_adr%,gth&,8,xt28&,yt28&,bt28&,ht28&)
  8688.   CHAR{{OB_SPEC(tree28_adr%,gtx&)}}=STR$(AND(INT((prex0&-prex0_min&)/25.4*gtdpiv&),&HFFF8))
  8689.   CHAR{{OB_SPEC(tree28_adr%,gty&)}}=STR$(AND(INT((prey0&-prey0_min&)/25.4*gtdpiv&),&HFFF8))
  8690.   ~OBJC_DRAW(tree28_adr%,gtx&,8,xt28&,yt28&,bt28&,ht28&)
  8691.   ~OBJC_DRAW(tree28_adr%,gty&,8,xt28&,yt28&,bt28&,ht28&)
  8692. RETURN
  8693. '
  8694. PROCEDURE gt_6000
  8695.   LOCAL prex0&,prey0&,prex0_min&,prey0_min&,x_changed&,y_changed&
  8696.   LOCAL prex&,prey&,gthalbton&
  8697.   DEFMOUSE 0
  8698.   SETMOUSE xt28&+240,yt28&+310,0
  8699.   CLIP 0,0,desk_breite&,desk_hoehe& OFFSET x_win&,y_win&
  8700.   ~OBJC_OFFSET(tree28_adr%,gtprewin&,prex&,prey&)
  8701.   gthalbton&=1
  8702.   prex0&=prex&-x_win&+1
  8703.   prey0&=prey&-y_win&+1
  8704.   prex0_min&=prex0&
  8705.   prey0_min&=prey0&
  8706.   prex0_max&=prex0&+217
  8707.   prey0_max&=prey0&+297
  8708.   prex0&=gtxv&
  8709.   prey0&=gtyv&
  8710.   '
  8711.   CHAR{{OB_SPEC(tree28_adr%,gtx&)}}=STR$(AND(INT((prex0&-prex0_min&)/25.4*gtdpiv&),&HFFF8))
  8712.   CHAR{{OB_SPEC(tree28_adr%,gty&)}}=STR$(AND(INT((prey0&-prey0_min&)/25.4*gtdpiv&),&HFFF8))
  8713.   CHAR{{OB_SPEC(tree28_adr%,gtb&)}}=STR$(AND(INT(gtbv&/25.4*gtdpiv&),&HFFF8))
  8714.   CHAR{{OB_SPEC(tree28_adr%,gth&)}}=STR$(AND(INT(gthv&/25.4*gtdpiv&),&HFFF8))
  8715.   CHAR{{OB_SPEC(tree28_adr%,gtdpi&)}}=STR$(gtdpiv&)
  8716.   CHAR{{OB_SPEC(tree28_adr%,gtstate&)}}=waehle$
  8717.   GET xt28&-4,yt28&-4,xt28&+bt28&+4,yt28&+ht28&+4,rette$
  8718.   ~OBJC_DRAW(tree28_adr%,0,8,xt28&,yt28&,bt28&,ht28&)
  8719.   smfdb%(0)=V:prebuf$
  8720.   smfdb%(1)=208
  8721.   smfdb%(2)=292
  8722.   smfdb%(3)=smfdb%(1)/16
  8723.   smfdb%(5)=1
  8724.   dmfdb%(0)=XBIOS(3)
  8725.   dmfdb%(1)=desk_breite&
  8726.   dmfdb%(2)=desk_hoehe&
  8727.   dmfdb%(3)=dmfdb%(1)/16
  8728.   dmfdb%(5)=1
  8729.   p%(0)=0
  8730.   p%(1)=0
  8731.   p%(2)=207
  8732.   p%(3)=291
  8733.   p%(4)=prex&+1
  8734.   p%(5)=prey&+1
  8735.   p%(6)=p%(4)+207
  8736.   p%(7)=p%(5)+291
  8737.   p%(8)=3
  8738.   BITBLT smfdb%(),dmfdb%(),p%()
  8739.   DEFFILL 1,1,1
  8740.   GRAPHMODE 3
  8741.   BOX prex0&,prey0&,prex0&+gtbv&,prey0&+gthv&
  8742.   PBOX prex0&+gtbv&-8,prey0&+gthv&-8,prex0&+gtbv&,prey0&+gthv&
  8743.   REPEAT
  8744.     DO
  8745.       ~FORM_DO(tree28_adr%,0)
  8746.       IF INT{GINTOUT}>0 AND INT{GINTOUT}<100
  8747.         exit_button&=DPEEK(GINTOUT)
  8748.         OB_STATE(tree28_adr%,exit_button&)=0
  8749.         IF exit_button&<>gtprewin&
  8750.           ~OBJC_DRAW(tree28_adr%,exit_button&,8,xt28&,yt28&,bt28&,ht28&)
  8751.         ENDIF
  8752.       ENDIF
  8753.       SELECT exit_button&
  8754.       CASE gtdpimin&
  8755.         IF gtdpiv&>100
  8756.           IF gtdpiv&=480
  8757.             gtdpiv&=400
  8758.           ELSE
  8759.             IF gtdpiv&=600
  8760.               gtdpiv&=480
  8761.             ELSE
  8762.               SUB gtdpiv&,100
  8763.             ENDIF
  8764.           ENDIF
  8765.           dpi_change(prex0&,prey0&,prex0_min&,prey0_min&)
  8766.         ENDIF
  8767.       CASE gtdpiplu&
  8768.         IF gtdpiv&<600
  8769.           IF gtdpiv&=400
  8770.             gtdpiv&=480
  8771.           ELSE
  8772.             IF gtdpiv&=480
  8773.               gtdpiv&=600
  8774.             ELSE
  8775.               ADD gtdpiv&,100
  8776.             ENDIF
  8777.           ENDIF
  8778.           dpi_change(prex0&,prey0&,prex0_min&,prey0_min&)
  8779.         ENDIF
  8780.       CASE gtprewin&
  8781.         MOUSE x_mouse%,y_mouse%,taste|
  8782.         IF x_mouse%>prex0&+gtbv&-8 AND x_mouse%<prex0&+gtbv& AND y_mouse%>prey0&+gthv&-8 AND y_mouse%<prey0&+gthv&
  8783.           DEFMOUSE 3
  8784.           REPEAT
  8785.             MOUSE x_mouse%,y_mouse%,taste|
  8786.             IF x_mouse%<>x_mouse_old% OR y_mouse%<>y_mouse_old%
  8787.               BOX prex0&,prey0&,prex0&+gtbv&,prey0&+gthv&
  8788.               PBOX prex0&+gtbv&-8,prey0&+gthv&-8,prex0&+gtbv&,prey0&+gthv&
  8789.               IF x_mouse%-prex0_min&<217 AND x_mouse%-prex0&>16
  8790.                 gtbv&=x_mouse%-prex0&
  8791.                 i%=AND(INT(gtbv&/25.4*gtdpiv&),&HFFF0)
  8792.                 gtbv&=CINT(i%*25.4/gtdpiv&)
  8793.               ENDIF
  8794.               IF y_mouse%-prey0_min&<298 AND y_mouse%-prey0&>16
  8795.                 gthv&=y_mouse%-prey0&
  8796.               ENDIF
  8797.               BOX prex0&,prey0&,prex0&+gtbv&,prey0&+gthv&
  8798.               PBOX prex0&+gtbv&-8,prey0&+gthv&-8,prex0&+gtbv&,prey0&+gthv&
  8799.               SHOWM
  8800.               x_mouse_old%=x_mouse%
  8801.               y_mouse_old%=y_mouse%
  8802.               CHAR{{OB_SPEC(tree28_adr%,gtb&)}}=STR$(AND(INT(gtbv&/25.4*gtdpiv&),&HFFF0))
  8803.               CHAR{{OB_SPEC(tree28_adr%,gth&)}}=STR$(INT(gthv&/25.4*gtdpiv&))
  8804.               ~OBJC_DRAW(tree28_adr%,gtb&,8,xt28&,yt28&,bt28&,ht28&)
  8805.               ~OBJC_DRAW(tree28_adr%,gth&,8,xt28&,yt28&,bt28&,ht28&)
  8806.             ENDIF
  8807.           UNTIL taste|=0
  8808.           DEFMOUSE 0
  8809.         ELSE
  8810.           IF x_mouse%>prex0& AND x_mouse%<prex0&+gtbv& AND y_mouse%>prey0& AND y_mouse%<prey0&+gthv&
  8811.             x_mouse_old%=x_mouse%
  8812.             y_mouse_old%=y_mouse%
  8813.             DEFMOUSE 3
  8814.             REPEAT
  8815.               MOUSE x_mouse%,y_mouse%,taste|
  8816.               IF x_mouse%<>x_mouse_old% OR y_mouse%<>y_mouse_old%
  8817.                 x_changed&=x_mouse%-x_mouse_old%
  8818.                 y_changed&=y_mouse%-y_mouse_old%
  8819.                 BOX prex0&,prey0&,prex0&+gtbv&,prey0&+gthv&
  8820.                 PBOX prex0&+gtbv&-8,prey0&+gthv&-8,prex0&+gtbv&,prey0&+gthv&
  8821.                 IF prex0&+x_changed&>=prex0_min& AND prex0&+x_changed&+gtbv&<prex0_max&
  8822.                   ADD prex0&,x_changed&
  8823.                 ENDIF
  8824.                 IF prey0&+y_changed&>=prey0_min& AND prey0&+y_changed&+gthv&<prey0_max&
  8825.                   ADD prey0&,y_changed&
  8826.                 ENDIF
  8827.                 BOX prex0&,prey0&,prex0&+gtbv&,prey0&+gthv&
  8828.                 PBOX prex0&+gtbv&-8,prey0&+gthv&-8,prex0&+gtbv&,prey0&+gthv&
  8829.                 SHOWM
  8830.                 x_mouse_old%=x_mouse%
  8831.                 y_mouse_old%=y_mouse%
  8832.                 CHAR{{OB_SPEC(tree28_adr%,gtx&)}}=STR$(AND(INT((prex0&-prex0_min&)/25.4*gtdpiv&),&HFFF8))
  8833.                 CHAR{{OB_SPEC(tree28_adr%,gty&)}}=STR$(AND(INT((prey0&-prey0_min&)/25.4*gtdpiv&),&HFFF8))
  8834.                 ~OBJC_DRAW(tree28_adr%,gtx&,8,xt28&,yt28&,bt28&,ht28&)
  8835.                 ~OBJC_DRAW(tree28_adr%,gty&,8,xt28&,yt28&,bt28&,ht28&)
  8836.               ENDIF
  8837.             UNTIL taste|=0
  8838.             DEFMOUSE 0
  8839.           ENDIF
  8840.         ENDIF
  8841.       CASE gtpresca&
  8842.         gt_info(scannen$+pre_view$)
  8843.         HIDEM
  8844.         gt6000%=VARPTR(gt6000$)
  8845.         $C+
  8846.         VOID C:gt6000%(1,50,3,3,gthalbton&,0,0,26,292,L:V:prebuf$,L:V:prebuf$+8000)
  8847.         $C-
  8848.         OUT (2),13
  8849.         trigger_0
  8850.         DEFMOUSE 3
  8851.         SHOWM
  8852.         BOX prex0&,prey0&,prex0&+gtbv&,prey0&+gthv&
  8853.         PBOX prex0&+gtbv&-8,prey0&+gthv&-8,prex0&+gtbv&,prey0&+gthv&
  8854.         smfdb%(0)=V:prebuf$
  8855.         BITBLT smfdb%(),dmfdb%(),p%()
  8856.         BOX prex0&,prey0&,prex0&+gtbv&,prey0&+gthv&
  8857.         PBOX prex0&+gtbv&-8,prey0&+gthv&-8,prex0&+gtbv&,prey0&+gthv&
  8858.         gt_info(waehle$)
  8859.       ENDSELECT
  8860.       EXIT IF exit_button&=gtcancel&
  8861.       EXIT IF exit_button&=gtscan&
  8862.     LOOP
  8863.     IF exit_button&=gtcancel&
  8864.       PUT xt28&-4,yt28&-4,rette$
  8865.       ok!=TRUE
  8866.     ENDIF
  8867.     IF exit_button&=gtscan&
  8868.       IF OB_STATE(tree28_adr%,gthart&)=1
  8869.         gthalbton&=0
  8870.       ELSE
  8871.         IF OB_STATE(tree28_adr%,gtweich&)=1
  8872.           gthalbton&=16
  8873.         ELSE
  8874.           IF OB_STATE(tree28_adr%,gtraster&)=1
  8875.             gthalbton&=32
  8876.           ELSE
  8877.             gthalbton&=1
  8878.           ENDIF
  8879.         ENDIF
  8880.       ENDIF
  8881.       IF OB_STATE(tree28_adr%,gtrot&)=1
  8882.         gtfarbev&=0
  8883.       ELSE
  8884.         IF OB_STATE(tree28_adr%,gtgruen&)=1
  8885.           gtfarbev&=1
  8886.         ELSE
  8887.           IF OB_STATE(tree28_adr%,gtblau&)=1
  8888.             gtfarbev&=2
  8889.           ELSE
  8890.             gtfarbev&=3
  8891.           ENDIF
  8892.         ENDIF
  8893.       ENDIF
  8894.       IF OB_STATE(tree28_adr%,k0&)=1
  8895.         gtkontrav&=0
  8896.       ELSE
  8897.         IF OB_STATE(tree28_adr%,k1&)=1
  8898.           gtkontrav&=1
  8899.         ELSE
  8900.           IF OB_STATE(tree28_adr%,k2&)=1
  8901.             gtkontrav&=2
  8902.           ELSE
  8903.             IF OB_STATE(tree28_adr%,k3&)=1
  8904.               gtkontrav&=3
  8905.             ELSE
  8906.               IF OB_STATE(tree28_adr%,k4&)=1
  8907.                 gtkontrav&=4
  8908.               ELSE
  8909.                 IF OB_STATE(tree28_adr%,k5&)=1
  8910.                   gtkontrav&=5
  8911.                 ELSE
  8912.                   gtkontrav&=6
  8913.                 ENDIF
  8914.               ENDIF
  8915.             ENDIF
  8916.           ENDIF
  8917.         ENDIF
  8918.       ENDIF
  8919.       gt_info(scannen$+bereich$)
  8920.       gtxorig&=CINT(AND(INT((prex0&+2-prex0_min&)/25.4*gtdpiv&),&HFFF8)/8)
  8921.       gtyorig&=CINT((prey0&+2-prey0_min&)/25.4*gtdpiv&)
  8922.       gtxbytes&=CINT(AND(INT(gtbv&/25.4*gtdpiv&),&HFFF0)/8)
  8923.       gtyzeilen&=CINT(gthv&/25.4*gtdpiv&)
  8924.       IF gtxbytes&*(gtyzeilen&+1)<work_space%
  8925.         HIDEM
  8926.         gt6000%=VARPTR(gt6000$)
  8927.         $C+
  8928.         i%=C:gt6000%(0,gtdpiv&,gtfarbev&,gtkontrav&,gthalbton&,gtxorig&,gtyorig&,gtxbytes&,gtyzeilen&,L:daten_ptr%,L:daten_ptr%+work_space%)
  8929.         $C-
  8930.         OUT (2),13
  8931.         trigger_0
  8932.         DEFMOUSE 3
  8933.         SHOWM
  8934.       ELSE
  8935.         i%=-1
  8936.       ENDIF
  8937.       IF i%>=0
  8938.         gt_info(waehle$)
  8939.         PUT xt28&-4,yt28&-4,rette$
  8940.         layer!=TRUE
  8941.         layer_geladen!=TRUE
  8942.         voll_bild!=TRUE
  8943.         outlined!=FALSE
  8944.         do_change_aufloesung(AND(INT(gtbv&/25.4*gtdpiv&),&HFFF0),INT(gthv&/25.4*gtdpiv&),1)
  8945.         init_bit_blit
  8946.         p_zoom(zoom*100,zoom*100)
  8947.         do_redraw
  8948.         ok!=TRUE
  8949.       ELSE
  8950.         FOR i%=1 TO 5
  8951.           gt_info(fehler$)
  8952.           PAUSE 15
  8953.           gt_info("      ")
  8954.           PAUSE 15
  8955.         NEXT i%
  8956.         gt_info(waehle$)
  8957.         ok!=FALSE
  8958.       ENDIF
  8959.     ENDIF
  8960.   UNTIL ok!
  8961.   gtxv&=prex0&
  8962.   gtyv&=prey0&
  8963.   ~WIND_GET(1,4)
  8964.   clip(x_window&,y_window&,b_window&,h_window&,INT{GINTOUT+2},INT{GINTOUT+4})
  8965.   set_clip_offset
  8966.   GRAPHMODE 1
  8967.   DEFFILL 0,0
  8968.   DEFMOUSE 3
  8969.   init_bit_blit
  8970. RETURN
  8971. '
  8972. PROCEDURE set_clip_offset
  8973.   INT{WINDTAB+64}=INT{WINDTAB+64}-x_offset&
  8974.   INT{WINDTAB+66}=INT{WINDTAB+66}-y_offset&
  8975. RETURN
  8976. '
  8977. PROCEDURE helpo(help$)
  8978.   TITLEW #1,ein_space$+help$+ein_space$
  8979.   set_clip_offset
  8980. RETURN
  8981. '
  8982. PROCEDURE help(help$)
  8983.   TITLEW #1,ein_space$+waehle$+help$+ein_space$
  8984.   set_clip_offset
  8985. RETURN
  8986. '
  8987. PROCEDURE help_titel
  8988.   TITLEW #1,ein_space$+pfad_vek$+"\"+programm$+".VEK "
  8989.   set_clip_offset
  8990.   DEFMOUSE 3
  8991.   DEFLINE 1
  8992.   COLOR 1
  8993.   GRAPHMODE 1
  8994.   p_xy_info("X:","Y:",0)
  8995.   SHOWM
  8996.   trigger_0
  8997.   zeit%=TIMER
  8998. RETURN
  8999. '
  9000. PROCEDURE polygon_fill
  9001.   REPEAT
  9002.     DEFMOUSE 0
  9003.     GET xt20&-4,yt20&-4,xt20&+bt20&+4,yt20&+ht20&+4,rette$
  9004.     SETMOUSE xt20&+bt20&/2,yt20&+160,0
  9005.     ~OBJC_DRAW(tree20_adr%,0,8,xt20&,yt20&,bt20&,ht20&)
  9006.     ~FORM_DO(tree20_adr%,0)
  9007.     exit_button&=DPEEK(GINTOUT)
  9008.     OB_STATE(tree20_adr%,exit_button&)=0
  9009.     PUT xt20&-4,yt20&-4,rette$
  9010.     IF OB_STATE(tree20_adr%,fill1&)=1
  9011.       DEFFILL 1,2,1
  9012.     ELSE IF OB_STATE(tree20_adr%,fill2&)=1
  9013.       DEFFILL 1,2,2
  9014.     ELSE IF OB_STATE(tree20_adr%,fill3&)=1
  9015.       DEFFILL 1,2,3
  9016.     ELSE IF OB_STATE(tree20_adr%,fill4&)=1
  9017.       DEFFILL 1,2,4
  9018.     ELSE IF OB_STATE(tree20_adr%,fill5&)=1
  9019.       DEFFILL 1,2,5
  9020.     ELSE IF OB_STATE(tree20_adr%,fill6&)=1
  9021.       DEFFILL 1,2,6
  9022.     ELSE IF OB_STATE(tree20_adr%,fill7&)=1
  9023.       DEFFILL 1,2,8
  9024.     ENDIF
  9025.     DEFMOUSE mdaten$
  9026.     help(help_polygon$)
  9027.     IF exit_button&<>fillcancel&
  9028.       REPEAT
  9029.         trigger_0
  9030.         wait_taste
  9031.         IF taste|<>2
  9032.           FILL x_mouse%,y_mouse%
  9033.         ENDIF
  9034.       UNTIL taste|=2
  9035.     ENDIF
  9036.   UNTIL exit_button&=fillcancel&
  9037.   ~FRE(0)
  9038.   DEFFILL 1,1
  9039.   help_titel
  9040. RETURN
  9041. '
  9042. ' *****************************************************************************
  9043. ' *                            TANGENTE NIVELLIEREN                           *
  9044. ' *                                                                           *
  9045. ' *  VERÄNDERT VAR: Punkte_X%(), Punkte_Y%()                                  *
  9046. ' *                                                                           *
  9047. ' *****************************************************************************
  9048. '
  9049. PROCEDURE do_niv_tangente(found_quelle%,von%,bis%,dreh_x%,dreh_y%)
  9050.   LOCAL phi,strecke
  9051.   dx=SUB(dreh_x%,punkte_x%(found%))
  9052.   dy=SUB(dreh_y%,punkte_y%(found%))
  9053.   strecke=SQR(dx*dx+dy*dy)
  9054.   get_phi(dreh_x%,dreh_y%,punkte_x%(found_quelle%),punkte_y%(found_quelle%),phi)
  9055.   redraw_von_bis(von%,bis%,0)
  9056.   punkte_x%(found%)=CINT(dreh_x%-strecke*COS(phi))
  9057.   punkte_y%(found%)=CINT(dreh_y%-strecke*SIN(phi))
  9058.   redraw_von_bis(von%,bis%,1)
  9059. RETURN
  9060. '
  9061. PROCEDURE tangente_nivellieren
  9062.   LOCAL found_quelle%,quelle_def|
  9063.   LOCAL von%,bis%,f%,dreh_x%,dreh_y%
  9064.   IF pointer%>1
  9065.     show_cursor_fang
  9066.     REPEAT
  9067.       trigger_0
  9068.       GRAPHMODE 1
  9069.       REPEAT
  9070.         wait_taste
  9071.         EXIT IF taste|=2
  9072.         find(x_mouse%*100/zoom,y_mouse%*100/zoom)
  9073.         quelle_def|=punkte_def|(found%)
  9074.       UNTIL (quelle_def|>da| AND quelle_def|<b3|)
  9075.       IF taste|<>2
  9076.         found_quelle%=found%
  9077.         IF quelle_def|=b1|
  9078.           IF punkte_def|(found_quelle%-1)=b3|
  9079.             found%=found_quelle%-2
  9080.             von%=found_quelle%-4
  9081.             bis%=von%+3
  9082.             dreh_x%=punkte_x%(found_quelle%-1)
  9083.             dreh_y%=punkte_y%(found_quelle%-1)
  9084.             do_niv_tangente(found_quelle%,von%,bis%,dreh_x%,dreh_y%)
  9085.           ELSE
  9086.             IF punkte_def|(found_quelle%-1)=da|
  9087.               found%=found_quelle%
  9088.               found_quelle%=found%-2
  9089.               von%=found%-1
  9090.               bis%=von%+3
  9091.               dreh_x%=punkte_x%(found%-1)
  9092.               dreh_y%=punkte_y%(found%-1)
  9093.               do_niv_tangente(found_quelle%,von%,bis%,dreh_x%,dreh_y%)
  9094.             ELSE
  9095.               IF punkte_def|(found_quelle%-1)=ma|
  9096.                 found%=found_quelle%
  9097.                 REPEAT
  9098.                   INC found%
  9099.                 UNTIL punkte_def|(found%)=ma|
  9100.                 DEC found%
  9101.                 IF punkte_def|(found%)=b3|
  9102.                   DEC found%
  9103.                   von%=found%-2
  9104.                   bis%=von%+3
  9105.                   dreh_x%=punkte_x%(found_quelle%-1)
  9106.                   dreh_y%=punkte_y%(found_quelle%-1)
  9107.                   do_niv_tangente(found_quelle%,von%,bis%,dreh_x%,dreh_y%)
  9108.                 ELSE
  9109.                   IF punkte_def|(found%)=da|
  9110.                     f%=found_quelle%
  9111.                     found_quelle%=found%-1
  9112.                     found%=f%
  9113.                     von%=found%-1
  9114.                     bis%=von%+3
  9115.                     dreh_x%=punkte_x%(found_quelle%+1)
  9116.                     dreh_y%=punkte_y%(found_quelle%+1)
  9117.                     do_niv_tangente(found_quelle%,von%,bis%,dreh_x%,dreh_y%)
  9118.                   ENDIF
  9119.                 ENDIF
  9120.               ENDIF
  9121.             ENDIF
  9122.           ENDIF
  9123.         ELSE
  9124.           IF quelle_def|=b2|
  9125.             IF punkte_def|(found_quelle%+2)=b1|
  9126.               found%=found_quelle%+2
  9127.               von%=found_quelle%+1
  9128.               bis%=von%+3
  9129.               dreh_x%=punkte_x%(found_quelle%+1)
  9130.               dreh_y%=punkte_y%(found_quelle%+1)
  9131.               do_niv_tangente(found_quelle%,von%,bis%,dreh_x%,dreh_y%)
  9132.             ELSE
  9133.               IF punkte_def|(found_quelle%+2)=da|
  9134.                 found%=found_quelle%
  9135.                 found_quelle%=found%+2
  9136.                 von%=found%-2
  9137.                 bis%=von%+3
  9138.                 dreh_x%=punkte_x%(found%+1)
  9139.                 dreh_y%=punkte_y%(found%+1)
  9140.                 do_niv_tangente(found_quelle%,von%,bis%,dreh_x%,dreh_y%)
  9141.               ELSE
  9142.                 IF punkte_def|(found_quelle%+2)=ma|
  9143.                   found%=found_quelle%
  9144.                   REPEAT
  9145.                     DEC found%
  9146.                   UNTIL punkte_def|(found%)=ma|
  9147.                   INC found%
  9148.                   IF punkte_def|(found%)=b1|
  9149.                     von%=found%-1
  9150.                     bis%=von%+3
  9151.                     dreh_x%=punkte_x%(found_quelle%+1)
  9152.                     dreh_y%=punkte_y%(found_quelle%+1)
  9153.                     do_niv_tangente(found_quelle%,von%,bis%,dreh_x%,dreh_y%)
  9154.                   ELSE
  9155.                     IF punkte_def|(found%)=da|
  9156.                       f%=found_quelle%
  9157.                       found_quelle%=found%
  9158.                       found%=f%
  9159.                       von%=found%-2
  9160.                       bis%=von%+3
  9161.                       dreh_x%=punkte_x%(found_quelle%-1)
  9162.                       dreh_y%=punkte_y%(found_quelle%-1)
  9163.                       do_niv_tangente(found_quelle%,von%,bis%,dreh_x%,dreh_y%)
  9164.                     ENDIF
  9165.                   ENDIF
  9166.                 ENDIF
  9167.               ENDIF
  9168.             ENDIF
  9169.           ENDIF
  9170.         ENDIF
  9171.       ENDIF
  9172.     UNTIL taste|=2
  9173.     DEFMOUSE 3
  9174.   ENDIF
  9175. RETURN
  9176. '
  9177. ' *****************************************************************************
  9178. ' *                               ASCII Editor                                *
  9179. ' *                                                                           *
  9180. ' *                                                                           *
  9181. ' *                                                                          ' ******************************************************************************
  9182. ' *                                                                            *
  9183. ' *                                   CUTOUT                                   *
  9184. ' *                                                                            *
  9185. ' *                                 27.02.1992                                 *
  9186. ' *                                                                            *
  9187. ' ******************************************************************************
  9188. '
  9189. '
  9190. $B+
  9191. $I-
  9192. INLINE scsi%,933
  9193. DIM buffer|(512*2)
  9194. DIM command|(12)
  9195. ' VAR:
  9196. ' apl_id&=APPL_INIT()
  9197. magic%=14031952
  9198. '
  9199. ' serien_nummer$="REGIST00"
  9200. ' serien_nummer_vergleich$="REGIST11"
  9201. serien_nummer$=MKD$(101)
  9202. serien_nummer_vergleich$=MKD$(101 XOR magic%)
  9203. '
  9204. fang_schnittpunkt|=4
  9205. buffer%=0
  9206. buffer_max%=0
  9207. poly_len%=0
  9208. bits%=0
  9209. punkt_eintrag&=0
  9210. x_start&=0
  9211. y_start&=0
  9212. edi_max&=0
  9213. m=0
  9214. m_neu=0
  9215. bit_count|=0
  9216. pixel!=FALSE
  9217. '
  9218. regist_nr%=0
  9219. revision$="1.59"
  9220. zeit%=TIMER
  9221. calamus_nr%=0
  9222. ortho|=45
  9223. ortho=RAD(ortho|)
  9224. ortho2=ortho/2
  9225. x_win&=0                                         ! Window X pos  aktuell
  9226. y_win&=0                                         ! Window Y pos  aktuell
  9227. x_window&=0                                      ! Window X pos  aktuell
  9228. y_window&=0                                      ! Window Y pos  aktuell
  9229. b_window&=0                                      ! Window Breite aktuell
  9230. h_window&=0                                      ! Window Höhe   aktuell
  9231. ~WIND_GET(0,4,scrx&,scry&,scrb&,scrh&)           ! maximaler Desktop
  9232. wmx%=scrb&-62
  9233. wmy%=scrh&-57+scry&
  9234. desk_breite&=scrb&
  9235. desk_hoehe&=scrh&+scry&
  9236. gross_bildschirm!=FALSE
  9237. IF desk_breite&>640 OR desk_hoehe&>400
  9238.   gross_bildschirm!=TRUE
  9239. ENDIF
  9240. ADD scrx&,42                                     ! Position Window X+Menuleiste
  9241. SUB scrb&,42                                     ! Breite   Window
  9242. scrb_old&=scrb&
  9243. scrh_old&=scrh&
  9244. res_x%=0                                         ! Auflösung x in mm
  9245. res_y%=0                                         ! Auflösung y in mm
  9246. res_x_old%=0
  9247. res_y_old%=0
  9248. x_layer%=0
  9249. y_layer%=0
  9250. x_layero%=0
  9251. y_layero%=0
  9252. x_offset&=0                                      ! Nullpunkt x im Fenster
  9253. y_offset&=0                                      ! Nullpunkt y im Fenster
  9254. x_offset_old&=0
  9255. y_offset_old&=0
  9256. x_mouse%=0
  9257. y_mouse%=0
  9258. x_mouse_old%=0
  9259. y_mouse_old%=0
  9260. x_mouse_0%=0
  9261. y_mouse_0%=0
  9262. objectbox_x0%=0
  9263. objectbox_y0%=0
  9264. objectbox_x1%=0
  9265. objectbox_y1%=0
  9266. grid%=10                                        ! raster mm
  9267. schraff_dist=201
  9268. schraff_inc=0
  9269. schraff_fix_abst=0
  9270. schraff_winkel=0
  9271. schraff_start%=0
  9272. schraff_y_min%=0
  9273. bit_count_max|=6
  9274. geraden_fehler|=1
  9275. lange_gerade%=4000
  9276. schmutz_filter%=20
  9277. knick_winkel_max=RAD(140)
  9278. bogen_max=PI/2/2
  9279. abweichung_gerade%=0.5*100
  9280. last_poly_s%=-1
  9281. last_poly_e%=-1
  9282. taste|=0
  9283. zoom=1
  9284. zoom_old=1
  9285. zoom_100=1
  9286. pointer%=0                                       ! Zeiger auf Punkteliste
  9287. found%=0                                         ! gefundener Punkt bei SNAP
  9288. found_t%=0                                       ! gefundener Kurvenparameter
  9289. schnittpunkt_genau%=16                           ! Zerlegung Bezier in Teile
  9290. anz_schnittpunkte%=0                             ! Anzahl Schnittpunkte
  9291. b_vari=100
  9292. i%=0                                             ! allgemeiner Schleifenzähler
  9293. ii%=0
  9294. iii%=0
  9295. d0%=0
  9296. dx%=0
  9297. dy%=0
  9298. dx=0
  9299. dy=0
  9300. schnitt_laenge=0
  9301. kostfak=1
  9302. gkosten=0
  9303. px0%=0
  9304. py0%=0
  9305. px1%=0
  9306. py1%=0
  9307. px2%=0
  9308. py2%=0
  9309. px3%=0
  9310. py3%=0
  9311. m_square_breite&=&H3000
  9312. m_square_hoehe&=&H3000
  9313. kerning_256|=m_square_breite& DIV 256
  9314. len_pair_daten&=0
  9315. z_hoehe_def%=16384                               ! Höhe des definierten Zsatzes
  9316. z_breite_def%=16384                              ! Breite     "
  9317. zeichen_hoehe%=3000                              ! gewünschte Höhe in 1/100 mm
  9318. versal_def%=0                                    ! Versal     Höhe in 1/100 mm
  9319. z_ascii_scale=zeichen_hoehe%/z_hoehe_def%        ! Scaling
  9320. z_ascii_scale_old=z_ascii_scale                  ! save Scaling
  9321. global_kerning%=1280                             ! globales Kerning
  9322. zeilen_abstand_prozent%=125                      ! relativer Zeilen Abstand
  9323. zeilen_abstand%=zeichen_hoehe%*zeilen_abstand_prozent%/100-zeichen_hoehe%
  9324. z_cursor_x_spalte%=0                             ! Start String
  9325. z_cursor_x%=0                                    ! ASCII Zeichen Cursor X
  9326. z_cursor_y%=0                                    ! ASCII Zeichen Cursor y
  9327. z_cursor_x_old%=0                                ! letztes Zeichen Cursor X
  9328. z_cursor_y_old%=0                                ! letztes Zeichen Cursor y
  9329. z_ascii_old%=0                                   ! letztes Zeichen ASCII+32
  9330. z_satz_pointer%=0                                ! Pointer auf Zeichensatz
  9331. state_rs232&=0                                   ! Centronics aktiv
  9332. state_hp&=0                                      ! HPGL aktiv
  9333. folie_x%=1188                                    ! Folien Grö₧e
  9334. folie_y%=840
  9335. plotter_x_min%=0
  9336. plotter_y_min%=0
  9337. gdu=0                                            ! 100*Plottereinheit
  9338. sel_start%=0
  9339. sel_end%=0
  9340. gtxv&=0
  9341. gtyv&=0
  9342. gtbv&=216
  9343. gthv&=297
  9344. gtdpiv&=300
  9345. gtfarbev&=3
  9346. gtkontrav&=3
  9347. exit_button&=0
  9348. cursor_x&=0
  9349. cursor_y&=0
  9350. ofn_ver|=0
  9351. overcut|=0
  9352. geschlossen%=0
  9353. '
  9354. phi_x_3d=0
  9355. phi_y_3d=0
  9356. a2_3d=0
  9357. '
  9358. daten_ptr%=0
  9359. work_space%=0
  9360. '
  9361. ' CONST:
  9362. '
  9363. IF FRE(0)>4000000
  9364.   p_max%=99999
  9365. ELSE
  9366.   p_max%=60000
  9367. ENDIF
  9368. ma|=0
  9369. da|=1
  9370. b1|=2
  9371. b2|=3
  9372. b3|=4
  9373. ein_drittel=1/3
  9374. fmin=2.225073858507E-307
  9375. fmin1=0.005
  9376. max1=0.995
  9377. pimal2=PI*2
  9378. pihalbe=PI/2
  9379. pidrittel=PI/3
  9380. fang_rad%=8*100                                  ! FANGRADIUS
  9381. p_at%=XBIOS(3)+76                                ! PRINT AT FÜR X,Y
  9382. p_at_zoom%=p_at%-12                              ! PRINT AT FÜR ZOOM
  9383. x_bytes%=(scrb&+42)/8                            ! BYTES IN X RICHTUNG DESKTOP
  9384. '
  9385. ' CONST: Menuleiste
  9386. '
  9387. tree00&=0
  9388. tree0_adr%=0
  9389. datei&=3
  9390. eintrag&=4
  9391. mfenster&=10
  9392. mtext&=5
  9393. mzedi&=6
  9394. spezial&=7
  9395. all_clear&=8
  9396. bbogen&=9
  9397. mschnitt&=11
  9398. '
  9399. tree01&=1
  9400. tree1_adr%=0
  9401. back_main&=3
  9402. fwd_main&=4
  9403. gerade&=5
  9404. kurve&=6
  9405. schliess&=7
  9406. verrunde&=8
  9407. loeschen&=9
  9408. lock&=10
  9409. snap&=11
  9410. bild&=12
  9411. zircel&=13
  9412. bezier4&=14
  9413. schere&=15
  9414. ' fenster&=15
  9415. '
  9416. tree02&=2
  9417. tree2_adr%=0
  9418. back_datei&=3
  9419. fwd_datei&=4
  9420. l_vek&=5
  9421. l_merge&=6
  9422. r_macro&=7
  9423. r_cvg&=8
  9424. l_img&=9
  9425. l_pic&=10
  9426. ordner&=11
  9427. s_vek&=12
  9428. s_plt&=13
  9429. a_plotter&=14
  9430. '
  9431. tree03&=3
  9432. tree3_adr%=0
  9433. back_fenster&=3
  9434. fwd_fenster&=4
  9435. fmove&=5
  9436. blitz&=6
  9437. fcopy&=7
  9438. fzoom&=8
  9439. fzoomp&=9
  9440. fdreh&=10
  9441. fspiegel&=11
  9442. fkursiv&=12
  9443. dreh3d&=13
  9444. drehxp&=14
  9445. drehxm&=15
  9446. drehym&=16
  9447. drehyp&=17
  9448. floesch&=18
  9449. fzoom1&=19
  9450. '
  9451. tree04&=4
  9452. tree4_adr%=0
  9453. back_spezial&=3
  9454. gtepson&=4
  9455. handy&=5
  9456. kontour&=6
  9457. filter&=7
  9458. trace&=8
  9459. smooth&=9
  9460. simag&=10
  9461. '
  9462. tree05&=5
  9463. tree5_adr%=0
  9464. back_text&=3
  9465. fwd_text&=4
  9466. z_edit&=5
  9467. z_editor&=6
  9468. z_string&=7
  9469. z_t_hoehe&=8
  9470. z_t_abstand&=9
  9471. z_g_kerning&=10
  9472. z_read_ascii&=11
  9473. l_font&=12
  9474. s_font&=14
  9475. c_font&=13
  9476. '
  9477. tree06&=6
  9478. tree6_adr%=0
  9479. t_hoehe&=1
  9480. '
  9481. tree07&=7
  9482. tree7_adr%=0
  9483. zabs&=1
  9484. '
  9485. tree08&=8                                         ! String Text
  9486. tree8_adr%=0
  9487. string_text&=1
  9488. breite&=3
  9489. string_breite&=4
  9490. versal&=5
  9491. string_versal&=6
  9492. pfad&=7
  9493. do_kerning&=8
  9494. string_kreis&=9
  9495. string_kreis_von&=10
  9496. string_kreis_bis&=11
  9497. fontname&=13
  9498. c_text&=14
  9499. icon_pair&=15
  9500. icon_trep&=16
  9501. '
  9502. tree09&=9                                         ! Zeichen Editor
  9503. tree9_adr%=0
  9504. back_editor&=3
  9505. m_matrix&=4
  9506. z_matrix&=5
  9507. move_matrix&=6
  9508. kerning_links&=7
  9509. kerning_rechts&=8
  9510. kerning_auto&=9
  9511. z_get&=10
  9512. z_muell&=11
  9513. z_up&=13
  9514. z_down&=14
  9515. z_char&=15
  9516. '
  9517. tree10&=10
  9518. tree10_adr%=0
  9519. b_kerning&=2
  9520. g_kerning&=3
  9521. '
  9522. tree11&=11                                       ! Optimier
  9523. tree11_adr%=0
  9524. del_ma&=4
  9525. del_ge&=6
  9526. del_el&=8
  9527. '
  9528. tree12&=12
  9529. tree12_adr%=0
  9530. bstep&=1
  9531. '
  9532. tree13&=13                                       ! Info
  9533. tree13_adr%=0
  9534. vernr&=7
  9535. version&=4
  9536. firma&=4
  9537. strasse&=7
  9538. stadt&=10
  9539. punkte&=15
  9540. rest&=17
  9541. '
  9542. tree14&=14                                       ! Auflösung
  9543. tree14_adr%=0
  9544. rx1&=8
  9545. ry1&=10
  9546. rx2&=12
  9547. ry2&=13
  9548. rx3&=16
  9549. ry3&=17
  9550. get_pf&=19
  9551. r1&=4
  9552. r2&=5
  9553. r3&=6
  9554. '
  9555. tree15&=15                                       ! Plotter INIT
  9556. tree15_adr%=0
  9557. p_init1&=3
  9558. p_init2&=4
  9559. gdu01&=9
  9560. gdu025&=10
  9561. gdu05&=11
  9562. gdu1&=12
  9563. overcut&=16
  9564. cent&=18
  9565. rs232&=20
  9566. hp&=23
  9567. gp&=24
  9568. mgl&=25
  9569. ma&=29
  9570. da&=30
  9571. '
  9572. tree16&=16                                       ! Pfade und Parameter
  9573. tree16_adr%=0
  9574. pv&=5
  9575. pp&=7
  9576. pfi&=9
  9577. pg&=11
  9578. pf&=13
  9579. df&=15
  9580. p1&=17
  9581. p2&=19
  9582. schnitt&=21
  9583. gdu&=23
  9584. foliex&=25
  9585. foliey&=27
  9586. warn&=29
  9587. cancel&=31
  9588. '
  9589. tree17&=17
  9590. tree17_adr%=0
  9591. outl&=1
  9592. outl_anz&=2
  9593. '
  9594. tree18&=18
  9595. tree18_adr%=0
  9596. schraffd&=1
  9597. schraffi&=2
  9598. schrafix&=3
  9599. schraffw&=4
  9600. schraffa&=7
  9601. schrafff&=8
  9602. '
  9603. tree19&=19
  9604. tree19_adr%=0
  9605. necka&=1
  9606. neckp&=2
  9607. '
  9608. tree20&=20                                      ! Füll
  9609. tree20_adr%=0
  9610. fill1&=3
  9611. fill2&=5
  9612. fill3&=7
  9613. fill4&=9
  9614. fill5&=11
  9615. fill6&=13
  9616. fill7&=15
  9617. fillcancel&=17
  9618. '
  9619. tree21&=21                                      ! Trace
  9620. tree21_adr%=0
  9621. t_step&=7
  9622. t_gerade&=8
  9623. t_schmutz&=9
  9624. bschwelle&=21
  9625. knickwinkel&=22
  9626. bogen_max&=23
  9627. abweichung_gerade&=24
  9628. nur_gerade&=13
  9629. trace_cancel&=14
  9630. gerade_bezier&=30
  9631. '
  9632. tree22&=22
  9633. tree22_adr%=0
  9634. scann_x&=1
  9635. scann_y&=2
  9636. '
  9637. tree23&=23
  9638. tree23_adr%=0
  9639. radius&=1
  9640. '
  9641. tree24&=24
  9642. tree24_adr%=0
  9643. grau&=6
  9644. stark&=7
  9645. selgrau0&=4
  9646. selgrau&=5
  9647. sellinie&=8
  9648. alle&=9
  9649. auswahl&=10
  9650. '
  9651. tree25&=25                               ! Bogen
  9652. tree25_adr%=0
  9653. backboge&=3
  9654. vkreis&=4
  9655. kreis3&=5
  9656. kreisbog&=6
  9657. bogen3&=7
  9658. bogen2&=8
  9659. ellipse&=9
  9660. elbogen&=10
  9661. eckrund&=11
  9662. '
  9663. tree26&=26                               ! Koordinaten
  9664. tree26_adr%=0
  9665. absolut&=2
  9666. relativ&=3
  9667. polar&=4
  9668. '
  9669. tree27&=27                               ! Calamus Versions Nr.
  9670. tree27_adr%=0
  9671. calamus_nr&=1
  9672. '
  9673. tree28&=28                               ! GT 6000
  9674. tree28_adr%=0
  9675. gtscan&=47
  9676. gtx&=38
  9677. gty&=44
  9678. gtb&=42
  9679. gth&=43
  9680. gtcancel&=46
  9681. gtpresca&=45
  9682. gtdpi&=35
  9683. gtdpimin&=33
  9684. gtdpiplu&=34
  9685. gtprewin&=1
  9686. gtstate&=5
  9687. gtkeiner&=9
  9688. gtraster&=10
  9689. gtweich&=11
  9690. gthart&=12
  9691. gtkeine&=15
  9692. gtrot&=18
  9693. gtgruen&=17
  9694. gtblau&=16
  9695. k0&=22
  9696. k1&=23
  9697. k2&=24
  9698. k3&=25
  9699. k4&=26
  9700. k5&=27
  9701. k6&=28
  9702. '
  9703. tree29&=29                               ! Kosten
  9704. tree29_adr%=0
  9705. kostfak&=1
  9706. sl&=2
  9707. gkosten&=4
  9708. '
  9709. tree30&=30                               ! Select Filter
  9710. tree30_adr%=0
  9711. abs_filter&=1
  9712. '
  9713. tree31&=31                               ! Select Fenster
  9714. tree31_adr%=0
  9715. ohnecopy&=1
  9716. mitcopy&=6
  9717. anz_rot&=3
  9718. phi_rot&=4
  9719. numohne&=5
  9720. ausricht_vector&=7
  9721. '
  9722. tree32&=32                               ! Select Spiegel
  9723. tree32_adr%=0
  9724. anbox&=2
  9725. anachse&=1
  9726. '
  9727. tree33&=33
  9728. tree33_adr%=0
  9729. teil&=1
  9730. '
  9731. tree34&=34                               ! Schnittpunkt
  9732. tree34_adr%=0
  9733. backschn&=3
  9734. fwdschn&=4
  9735. trimm&=5
  9736. knack&=6
  9737. lot&=7
  9738. teilen&=8
  9739. lang&=9
  9740. schnitt2&=10
  9741. schnittn&=11
  9742. delseg&=12
  9743. delel&=13
  9744. schmelz&=14
  9745. '
  9746. tree35&=35                              ! Select Copy
  9747. tree35_adr%=0
  9748. copysing&=1
  9749. copymul&=2
  9750. cx&=4
  9751. cy&=5
  9752. canz&=6
  9753. cdist&=7
  9754. '
  9755. tree36&=36                              ! Ausrichten
  9756. tree36_adr%=0
  9757. a_olinks&=1
  9758. a_oben&=2
  9759. a_orechts&=3
  9760. a_links&=4
  9761. a_mitte&=5
  9762. a_rechts&=6
  9763. a_ulinks&=7
  9764. a_unten&=8
  9765. a_urechts&=9
  9766. '
  9767. tree37&=37                              ! Scalieren
  9768. tree37_adr%=0
  9769. scale_interactiv&=1
  9770. scale_numerisch&=2
  9771. scale_breite&=4
  9772. scale_hoehe&=5
  9773. '
  9774. tree38&=38                              ! Ordner
  9775. tree38_adr%=0
  9776. ordnert&=1
  9777. ordnerok&=2
  9778. ordnerca&=3
  9779. '
  9780. tree39&=39                              ! Kerning
  9781. tree39_adr%=0
  9782. kerning_box&=1
  9783. kerning_minus&=3
  9784. kerning_plus&=4
  9785. kerning_last&=2
  9786. kerning_next&=5
  9787. kerning_exit&=6
  9788. kerning_minus2&=9
  9789. kerning_plus2&=10
  9790. kerning_last2&=8
  9791. kerning_next2&=11
  9792. kerning_clear&=7
  9793. kerning_info&=13
  9794. kerning_pair&=15
  9795. '
  9796. tree40&=40                              ! Plotter OUTPUT
  9797. tree40_adr%=0
  9798. pl100&=3
  9799. plschieber&=4
  9800. plschere&=7
  9801. plschereauf&=5
  9802. plscherezu&=6
  9803. plschere&=7
  9804. '
  9805. tree41&=41                              ! Select Neigen
  9806. tree41_adr%=0
  9807. neige_grad&=2
  9808. neige_vertical&=3
  9809. neige_horizontal&=4
  9810. neige_interaktiv&=5
  9811. '
  9812. ' FLAG:
  9813. '
  9814. undo!=FALSE
  9815. geschlossen!=FALSE
  9816. ok!=FALSE                                        ! allgemein
  9817. layer_geladen!=FALSE                             ! ist  Layer geladen
  9818. layer!=FALSE                                     ! soll Layer gezeigt werden
  9819. window_fulled!=TRUE                              ! ist  Fenster schon gro₧
  9820. voll_bild!=FALSE                                 ! ist  Fenster komplett auf Crt
  9821. eintragen!=FALSE                                 ! ist  eintragen aktiv
  9822. bogen!=FALSE
  9823. mtext!=FALSE
  9824. meditor!=FALSE
  9825. datei!=FALSE
  9826. fenster!=FALSE
  9827. schnittpunktm!=FALSE
  9828. loeschen!=FALSE                                  ! ist  loeschen aktiv
  9829. neues_polygon!=TRUE                              ! erster Punkt im Polygon
  9830. found!=FALSE                                     ! gefunden bei Fangradius
  9831. marker!=FALSE                                    ! sollen Marker gezeigt werden
  9832. marker_select!=FALSE                             ! soll   Marker selectiert
  9833. modified!=FALSE                                  ! wurde Vektorbild geändert
  9834. font_geladen!=FALSE                              ! ist ein Font geladen
  9835. outlined!=FALSE                                  ! wurde Bitmap schon outlined
  9836. auto_schraff!=TRUE
  9837. schraff_fix_abst!=FALSE
  9838. einpassen!=FALSE
  9839. tangente!=FALSE
  9840. tangenten_lock!=TRUE
  9841. warn!=FALSE
  9842. gp_gl!=FALSE                                     ! HPGL oder GPGL
  9843. tasten_rep!=FALSE
  9844. absolut!=TRUE
  9845. relativ!=FALSE
  9846. polar!=FALSE
  9847. absolut_old!=FALSE
  9848. polar_old!=FALSE
  9849. fangklein!=FALSE                                 ! Fangradius gro₧
  9850. fadenkreuz!=FALSE
  9851. polygonmode!=TRUE                                ! Polygonmodus
  9852. ortho!=FALSE
  9853. grid!=FALSE
  9854. scrolled!=FALSE
  9855. move!=FALSE
  9856. drei_d!=FALSE
  9857. status_wechsel!=FALSE
  9858. grid_wechsel!=FALSE
  9859. swap!=FALSE
  9860. '
  9861. ' ARRAY:
  9862. '
  9863. DIM smfdb%(8),dmfdb%(8),p%(8)
  9864. DIM z_smfdb%(8),z_dmfdb%(8),z_p%(8),q_dmfdb%(8)
  9865. DIM punkte_x%(p_max%),punkte_y%(p_max%),punkte_def|(p_max%),buffer%(p_max%/2)
  9866. DIM x_meta%(127),y_meta%(127),punkte_def1|(32)
  9867. ARRAYFILL punkte_def1|(),1
  9868. DIM bezier_x&(33),bezier_y&(33)
  9869. DIM m$(87)
  9870. DIM mk%(60,2)
  9871. DIM m_square%(5)
  9872. DIM z_editor%(32)
  9873. DIM z_ascii%(224),z_kerning&(224*16),z_daten&(224*280),z_pair&(224),z_pair|(224),z_pair_daten|(2000)
  9874. DIM sx1%(9),sy1%(9),sx2%(9),sy2%(9),sp1(9),sp2(9)
  9875. DIM zeilen_buffer$(60)
  9876. rette$=SPACE$(32000)
  9877. pfad$=SPACE$(80)
  9878. kerning_string$=SPACE$(60)
  9879. pfad_pic$=SPACE$(80)
  9880. pfad_img$=SPACE$(80)
  9881. pfad_vek$=SPACE$(80)
  9882. pfad_vek_root$=SPACE$(80)
  9883. pfad_cvg$=SPACE$(80)
  9884. pfad_fnt$=SPACE$(80)
  9885. pfad_cfn$=SPACE$(80)
  9886. default_font$=SPACE$(10)
  9887. programm$=SPACE$(10)
  9888. programm_font$=SPACE$(10)
  9889. test_datei$=SPACE$(10)
  9890. object$=SPACE$(80)
  9891. p_init1$=SPACE$(40)
  9892. p_init2$=SPACE$(40)
  9893. abc$="CutOut Test"
  9894. ma$="M"
  9895. da$="D"
  9896. cutout_font$="CUTOUTOFN"
  9897. calamus_font_grafik$=MKI$(159)+MKI$(15)+MKI$(1)+SPACE$(320)
  9898. ok$="OK"
  9899. ein_space$=" "
  9900. x_y$="X|Y"
  9901. erster$="1. "
  9902. zweiter$="2. "
  9903. help_on$="ON "
  9904. help_off$="OFF"
  9905. vek$="VEK"
  9906. cvg$="CVG"
  9907. img$="IMG"
  9908. plt$="PLT"
  9909. calamus$="CALAMUS"
  9910. cutout$="CutOut"
  9911. ' ****************************************************************************
  9912. OPEN "I",#1,"SYS\LANGUAGE.DRV"
  9913. LINE INPUT #1,pd_menu$
  9914. LINE INPUT #1,pd_datei$
  9915. LINE INPUT #1,pd_editieren$
  9916. LINE INPUT #1,pd_fenster$
  9917. LINE INPUT #1,pd_schnittpunkt$
  9918. LINE INPUT #1,pd_bogen$
  9919. LINE INPUT #1,pd_text$
  9920. LINE INPUT #1,pd_zeicheneditor$
  9921. LINE INPUT #1,pd_extra$
  9922. LINE INPUT #1,pd_quit$
  9923. '
  9924. LINE INPUT #1,pd_optionen$
  9925. LINE INPUT #1,pd_marker_anzeigen$
  9926. LINE INPUT #1,pd_tangenten_anzeigen$
  9927. LINE INPUT #1,pd_fangradius_klein$
  9928. LINE INPUT #1,pd_polygon_modus$
  9929. LINE INPUT #1,pd_schnittpunkt_genau$
  9930. LINE INPUT #1,pd_koordinaten$
  9931. LINE INPUT #1,pd_element_selektieren$
  9932. LINE INPUT #1,pd_polygon_selektieren$
  9933. LINE INPUT #1,pd_warnmeldungen$
  9934. LINE INPUT #1,pd_skaliere_alles$
  9935. LINE INPUT #1,pd_punkte_nivellieren$
  9936. LINE INPUT #1,pd_tangente$
  9937. LINE INPUT #1,pd_plotflaeche$
  9938. LINE INPUT #1,pd_bezier_step_aendern$
  9939. LINE INPUT #1,pd_plotter_einstellung$
  9940. LINE INPUT #1,pd_kosten_faktor$
  9941. LINE INPUT #1,pd_pfad_sichern$
  9942. '
  9943. LINE INPUT #1,pd_figur$
  9944. LINE INPUT #1,pd_rechteck$
  9945. LINE INPUT #1,pd_n_eck$
  9946. LINE INPUT #1,pd_polygon_outline$
  9947. LINE INPUT #1,pd_aequidistante$
  9948. LINE INPUT #1,pd_frame$
  9949. LINE INPUT #1,pd_polygone_ausrichten$
  9950. LINE INPUT #1,pd_polygone_zentrieren$
  9951. LINE INPUT #1,pd_polygone_vereinen$
  9952. LINE INPUT #1,pd_polygone_fuellen$
  9953. LINE INPUT #1,pd_einzelne_punkte_loeschen$
  9954. '
  9955. LINE INPUT #1,pd_linie$
  9956. LINE INPUT #1,pd_bezier_vektor$
  9957. LINE INPUT #1,pd_bezier_einfuegen$
  9958. LINE INPUT #1,pd_tausche_bezier_vektor$
  9959. LINE INPUT #1,pd_knacken$
  9960. LINE INPUT #1,pd_trimmen$
  9961. LINE INPUT #1,pd_lot$
  9962. LINE INPUT #1,pd_verlaengern$
  9963. LINE INPUT #1,pd_teilen$
  9964. LINE INPUT #1,pd_messen$
  9965. LINE INPUT #1,pd_schnittp_2er$
  9966. LINE INPUT #1,pd_schnittp_n$
  9967. '
  9968. LINE INPUT #1,pd_effekt$
  9969. LINE INPUT #1,pd_parameter_schraffur$
  9970. LINE INPUT #1,pd_polygon_schraffieren$
  9971. LINE INPUT #1,pd_alles_schraffieren$
  9972. LINE INPUT #1,pd_schatten$
  9973. LINE INPUT #1,pd_einpassen$
  9974. LINE INPUT #1,pd_kugel$
  9975. '
  9976. LINE INPUT #1,lade$
  9977. LINE INPUT #1,sichere$
  9978. LINE INPUT #1,fuege_ein$
  9979. LINE INPUT #1,vektor$
  9980. LINE INPUT #1,macro$
  9981. LINE INPUT #1,daten$
  9982. LINE INPUT #1,zeichensatz$
  9983. LINE INPUT #1,kein$
  9984. LINE INPUT #1,keine$
  9985. LINE INPUT #1,ja_nein$
  9986. LINE INPUT #1,waehle$
  9987. LINE INPUT #1,fehler$
  9988. LINE INPUT #1,scannen$
  9989. LINE INPUT #1,pre_view$
  9990. LINE INPUT #1,ascii_importieren$
  9991. LINE INPUT #1,ascii_exportieren$
  9992. LINE INPUT #1,schriftblock$
  9993. LINE INPUT #1,radius_zu$
  9994. LINE INPUT #1,winkel_zu$
  9995. LINE INPUT #1,leider$
  9996. LINE INPUT #1,winkel_einstellen$
  9997. LINE INPUT #1,spiegelachse$
  9998. LINE INPUT #1,lupe_mal$
  9999. LINE INPUT #1,fensterbereich$
  10000. LINE INPUT #1,drehzentrum$
  10001. LINE INPUT #1,ordner_exist$
  10002. LINE INPUT #1,kein_leer$
  10003. LINE INPUT #1,suche_schnittpunkte$
  10004. LINE INPUT #1,gleiches_polygon$
  10005. LINE INPUT #1,bezugs$
  10006. LINE INPUT #1,zentriere$
  10007. LINE INPUT #1,huellkurve$
  10008. LINE INPUT #1,huellkurve1$
  10009. LINE INPUT #1,berechne$
  10010. LINE INPUT #1,rechte_taste$
  10011. LINE INPUT #1,endpunkt$
  10012. LINE INPUT #1,lot_an$
  10013. LINE INPUT #1,noname$
  10014. LINE INPUT #1,symbol$
  10015. LINE INPUT #1,orginal_fenster$
  10016. LINE INPUT #1,dmc_font$
  10017. LINE INPUT #1,bild_datei_zu$
  10018. LINE INPUT #1,stad_laden$
  10019. LINE INPUT #1,plotter_ist_off$
  10020. LINE INPUT #1,plot_datei$
  10021. LINE INPUT #1,kein_treiber$
  10022. LINE INPUT #1,schnittstelle_auf$
  10023. LINE INPUT #1,polygone_vereinen$
  10024. LINE INPUT #1,loesche_einzelne$
  10025. LINE INPUT #1,quelle$
  10026. LINE INPUT #1,ziel$
  10027. LINE INPUT #1,nivelliere$
  10028. LINE INPUT #1,alle_daten_l$
  10029. LINE INPUT #1,ganzer_zeichensatz$
  10030. LINE INPUT #1,font_daten_loeschen$
  10031. LINE INPUT #1,zeichen_matrix$
  10032. LINE INPUT #1,datei_existiert$
  10033. LINE INPUT #1,datei_ueberschreiben$
  10034. LINE INPUT #1,glaetten_mit$
  10035. LINE INPUT #1,gerade_bezier$
  10036. LINE INPUT #1,glaetten$
  10037. LINE INPUT #1,bereich$
  10038. LINE INPUT #1,path$
  10039. LINE INPUT #1,help_mittelpunkt$
  10040. LINE INPUT #1,help_radius$
  10041. LINE INPUT #1,help_position$
  10042. LINE INPUT #1,help_startwinkel$
  10043. LINE INPUT #1,help_endwinkel$
  10044. LINE INPUT #1,help_polygon$
  10045. LINE INPUT #1,help_punkt$
  10046. LINE INPUT #1,help_linie$
  10047. LINE INPUT #1,help_element$
  10048. LINE INPUT #1,help_verrund$
  10049. LINE INPUT #1,help_loesche$
  10050. LINE INPUT #1,help_trenn$
  10051. LINE INPUT #1,help_move$
  10052. LINE INPUT #1,help_sel$
  10053. LINE INPUT #1,help_move_window$
  10054. LINE INPUT #1,help_rahmen$
  10055. LINE INPUT #1,help_edit$
  10056. LINE INPUT #1,help_bezier$
  10057. LINE INPUT #1,help_status$
  10058. LINE INPUT #1,help_ortho$
  10059. LINE INPUT #1,help_grid$
  10060. LINE INPUT #1,help_free$
  10061. LINE INPUT #1,help_snap$
  10062. LINE INPUT #1,help_editor$
  10063. LINE INPUT #1,help_pfad$
  10064. CLOSE #1
  10065. ' ****************************************************************************
  10066. integer%=VARPTR(punkte_x%(1))-VARPTR(punkte_x%(0))  ! Länge in Bytes Integer
  10067. '
  10068. z_editor%(0)=2048                                   ! Top      Line   Y
  10069. z_editor%(1)=3072                                   ! Ascent   Line   Y
  10070. z_editor%(2)=6144                                   ! Half     Line   Y
  10071. z_editor%(3)=11264                                  ! Base     Line   Y
  10072. z_editor%(4)=13952                                  ! Descent  Line   Y
  10073. z_editor%(5)=14336                                  ! Bottom   Line   Y
  10074. '
  10075. z_editor%(6)=0                                      ! Matrix   links  X
  10076. z_editor%(7)=16384                                  ! Matrix   rechts X
  10077. z_editor%(8)=1280                                   ! Kerning  links  X
  10078. z_editor%(9)=1280                                   ! Kerning  links  X
  10079. z_editor%(10)=1280                                  ! Kerning  links  X
  10080. z_editor%(11)=1280                                  ! Kerning  links  X
  10081. z_editor%(12)=1280                                  ! Kerning  links  X
  10082. z_editor%(13)=1280                                  ! Kerning  links  X
  10083. z_editor%(14)=1280                                  ! Kerning  links  X
  10084. z_editor%(15)=1280                                  ! Kerning  links  X
  10085. z_editor%(16)=15104                                 ! Kerning  rechts X
  10086. z_editor%(17)=15104                                 ! Kerning  rechts X
  10087. z_editor%(18)=15104                                 ! Kerning  rechts X
  10088. z_editor%(19)=15104                                 ! Kerning  rechts X
  10089. z_editor%(20)=15104                                 ! Kerning  rechts X
  10090. z_editor%(21)=15104                                 ! Kerning  rechts X
  10091. z_editor%(22)=15104                                 ! Kerning  rechts X
  10092. z_editor%(23)=15104                                 ! Kerning  rechts X
  10093. z_editor%(24)=z_editor%(0)                          ! Kerning         Y
  10094. z_editor%(25)=(z_editor%(5)-z_editor%(0))/8         ! Kerning         Y
  10095. z_editor%(26)=z_editor%(24)+z_editor%(25)           ! Kerning         Y
  10096. z_editor%(27)=z_editor%(26)+z_editor%(25)           ! Kerning         Y
  10097. z_editor%(28)=z_editor%(27)+z_editor%(25)           ! Kerning         Y
  10098. z_editor%(29)=z_editor%(28)+z_editor%(25)           ! Kerning         Y
  10099. z_editor%(30)=z_editor%(29)+z_editor%(25)           ! Kerning         Y
  10100. z_editor%(31)=z_editor%(30)+z_editor%(25)           ! Kerning         Y
  10101. z_editor%(32)=0                                     ! Matrix oben     Y
  10102. '
  10103. ' ******************************************************************************
  10104. ' *                                                                            *
  10105. ' *                             MENU INITIALISIERUNG                           *
  10106. ' *                                                                            *
  10107. ' ******************************************************************************
  10108. '
  10109. BMOVE V:serien_nummer$,V:serien_nummer,8
  10110. BMOVE V:serien_nummer_vergleich$,V:serien_nummer_vergleich,8
  10111. regist_nr%=serien_nummer_vergleich
  10112. IF serien_nummer<>(serien_nummer_vergleich XOR magic%)
  10113.   PRINT "SORRY HACKER"
  10114.   PAUSE 300
  10115.   SYSTEM
  10116. ENDIF
  10117. INLINE zasm_ptr%,4136
  10118. INLINE pack_img%,958
  10119. INLINE calc_bezier%,1050
  10120. INLINE p_num%,360
  10121. INLINE find_line%,356
  10122. INLINE kontour%,216
  10123. INLINE staddec%,184
  10124. INLINE imgdec%,228
  10125. INLINE findexcept%,52
  10126. INLINE findpointexcept%,70
  10127. mfang$=MKI$(7)+MKI$(7)+MKI$(1)+MKI$(0)+MKI$(1)
  10128. mfang$=mfang$+MKI$(&X1111111111111110)
  10129. mfang$=mfang$+MKI$(&X1111111111111110)
  10130. mfang$=mfang$+MKI$(&X1100001110000110)
  10131. mfang$=mfang$+MKI$(&X1100001110000110)
  10132. mfang$=mfang$+MKI$(&X1100001110000110)
  10133. mfang$=mfang$+MKI$(&X1100001110000110)
  10134. mfang$=mfang$+MKI$(&X1111110001111110)
  10135. mfang$=mfang$+MKI$(&X1111110001111110)
  10136. mfang$=mfang$+MKI$(&X1111110001111110)
  10137. mfang$=mfang$+MKI$(&X1100001110000110)
  10138. mfang$=mfang$+MKI$(&X1100001110000110)
  10139. mfang$=mfang$+MKI$(&X1100001110000110)
  10140. mfang$=mfang$+MKI$(&X1100001110000110)
  10141. mfang$=mfang$+MKI$(&X1111111111111110)
  10142. mfang$=mfang$+MKI$(&X1111111111111110)
  10143. mfang$=mfang$+MKI$(&X0)
  10144. '
  10145. mfang$=mfang$+MKI$(&X1111111111111110)
  10146. mfang$=mfang$+MKI$(&X1000000100000010)
  10147. mfang$=mfang$+MKI$(&X1000000100000010)
  10148. mfang$=mfang$+MKI$(&X1000000100000010)
  10149. mfang$=mfang$+MKI$(&X1000000100000010)
  10150. mfang$=mfang$+MKI$(&X1000000100000010)
  10151. mfang$=mfang$+MKI$(&X1000000000000010)
  10152. mfang$=mfang$+MKI$(&X1111110001111110)
  10153. mfang$=mfang$+MKI$(&X1000000000000010)
  10154. mfang$=mfang$+MKI$(&X1000000100000010)
  10155. mfang$=mfang$+MKI$(&X1000000100000010)
  10156. mfang$=mfang$+MKI$(&X1000000100000010)
  10157. mfang$=mfang$+MKI$(&X1000000100000010)
  10158. mfang$=mfang$+MKI$(&X1000000100000010)
  10159. mfang$=mfang$+MKI$(&X1111111111111110)
  10160. mfang$=mfang$+MKI$(&X0)
  10161. '
  10162. mfang_klein$=MKI$(7)+MKI$(7)+MKI$(1)+MKI$(0)+MKI$(1)
  10163. mfang_klein$=mfang_klein$+MKI$(&X0)
  10164. mfang_klein$=mfang_klein$+MKI$(&X0)
  10165. mfang_klein$=mfang_klein$+MKI$(&X11111111111000)
  10166. mfang_klein$=mfang_klein$+MKI$(&X11111111111000)
  10167. mfang_klein$=mfang_klein$+MKI$(&X11001110011000)
  10168. mfang_klein$=mfang_klein$+MKI$(&X11001110011000)
  10169. mfang_klein$=mfang_klein$+MKI$(&X11110001111000)
  10170. mfang_klein$=mfang_klein$+MKI$(&X11110001111000)
  10171. mfang_klein$=mfang_klein$+MKI$(&X11110001111000)
  10172. mfang_klein$=mfang_klein$+MKI$(&X11001110011000)
  10173. mfang_klein$=mfang_klein$+MKI$(&X11001110011000)
  10174. mfang_klein$=mfang_klein$+MKI$(&X11111111111000)
  10175. mfang_klein$=mfang_klein$+MKI$(&X11111111111000)
  10176. mfang_klein$=mfang_klein$+MKI$(&X0)
  10177. mfang_klein$=mfang_klein$+MKI$(&X0)
  10178. mfang_klein$=mfang_klein$+MKI$(&X0)
  10179. '
  10180. mfang_klein$=mfang_klein$+MKI$(&X0)
  10181. mfang_klein$=mfang_klein$+MKI$(&X0)
  10182. mfang_klein$=mfang_klein$+MKI$(&X0)
  10183. mfang_klein$=mfang_klein$+MKI$(&X1111111110000)
  10184. mfang_klein$=mfang_klein$+MKI$(&X1000100010000)
  10185. mfang_klein$=mfang_klein$+MKI$(&X1000100010000)
  10186. mfang_klein$=mfang_klein$+MKI$(&X1000000010000)
  10187. mfang_klein$=mfang_klein$+MKI$(&X1110001110000)
  10188. mfang_klein$=mfang_klein$+MKI$(&X1000000010000)
  10189. mfang_klein$=mfang_klein$+MKI$(&X1000100010000)
  10190. mfang_klein$=mfang_klein$+MKI$(&X1000100010000)
  10191. mfang_klein$=mfang_klein$+MKI$(&X1111111110000)
  10192. mfang_klein$=mfang_klein$+MKI$(&X0)
  10193. mfang_klein$=mfang_klein$+MKI$(&X0)
  10194. mfang_klein$=mfang_klein$+MKI$(&X0)
  10195. mfang_klein$=mfang_klein$+MKI$(&X0)
  10196. '
  10197. mdaten$=MKI$(7)+MKI$(7)+MKI$(1)+MKI$(0)+MKI$(1)
  10198. mdaten$=mdaten$+MKI$(&X1110000000)
  10199. mdaten$=mdaten$+MKI$(&X1110000000)
  10200. mdaten$=mdaten$+MKI$(&X1110000000)
  10201. mdaten$=mdaten$+MKI$(&X1110000000)
  10202. mdaten$=mdaten$+MKI$(&X1110000000)
  10203. mdaten$=mdaten$+MKI$(&X1110000000)
  10204. mdaten$=mdaten$+MKI$(&X1111110001111110)
  10205. mdaten$=mdaten$+MKI$(&X1111110001111110)
  10206. mdaten$=mdaten$+MKI$(&X1111110001111110)
  10207. mdaten$=mdaten$+MKI$(&X1110000000)
  10208. mdaten$=mdaten$+MKI$(&X1110000000)
  10209. mdaten$=mdaten$+MKI$(&X1110000000)
  10210. mdaten$=mdaten$+MKI$(&X1110000000)
  10211. mdaten$=mdaten$+MKI$(&X1110000000)
  10212. mdaten$=mdaten$+MKI$(&X1110000000)
  10213. mdaten$=mdaten$+MKI$(&X0)
  10214. '
  10215. mdaten$=mdaten$+MKI$(&X100000000)
  10216. mdaten$=mdaten$+MKI$(&X100000000)
  10217. mdaten$=mdaten$+MKI$(&X100000000)
  10218. mdaten$=mdaten$+MKI$(&X100000000)
  10219. mdaten$=mdaten$+MKI$(&X100000000)
  10220. mdaten$=mdaten$+MKI$(&X100000000)
  10221. mdaten$=mdaten$+MKI$(&X0)
  10222. mdaten$=mdaten$+MKI$(&X1111110001111110)
  10223. mdaten$=mdaten$+MKI$(&X0)
  10224. mdaten$=mdaten$+MKI$(&X100000000)
  10225. mdaten$=mdaten$+MKI$(&X100000000)
  10226. mdaten$=mdaten$+MKI$(&X100000000)
  10227. mdaten$=mdaten$+MKI$(&X100000000)
  10228. mdaten$=mdaten$+MKI$(&X100000000)
  10229. mdaten$=mdaten$+MKI$(&X100000000)
  10230. mdaten$=mdaten$+MKI$(&X0)
  10231. '
  10232. schwer$=MKI$(7)+MKI$(7)+MKI$(-1)+MKI$(0)+MKI$(1)
  10233. schwer$=schwer$+MKI$(&X0)                     !
  10234. schwer$=schwer$+MKI$(&X0)
  10235. schwer$=schwer$+MKI$(&X11111000000)           !
  10236. schwer$=schwer$+MKI$(&X11111000000)
  10237. schwer$=schwer$+MKI$(&X1100111110000)         !
  10238. schwer$=schwer$+MKI$(&X1100111110000)
  10239. schwer$=schwer$+MKI$(&X10000111111000)        !
  10240. schwer$=schwer$+MKI$(&X10000111111000)
  10241. schwer$=schwer$+MKI$(&X10000111111000)        !
  10242. schwer$=schwer$+MKI$(&X10000111111000)
  10243. schwer$=schwer$+MKI$(&X100000111111100)       !
  10244. schwer$=schwer$+MKI$(&X100000111111100)
  10245. schwer$=schwer$+MKI$(&X100000111111100)       !
  10246. schwer$=schwer$+MKI$(&X100000111111100)
  10247. schwer$=schwer$+MKI$(&X111111011111100)       !!
  10248. schwer$=schwer$+MKI$(&X111111011111100)
  10249. schwer$=schwer$+MKI$(&X111111100000100)       !
  10250. schwer$=schwer$+MKI$(&X111111100000100)
  10251. schwer$=schwer$+MKI$(&X111111100000100)       !
  10252. schwer$=schwer$+MKI$(&X111111100000100)
  10253. schwer$=schwer$+MKI$(&X11111100001000)        !
  10254. schwer$=schwer$+MKI$(&X11111100001000)
  10255. schwer$=schwer$+MKI$(&X11111100001000)        !
  10256. schwer$=schwer$+MKI$(&X11111100001000)
  10257. schwer$=schwer$+MKI$(&X1111100110000)         !
  10258. schwer$=schwer$+MKI$(&X1111100110000)
  10259. schwer$=schwer$+MKI$(&X11111000000)           !
  10260. schwer$=schwer$+MKI$(&X11111000000)
  10261. schwer$=schwer$+MKI$(&X0)                     !
  10262. schwer$=schwer$+MKI$(&X0)
  10263. schwer$=schwer$+MKI$(&X0)                     !
  10264. schwer$=schwer$+MKI$(&X0)
  10265. pfad_read
  10266. reset
  10267. RESERVE -64*1024
  10268. DIM work%((FRE(0)-80*1024)/4)
  10269. daten_ptr%=V:work%(0)
  10270. work_space%=DIM?(work%())*4
  10271. KEYPAD 8
  10272. ~RSRC_LOAD("SYS\CUTOUT.RSC")
  10273. ~RSRC_GADDR(0,tree00&,tree0_adr%)
  10274. ~RSRC_GADDR(0,tree01&,tree1_adr%)
  10275. ~RSRC_GADDR(0,tree02&,tree2_adr%)
  10276. ~RSRC_GADDR(0,tree03&,tree3_adr%)
  10277. ~RSRC_GADDR(0,tree04&,tree4_adr%)
  10278. ~RSRC_GADDR(0,tree05&,tree5_adr%)
  10279. ~RSRC_GADDR(0,tree06&,tree6_adr%)
  10280. ~RSRC_GADDR(0,tree07&,tree7_adr%)
  10281. ~RSRC_GADDR(0,tree08&,tree8_adr%)
  10282. ~RSRC_GADDR(0,tree09&,tree9_adr%)
  10283. ~RSRC_GADDR(0,tree10&,tree10_adr%)
  10284. ~RSRC_GADDR(0,tree11&,tree11_adr%)
  10285. ~RSRC_GADDR(0,tree12&,tree12_adr%)
  10286. ~RSRC_GADDR(0,tree13&,tree13_adr%)
  10287. ~RSRC_GADDR(0,tree14&,tree14_adr%)
  10288. ~RSRC_GADDR(0,tree15&,tree15_adr%)
  10289. ~RSRC_GADDR(0,tree16&,tree16_adr%)
  10290. ~RSRC_GADDR(0,tree17&,tree17_adr%)
  10291. ~RSRC_GADDR(0,tree18&,tree18_adr%)
  10292. ~RSRC_GADDR(0,tree19&,tree19_adr%)
  10293. ~RSRC_GADDR(0,tree20&,tree20_adr%)
  10294. ~RSRC_GADDR(0,tree21&,tree21_adr%)
  10295. ~RSRC_GADDR(0,tree22&,tree22_adr%)
  10296. ~RSRC_GADDR(0,tree23&,tree23_adr%)
  10297. ~RSRC_GADDR(0,tree24&,tree24_adr%)
  10298. ~RSRC_GADDR(0,tree25&,tree25_adr%)
  10299. ~RSRC_GADDR(0,tree26&,tree26_adr%)
  10300. ~RSRC_GADDR(0,tree27&,tree27_adr%)
  10301. ~RSRC_GADDR(0,tree28&,tree28_adr%)
  10302. ~RSRC_GADDR(0,tree29&,tree29_adr%)
  10303. ~RSRC_GADDR(0,tree30&,tree30_adr%)
  10304. ~RSRC_GADDR(0,tree31&,tree31_adr%)
  10305. ~RSRC_GADDR(0,tree32&,tree32_adr%)
  10306. ~RSRC_GADDR(0,tree33&,tree33_adr%)
  10307. ~RSRC_GADDR(0,tree34&,tree34_adr%)
  10308. ~RSRC_GADDR(0,tree35&,tree35_adr%)
  10309. ~RSRC_GADDR(0,tree36&,tree36_adr%)
  10310. ~RSRC_GADDR(0,tree37&,tree37_adr%)
  10311. ~RSRC_GADDR(0,tree38&,tree38_adr%)
  10312. ~RSRC_GADDR(0,tree39&,tree39_adr%)
  10313. ~RSRC_GADDR(0,tree40&,tree40_adr%)
  10314. ~RSRC_GADDR(0,tree41&,tree41_adr%)
  10315. ~FORM_CENTER(tree6_adr%)
  10316. ~FORM_CENTER(tree7_adr%)
  10317. ~FORM_CENTER(tree8_adr%)
  10318. ~FORM_CENTER(tree10_adr%)
  10319. ~FORM_CENTER(tree11_adr%)
  10320. ~FORM_CENTER(tree12_adr%)
  10321. ~FORM_CENTER(tree13_adr%)
  10322. ~FORM_CENTER(tree14_adr%)
  10323. ~FORM_CENTER(tree15_adr%)
  10324. ~FORM_CENTER(tree16_adr%)
  10325. ~FORM_CENTER(tree17_adr%)
  10326. ~FORM_CENTER(tree18_adr%)
  10327. ~FORM_CENTER(tree19_adr%)
  10328. ~FORM_CENTER(tree20_adr%)
  10329. ~FORM_CENTER(tree21_adr%)
  10330. ~FORM_CENTER(tree22_adr%)
  10331. ~FORM_CENTER(tree23_adr%)
  10332. ~FORM_CENTER(tree24_adr%)
  10333. ~FORM_CENTER(tree26_adr%)
  10334. ~FORM_CENTER(tree27_adr%)
  10335. ~FORM_CENTER(tree28_adr%)
  10336. ~FORM_CENTER(tree29_adr%)
  10337. ~FORM_CENTER(tree30_adr%)
  10338. ~FORM_CENTER(tree31_adr%)
  10339. ~FORM_CENTER(tree32_adr%)
  10340. ~FORM_CENTER(tree33_adr%)
  10341. ~FORM_CENTER(tree35_adr%)
  10342. ~FORM_CENTER(tree36_adr%)
  10343. ~FORM_CENTER(tree37_adr%)
  10344. ~FORM_CENTER(tree38_adr%)
  10345. ~FORM_CENTER(tree39_adr%)
  10346. ~FORM_CENTER(tree40_adr%)
  10347. ~FORM_CENTER(tree41_adr%)
  10348. xt6&=DPEEK(tree6_adr%+16)
  10349. yt6&=DPEEK(tree6_adr%+18)
  10350. bt6&=DPEEK(tree6_adr%+20)
  10351. ht6&=DPEEK(tree6_adr%+22)
  10352. xt7&=DPEEK(tree7_adr%+16)
  10353. yt7&=DPEEK(tree7_adr%+18)
  10354. bt7&=DPEEK(tree7_adr%+20)
  10355. ht7&=DPEEK(tree7_adr%+22)
  10356. xt8&=DPEEK(tree8_adr%+16)
  10357. yt8&=DPEEK(tree8_adr%+18)
  10358. bt8&=DPEEK(tree8_adr%+20)
  10359. ht8&=DPEEK(tree8_adr%+22)
  10360. xt10&=DPEEK(tree10_adr%+16)
  10361. yt10&=DPEEK(tree10_adr%+18)
  10362. bt10&=DPEEK(tree10_adr%+20)
  10363. ht10&=DPEEK(tree10_adr%+22)
  10364. xt11&=DPEEK(tree11_adr%+16)
  10365. yt11&=DPEEK(tree11_adr%+18)
  10366. bt11&=DPEEK(tree11_adr%+20)
  10367. ht11&=DPEEK(tree11_adr%+22)
  10368. xt12&=DPEEK(tree12_adr%+16)
  10369. yt12&=DPEEK(tree12_adr%+18)
  10370. bt12&=DPEEK(tree12_adr%+20)
  10371. ht12&=DPEEK(tree12_adr%+22)
  10372. xt13&=DPEEK(tree13_adr%+16)
  10373. yt13&=DPEEK(tree13_adr%+18)
  10374. bt13&=DPEEK(tree13_adr%+20)
  10375. ht13&=DPEEK(tree13_adr%+22)
  10376. xt14&=DPEEK(tree14_adr%+16)
  10377. yt14&=DPEEK(tree14_adr%+18)
  10378. bt14&=DPEEK(tree14_adr%+20)
  10379. ht14&=DPEEK(tree14_adr%+22)
  10380. xt15&=DPEEK(tree15_adr%+16)
  10381. yt15&=DPEEK(tree15_adr%+18)
  10382. bt15&=DPEEK(tree15_adr%+20)
  10383. ht15&=DPEEK(tree15_adr%+22)
  10384. xt16&=DPEEK(tree16_adr%+16)
  10385. yt16&=DPEEK(tree16_adr%+18)
  10386. bt16&=DPEEK(tree16_adr%+20)
  10387. ht16&=DPEEK(tree16_adr%+22)
  10388. xt17&=DPEEK(tree17_adr%+16)
  10389. yt17&=DPEEK(tree17_adr%+18)
  10390. bt17&=DPEEK(tree17_adr%+20)
  10391. ht17&=DPEEK(tree17_adr%+22)
  10392. xt18&=DPEEK(tree18_adr%+16)
  10393. yt18&=DPEEK(tree18_adr%+18)
  10394. bt18&=DPEEK(tree18_adr%+20)
  10395. ht18&=DPEEK(tree18_adr%+22)
  10396. xt19&=DPEEK(tree19_adr%+16)
  10397. yt19&=DPEEK(tree19_adr%+18)
  10398. bt19&=DPEEK(tree19_adr%+20)
  10399. ht19&=DPEEK(tree19_adr%+22)
  10400. xt20&=DPEEK(tree20_adr%+16)
  10401. yt20&=DPEEK(tree20_adr%+18)
  10402. bt20&=DPEEK(tree20_adr%+20)
  10403. ht20&=DPEEK(tree20_adr%+22)
  10404. xt21&=DPEEK(tree21_adr%+16)
  10405. yt21&=DPEEK(tree21_adr%+18)
  10406. bt21&=DPEEK(tree21_adr%+20)
  10407. ht21&=DPEEK(tree21_adr%+22)
  10408. xt22&=DPEEK(tree22_adr%+16)
  10409. yt22&=DPEEK(tree22_adr%+18)
  10410. bt22&=DPEEK(tree22_adr%+20)
  10411. ht22&=DPEEK(tree22_adr%+22)
  10412. xt23&=DPEEK(tree23_adr%+16)
  10413. yt23&=DPEEK(tree23_adr%+18)
  10414. bt23&=DPEEK(tree23_adr%+20)
  10415. ht23&=DPEEK(tree23_adr%+22)
  10416. DPOKE tree24_adr%+16,DPEEK(tree24_adr%+16)+200
  10417. xt24&=DPEEK(tree24_adr%+16)
  10418. yt24&=DPEEK(tree24_adr%+18)
  10419. bt24&=DPEEK(tree24_adr%+20)
  10420. ht24&=DPEEK(tree24_adr%+22)
  10421. xt26&=DPEEK(tree26_adr%+16)
  10422. yt26&=DPEEK(tree26_adr%+18)
  10423. bt26&=DPEEK(tree26_adr%+20)
  10424. ht26&=DPEEK(tree26_adr%+22)
  10425. xt27&=DPEEK(tree27_adr%+16)
  10426. yt27&=DPEEK(tree27_adr%+18)
  10427. bt27&=DPEEK(tree27_adr%+20)
  10428. ht27&=DPEEK(tree27_adr%+22)
  10429. xt28&=DPEEK(tree28_adr%+16)
  10430. yt28&=DPEEK(tree28_adr%+18)
  10431. bt28&=DPEEK(tree28_adr%+20)
  10432. ht28&=DPEEK(tree28_adr%+22)
  10433. xt29&=DPEEK(tree29_adr%+16)
  10434. yt29&=DPEEK(tree29_adr%+18)
  10435. bt29&=DPEEK(tree29_adr%+20)
  10436. ht29&=DPEEK(tree29_adr%+22)
  10437. xt30&=DPEEK(tree30_adr%+16)
  10438. yt30&=DPEEK(tree30_adr%+18)
  10439. bt30&=DPEEK(tree30_adr%+20)
  10440. ht30&=DPEEK(tree30_adr%+22)
  10441. xt31&=DPEEK(tree31_adr%+16)
  10442. yt31&=DPEEK(tree31_adr%+18)
  10443. bt31&=DPEEK(tree31_adr%+20)
  10444. ht31&=DPEEK(tree31_adr%+22)
  10445. xt32&=DPEEK(tree32_adr%+16)
  10446. yt32&=DPEEK(tree32_adr%+18)
  10447. bt32&=DPEEK(tree32_adr%+20)
  10448. ht32&=DPEEK(tree32_adr%+22)
  10449. xt35&=DPEEK(tree35_adr%+16)
  10450. yt35&=DPEEK(tree35_adr%+18)
  10451. bt35&=DPEEK(tree35_adr%+20)
  10452. ht35&=DPEEK(tree35_adr%+22)
  10453. xt33&=DPEEK(tree33_adr%+16)
  10454. yt33&=DPEEK(tree33_adr%+18)
  10455. bt33&=DPEEK(tree33_adr%+20)
  10456. ht33&=DPEEK(tree33_adr%+22)
  10457. xt36&=DPEEK(tree36_adr%+16)
  10458. yt36&=DPEEK(tree36_adr%+18)
  10459. bt36&=DPEEK(tree36_adr%+20)
  10460. ht36&=DPEEK(tree36_adr%+22)
  10461. xt37&=DPEEK(tree37_adr%+16)
  10462. yt37&=DPEEK(tree37_adr%+18)
  10463. bt37&=DPEEK(tree37_adr%+20)
  10464. ht37&=DPEEK(tree37_adr%+22)
  10465. xt38&=DPEEK(tree38_adr%+16)
  10466. yt38&=DPEEK(tree38_adr%+18)
  10467. bt38&=DPEEK(tree38_adr%+20)
  10468. ht38&=DPEEK(tree38_adr%+22)
  10469. xt39&=DPEEK(tree39_adr%+16)
  10470. yt39&=DPEEK(tree39_adr%+18)
  10471. bt39&=DPEEK(tree39_adr%+20)
  10472. ht39&=DPEEK(tree39_adr%+22)
  10473. xt40&=DPEEK(tree40_adr%+16)
  10474. yt40&=DPEEK(tree40_adr%+18)
  10475. bt40&=DPEEK(tree40_adr%+20)
  10476. ht40&=DPEEK(tree40_adr%+22)
  10477. xt41&=DPEEK(tree41_adr%+16)
  10478. yt41&=DPEEK(tree41_adr%+18)
  10479. bt41&=DPEEK(tree41_adr%+20)
  10480. ht41&=DPEEK(tree41_adr%+22)
  10481. bt_output&=OB_W(tree40_adr%,pl100&)
  10482. CHAR{{OB_SPEC(tree6_adr%,t_hoehe&)}}=STR$(INT(zeichen_hoehe%/100))
  10483. CHAR{{OB_SPEC(tree7_adr%,zabs&)}}=STR$(INT(zeilen_abstand_prozent%))
  10484. CHAR{{OB_SPEC(tree9_adr%,z_char&)}}=CHR$(z_ascii_old%+32)
  10485. CHAR{{OB_SPEC(tree8_adr%,string_text&)}}=abc$
  10486. CHAR{{OB_SPEC(tree12_adr%,bstep&)}}=STR$(b_vari/100)
  10487. CHAR{{OB_SPEC(tree13_adr%,punkte&)}}=STR$(pointer%)
  10488. CHAR{{OB_SPEC(tree13_adr%,rest&)}}=STR$(p_max%-pointer%)
  10489. CHAR{{OB_SPEC(tree13_adr%,version&)}}=revision$
  10490. CHAR{{OB_SPEC(tree14_adr%,rx1&)}}=STR$(folie_x%)
  10491. CHAR{{OB_SPEC(tree14_adr%,ry1&)}}=STR$(folie_y%)
  10492. CHAR{{OB_SPEC(tree14_adr%,rx2&)}}=STR$(folie_x2%)
  10493. CHAR{{OB_SPEC(tree14_adr%,ry2&)}}=STR$(folie_y2%)
  10494. CHAR{{OB_SPEC(tree14_adr%,rx3&)}}=STR$(folie_x3%)
  10495. CHAR{{OB_SPEC(tree14_adr%,ry3&)}}=STR$(folie_y3%)
  10496. CHAR{{OB_SPEC(tree15_adr%,p_init1&)}}=p_init1$
  10497. CHAR{{OB_SPEC(tree15_adr%,p_init2&)}}=p_init2$
  10498. CHAR{{OB_SPEC(tree15_adr%,overcut&)}}=STR$(overcut|/10)
  10499. CHAR{{OB_SPEC(tree15_adr%,ma&)}}=ma$
  10500. CHAR{{OB_SPEC(tree15_adr%,da&)}}=da$
  10501. CHAR{{OB_SPEC(tree17_adr%,outl&)}}="3.0"
  10502. CHAR{{OB_SPEC(tree18_adr%,schraffd&)}}=STR$(schraff_dist/100)
  10503. CHAR{{OB_SPEC(tree18_adr%,schraffi&)}}=STR$(schraff_inc/100)
  10504. CHAR{{OB_SPEC(tree18_adr%,schraffw&)}}=STR$(schraff_winkel)
  10505. CHAR{{OB_SPEC(tree18_adr%,schrafix&)}}=STR$(schraff_fix_abst)
  10506. CHAR{{OB_SPEC(tree21_adr%,t_step&)}}=STR$(bit_count_max|)
  10507. CHAR{{OB_SPEC(tree21_adr%,t_gerade&)}}=STR$(geraden_fehler|)
  10508. CHAR{{OB_SPEC(tree21_adr%,t_schmutz&)}}=STR$(schmutz_filter%)
  10509. CHAR{{OB_SPEC(tree21_adr%,bschwelle&)}}=STR$(lange_gerade%/100)
  10510. CHAR{{OB_SPEC(tree21_adr%,knickwinkel&)}}=STR$(CINT(DEG(knick_winkel_max)))
  10511. CHAR{{OB_SPEC(tree21_adr%,bogen_max&)}}=STR$(CINT(DEG(bogen_max*2)))
  10512. CHAR{{OB_SPEC(tree21_adr%,abweichung_gerade&)}}=STR$(abweichung_gerade%/100)
  10513. CHAR{{OB_SPEC(tree22_adr%,scann_x&)}}="1664"
  10514. CHAR{{OB_SPEC(tree22_adr%,scann_y&)}}="800"
  10515. CHAR{{OB_SPEC(tree23_adr%,radius&)}}="10"
  10516. CHAR{{OB_SPEC(tree27_adr%,calamus_nr&)}}=STR$(calamus_nr%)
  10517. CHAR{{OB_SPEC(tree29_adr%,kostfak&)}}=STR$(kostfak)
  10518. CHAR{{OB_SPEC(tree31_adr%,anz_rot&)}}="3"
  10519. CHAR{{OB_SPEC(tree31_adr%,phi_rot&)}}="90"
  10520. OB_STATE(tree15_adr%,rs232&)=state_rs232&+16
  10521. OB_STATE(tree15_adr%,cent&)=state_rs232& XOR 1+16
  10522. OB_STATE(tree15_adr%,hp&)=state_hp&+16
  10523. OB_STATE(tree15_adr%,gp&)=state_hp& XOR 1+16
  10524. OB_STATE(tree26_adr%,absolut&)=absolut!+18
  10525. OB_STATE(tree26_adr%,relativ&)=absolut!+17
  10526. OB_STATE(tree26_adr%,polar&)=absolut!+17
  10527. IF gdu=1
  10528.   OB_STATE(tree15_adr%,gdu01&)=17
  10529. ELSE
  10530.   IF gdu=2.5
  10531.     OB_STATE(tree15_adr%,gdu025&)=17
  10532.   ELSE
  10533.     IF gdu=5
  10534.       OB_STATE(tree15_adr%,gdu05&)=17
  10535.     ELSE
  10536.       OB_STATE(tree15_adr%,gdu1&)=17
  10537.     ENDIF
  10538.   ENDIF
  10539. ENDIF
  10540. OB_STATE(tree1_adr%,lock&)=1
  10541. IF mimaki!
  10542.   OB_STATE(tree15_adr%,gdu05&)=17
  10543.   OB_STATE(tree15_adr%,gdu01&)=8
  10544.   OB_STATE(tree15_adr%,gdu025&)=8
  10545.   OB_STATE(tree15_adr%,gdu1&)=8
  10546.   OB_STATE(tree15_adr%,rs232&)=17
  10547.   OB_STATE(tree15_adr%,mgl&)=17
  10548.   OB_STATE(tree15_adr%,cent&)=16
  10549.   OB_STATE(tree15_adr%,hp&)=16
  10550.   OB_STATE(tree15_adr%,gp&)=16
  10551. ELSE
  10552.   OB_STATE(tree15_adr%,mgl&)=8
  10553. ENDIF
  10554. ~WIND_GET(0,4)                                   ! get desk size
  10555. BMOVE GINTOUT+2,tree0_adr%+16,8                  ! set into rsc
  10556. BMOVE GINTOUT+2,tree1_adr%+16,8                  ! set into rsc
  10557. BMOVE GINTOUT+2,tree2_adr%+16,8                  ! set into rsc
  10558. BMOVE GINTOUT+2,tree3_adr%+16,8                  ! set into rsc
  10559. BMOVE GINTOUT+2,tree4_adr%+16,8                  ! set into rsc
  10560. BMOVE GINTOUT+2,tree5_adr%+16,8                  ! set into rsc
  10561. BMOVE GINTOUT+2,tree9_adr%+16,8                  ! set into rsc
  10562. BMOVE GINTOUT+2,tree25_adr%+16,8                 ! set into rsc
  10563. BMOVE GINTOUT+2,tree34_adr%+16,8                 ! set into rsc
  10564. wind_newdesk(tree0_adr%,0)                       ! install  Datei Baum
  10565. IF default_font$<>""
  10566.   datei$=ein_space$
  10567.   IF EXIST(pfad_fnt$+"\"+default_font$)
  10568.     load_font(pfad_fnt$+"\"+default_font$)
  10569.     programm_font$=LEFT$(default_font$,LEN(default_font$)-4)
  10570.   ELSE
  10571.     make_new_font(-1)
  10572.   ENDIF
  10573. ELSE
  10574.   make_new_font(-1)
  10575. ENDIF
  10576. m$(0)=""
  10577. m$(1)="  CUTOUT"
  10578. m$(2)="--------------------"
  10579. m$(3)=CHR$(2)
  10580. m$(4)=CHR$(3)
  10581. m$(5)=CHR$(4)
  10582. m$(6)=CHR$(5)
  10583. m$(7)=CHR$(6)
  10584. m$(8)=CHR$(7)
  10585. m$(9)=CHR$(8)
  10586. m$(10)=""
  10587. m$(11)=pd_menu$
  10588. m$(12)=pd_datei$
  10589. m$(13)=pd_editieren$
  10590. m$(14)=pd_fenster$
  10591. m$(15)=pd_schnittpunkt$
  10592. m$(16)=pd_bogen$
  10593. m$(17)="----------------------"
  10594. m$(18)=pd_text$
  10595. m$(19)=pd_zeicheneditor$
  10596. m$(20)=m$(17)
  10597. m$(21)=pd_extra$
  10598. m$(22)=m$(17)
  10599. m$(23)=pd_quit$
  10600. m$(24)=""
  10601. m$(25)=pd_optionen$
  10602. m$(26)=pd_marker_anzeigen$
  10603. m$(27)=pd_tangenten_anzeigen$
  10604. m$(28)=pd_fangradius_klein$
  10605. m$(29)=pd_polygon_modus$
  10606. m$(30)=pd_schnittpunkt_genau$
  10607. m$(31)=pd_koordinaten$
  10608. m$(32)=pd_element_selektieren$
  10609. m$(33)=pd_polygon_selektieren$
  10610. m$(34)=pd_warnmeldungen$
  10611. m$(35)="---------------------------"
  10612. m$(36)=pd_skaliere_alles$
  10613. m$(37)=m$(35)
  10614. m$(38)=pd_punkte_nivellieren$
  10615. m$(39)=pd_tangente$
  10616. m$(40)=m$(35)
  10617. m$(41)=pd_plotflaeche$
  10618. m$(42)=pd_bezier_step_aendern$
  10619. m$(43)=pd_plotter_einstellung$
  10620. m$(44)=pd_kosten_faktor$
  10621. m$(45)=pd_pfad_sichern$
  10622. m$(46)=""
  10623. m$(47)=pd_figur$
  10624. m$(48)=pd_rechteck$
  10625. m$(49)=pd_n_eck$
  10626. m$(50)=pd_polygon_outline$
  10627. m$(51)=pd_aequidistante$
  10628. m$(52)=pd_frame$
  10629. m$(53)="---------------------------"
  10630. m$(54)=pd_polygone_ausrichten$
  10631. m$(55)=pd_polygone_zentrieren$
  10632. m$(56)=pd_polygone_vereinen$
  10633. m$(57)=pd_polygone_fuellen$
  10634. m$(58)=m$(53)
  10635. m$(59)=pd_einzelne_punkte_loeschen$
  10636. m$(60)=""
  10637. m$(61)=pd_linie$
  10638. m$(62)=pd_bezier_vektor$
  10639. m$(63)=pd_bezier_einfuegen$
  10640. m$(64)=pd_tausche_bezier_vektor$
  10641. m$(65)=m$(53)
  10642. m$(66)=pd_knacken$
  10643. m$(67)=pd_trimmen$
  10644. m$(68)=pd_lot$
  10645. m$(69)=pd_verlaengern$
  10646. m$(70)=pd_teilen$
  10647. m$(71)=pd_messen$
  10648. m$(72)=m$(53)
  10649. m$(73)=pd_schnittp_2er$
  10650. m$(74)=pd_schnittp_n$
  10651. m$(75)=""
  10652. m$(76)=pd_effekt$
  10653. m$(77)=pd_parameter_schraffur$
  10654. m$(78)=pd_polygon_schraffieren$
  10655. m$(79)=pd_alles_schraffieren$
  10656. m$(80)="------------------------"
  10657. m$(81)=pd_schatten$
  10658. m$(82)=pd_einpassen$
  10659. m$(83)=m$(80)
  10660. m$(84)=pd_kugel$
  10661. m$(85)=""
  10662. m$(86)=""
  10663. MENU m$()
  10664. IF fangklein!
  10665.   MENU 28,1
  10666. ENDIF
  10667. IF polygonmode!
  10668.   MENU 29,1
  10669. ENDIF
  10670. IF warn!
  10671.   MENU 34,1
  10672. ENDIF
  10673. CLIP 0,0,639,399 OFFSET 0,0
  10674. DEFTEXT 1,0,0,6
  10675. COLOR 1
  10676. TEXT 400,7,"Zoom X:"
  10677. TEXT 400,15,"Zoom Y:"
  10678. TEXT 540,7,"X:"
  10679. TEXT 540,15,"Y:"
  10680. DEFTEXT 1,0,0,4
  10681. TEXT 624,7,"mm"
  10682. TEXT 624,15,"mm"
  10683. LINE 536,0,536,20
  10684. LINE 396,0,396,20
  10685. '
  10686. ~FORM_DIAL(3,0,0,0,0,0,0,desk_breite&,desk_hoehe&)                !redraw all
  10687. '
  10688. layer!=FALSE
  10689. zoom=1
  10690. x_layer%=folie_x%
  10691. y_layer%=folie_y%
  10692. x_layero%=x_layer%
  10693. y_layero%=y_layer%
  10694. res_x%=x_layer%
  10695. res_y%=y_layer%
  10696. x_offset&=0
  10697. y_offset&=0
  10698. res_x_old%=x_layer%
  10699. res_y_old%=y_layer%
  10700. x_offset_old&=0
  10701. y_offset_old&=0
  10702. pointer%=0
  10703. get_desktop
  10704. scrb_old&=scrb&
  10705. scrh_old&=scrh&
  10706. CLOSEW 1
  10707. programm$=noname$
  10708. INT{WINDTAB+2}=&X111111000000
  10709. INT{WINDTAB+4}=scrx&
  10710. INT{WINDTAB+6}=scry&
  10711. INT{WINDTAB+8}=scrb&
  10712. INT{WINDTAB+10}=scrh&
  10713. help_titel
  10714. OPENW 1
  10715. calc_slid
  10716. ~WIND_GET(1,4,x_win&,y_win&,b_window&,h_window&)
  10717. neues_polygon!=TRUE
  10718. do_redraw
  10719. DEFMOUSE 3
  10720. p_zoom(zoom*100,zoom*100)
  10721. CHAR{{OB_SPEC(tree14_adr%,rx1&)}}=STR$(x_layer%)
  10722. CHAR{{OB_SPEC(tree14_adr%,ry1&)}}=STR$(y_layer%)
  10723. ' test_vollbild
  10724. '
  10725. ~OBJC_OFFSET(tree28_adr%,gtprewin&,gtxv&,gtyv&)
  10726. gtxv&=gtxv&-x_win&+1
  10727. gtyv&=gtyv&-y_win&+1
  10728. '
  10729. ON MENU MESSAGE GOSUB message
  10730. ON MENU BUTTON 1,1,1 GOSUB button
  10731. ON MENU GOSUB menu
  10732. ON MENU KEY GOSUB key
  10733. ' ON ERROR GOSUB fehler
  10734. '
  10735. '
  10736. REPEAT
  10737.   ON MENU
  10738. UNTIL end!
  10739. '
  10740. IF modified!
  10741.   IF pointer%>0
  10742.     ALERT 3,"| "+sichere$+daten$,1,ja_nein$,i%
  10743.     IF i%=1
  10744.       @save_vektor
  10745.     ENDIF
  10746.   ENDIF
  10747. ENDIF
  10748. '
  10749. ' Bei fertigen Programmen hier nur QUIT
  10750. '
  10751. reset
  10752. ~WIND_GET(0,10)
  10753. IF DPEEK(GINTOUT+2)
  10754.   ALERT 1,"Accessories",1,"Close|Quit",i%
  10755.   IF i%=2
  10756.     QUIT
  10757.   ENDIF
  10758.   REPEAT
  10759.     ~WIND_GET(0,10)
  10760.   UNTIL DPEEK(GINTOUT+2)=0
  10761. ENDIF
  10762. RESERVE                                ! XBIOS(2)-HIMEM+FRE(0)-16384
  10763. '
  10764. PROCEDURE fehler
  10765.   ALERT 1,fehler$,1,leider$,i%
  10766.   '  RESUME NEXT
  10767. RETURN
  10768. '
  10769. '
  10770. PROCEDURE get_undo
  10771.   LOCAL dp%
  10772.   dp%=daten_ptr%
  10773.   IF (pointer%*9+1<work_space%) AND (NOT layer_geladen!)
  10774.     LONG{dp%}=pointer%
  10775.     ADD dp%,4
  10776.     undo!=TRUE
  10777.     BMOVE VARPTR(punkte_x%(0)),dp%,pointer%*4
  10778.     ADD dp%,pointer%*4
  10779.     BMOVE VARPTR(punkte_y%(0)),dp%,pointer%*4
  10780.     ADD dp%,pointer%*4
  10781.     BMOVE VARPTR(punkte_def|(0)),dp%,pointer%
  10782.     undo!=TRUE
  10783.   ELSE
  10784.     undo!=FALSE
  10785.   ENDIF
  10786. RETURN
  10787. '
  10788. PROCEDURE put_undo
  10789.   LOCAL dp%
  10790.   IF undo!
  10791.     dp%=daten_ptr%
  10792.     pointer%=LONG{dp%}
  10793.     ADD dp%,4
  10794.     BMOVE dp%,VARPTR(punkte_x%(0)),pointer%*4
  10795.     ADD dp%,pointer%*4
  10796.     BMOVE dp%,VARPTR(punkte_y%(0)),pointer%*4
  10797.     ADD dp%,pointer%*4
  10798.     BMOVE dp%,VARPTR(punkte_def|(0)),pointer%
  10799.     undo!=FALSE
  10800.     do_redraw
  10801.   ENDIF
  10802. RETURN
  10803. '
  10804. PROCEDURE output_drucker
  10805.   LOCAL handle&,x_resi&,y_resi&,z_old
  10806.   IF GDOS?
  10807.     ERASE work%()
  10808.     IF FRE(0)>250000
  10809.       RESERVE -250000
  10810.       handle&=V_OPNWK(21)
  10811.       IF handle&<>0
  10812.         V~H=handle&
  10813.         x_resi&=INTOUT(0)
  10814.         y_resi&=INTOUT(1)
  10815.         ~V_CLRWK()
  10816.         z_old=zoom
  10817.         zoom=4
  10818.         redraw_ohne(0)
  10819.         ~V_UPDWK()
  10820.         ~V_CLSWK()
  10821.         zoom=z_old
  10822.       ELSE
  10823.       ENDIF
  10824.       RESERVE
  10825.     ELSE
  10826.     ENDIF
  10827.     DIM work%((FRE(0)-80*1024)/4)
  10828.     daten_ptr%=V:work%(0)
  10829.     work_space%=DIM?(work%())*4
  10830.   ELSE
  10831.   ENDIF
  10832. RETURN
  10833. '
  10834. '
  10835. PROCEDURE scan_a1
  10836.   ALERT 3,"| SCAN Hochformat: ",1,"A3|A2|A1",i%
  10837.   SELECT i%
  10838.   CASE 1
  10839.     scann_x%=INT(17*400/8)       !17
  10840.     scann_y%=INT(12*400)        !12
  10841.   CASE 2
  10842.     scann_x%=INT(25*400/8)
  10843.     scann_y%=INT(17*400)
  10844.   CASE 3
  10845.     scann_x%=INT(34*400/8)
  10846.     scann_y%=INT(25*400)
  10847.   ENDSELECT
  10848.   scan_graphtec(3,400,0,0,scann_x%,scann_y%)
  10849. RETURN
  10850. '
  10851. PROCEDURE scan_graphtec(device&,dpi&,x_0%,y_0%,bytes_x%,lines_y%)
  10852.   LOCAL command_bytes&,bytes_to_transfer%,transfer_dir&
  10853.   LOCAL y_offset%,block&,command_bytes&,bytes_to_transfer%
  10854.   ' IF FN test_unit_ready(device&)=0
  10855.   set_graphtec_window(device&,dpi&,x_0%,y_0%,bytes_x%,lines_y%)
  10856.   command_bytes&=10
  10857.   block&=&HFFFF DIV bytes_x% DIV 3
  10858.   bytes_to_transfer%=bytes_x%*block&*3
  10859.   transfer_dir&=0                               ! LESEN
  10860.   command|(0)=&H28
  10861.   command|(1)=0
  10862.   command|(2)=0
  10863.   command|(3)=0
  10864.   command|(4)=0
  10865.   command|(5)=0
  10866.   command|(6)=0
  10867.   command|(7)=0
  10868.   command|(8)=0
  10869.   command|(9)=0
  10870.   WORD{V:command|(7)}=block&
  10871.   '
  10872.   anzahl&=lines_y% DIV block&
  10873.   rest&=lines_y% MOD block&
  10874.   y_offset%=0
  10875.   FOR i%=1 TO anzahl&
  10876.     $c+
  10877.     fehler%=C:scsi%(device&,command_bytes&,bytes_to_transfer%,transfer_dir&,L:V:command|(0),L:daten_ptr%+y_offset%)
  10878.     $c-
  10879.     ADD y_offset%,block&*bytes_x%
  10880.   NEXT i%
  10881.   IF rest&<>0
  10882.     bytes_to_transfer%=bytes_x%*rest&*3
  10883.     WORD{V:command|(7)}=rest&
  10884.     $c+
  10885.     fehler%=C:scsi%(device&,command_bytes&,bytes_to_transfer%,transfer_dir&,L:V:command|(0),L:daten_ptr%+y_offset%)
  10886.     $c-
  10887.   ENDIF
  10888.   '  status&=AND(CARD(fehler%),&X11110)
  10889.   ' message&=CARD(SWAP(fehler%))
  10890.   layer!=TRUE
  10891.   layer_geladen!=TRUE
  10892.   voll_bild!=TRUE
  10893.   outlined!=FALSE
  10894.   do_change_aufloesung(bytes_x%*8,lines_y%,1)
  10895.   init_bit_blit
  10896.   p_zoom(zoom*100,zoom*100)
  10897.   do_redraw
  10898.   ' ENDIF
  10899. RETURN
  10900. '
  10901. PROCEDURE set_graphtec_window(device&,dpi&,x_0%,y_0%,bytes_x%,lines_y%)
  10902.   LOCAL command_bytes&,bytes_to_transfer%,transfer_dir&
  10903.   command_bytes&=10
  10904.   bytes_to_transfer%=53
  10905.   transfer_dir&=1                               ! LESEN (1=SCHREIBEN)
  10906.   command|(0)=&H24
  10907.   command|(1)=0
  10908.   command|(2)=0
  10909.   command|(3)=0
  10910.   command|(4)=0
  10911.   command|(5)=0
  10912.   command|(6)=0
  10913.   command|(7)=0
  10914.   command|(8)=bytes_to_transfer%
  10915.   command|(9)=0
  10916.   FOR i%=0 TO 6
  10917.     buffer|(i%)=0
  10918.   NEXT i%
  10919.   FOR i%=38 TO 47
  10920.     buffer|(i%)=0
  10921.   NEXT i%
  10922.   buffer|(7)=45                         ! Window Descriptor Block Length
  10923.   buffer|(8)=0                          ! Window ID
  10924.   buffer|(9)=0                          ! reserved
  10925.   WORD{V:buffer|(10)}=dpi&              ! X resolution
  10926.   WORD{V:buffer|(12)}=dpi&              ! Y resolution
  10927.   LONG{V:buffer|(14)}=x_0%*24           ! X Upper Left
  10928.   LONG{V:buffer|(18)}=y_0%*3            ! Y Upper Left
  10929.   LONG{V:buffer|(22)}=bytes_x%*24       ! Width
  10930.   LONG{V:buffer|(26)}=lines_y%*3        ! Length
  10931.   buffer|(30)=0                         ! reserved
  10932.   buffer|(31)=0                         ! Kontrast
  10933.   buffer|(32)=0                         ! reserved
  10934.   buffer|(33)=0                         ! Image composition
  10935.   buffer|(34)=1                         ! Bits per Pixel
  10936.   buffer|(35)=0                         ! reserved
  10937.   buffer|(36)=0                         ! reserved
  10938.   buffer|(37)=0                         ! Reverse Image
  10939.   buffer|(48)=2                         ! Cell length
  10940.   buffer|(49)=5                         ! Function Code
  10941.   buffer|(50)=1                         ! Fine Line
  10942.   buffer|(51)=2                         ! Cell length
  10943.   buffer|(52)=6                         ! Function Code
  10944.   buffer|(53)=1                         ! Scann Speed
  10945.   $c+
  10946.   fehler%=C:scsi%(device&,command_bytes&,bytes_to_transfer%,transfer_dir&,L:V:command|(0),L:V:buffer|(0))
  10947.   $c-
  10948. RETURN
  10949. '
  10950. FUNCTION test_unit_ready(device&)
  10951.   command_bytes&=6
  10952.   bytes_to_transfer%=1
  10953.   transfer_dir&=0                               ! LESEN (1=SCHREIBEN)
  10954.   command|(0)=0
  10955.   command|(1)=0
  10956.   command|(2)=0
  10957.   command|(3)=0
  10958.   command|(4)=bytes_to_transfer%
  10959.   command|(5)=0
  10960.   '
  10961.   $c+
  10962.   fehler%=C:scsi%(device&,command_bytes&,L:bytes_to_transfer%,transfer_dir&,L:V:command|(0),L:V:buffer|(0))
  10963.   $c-
  10964.   status&=AND(CARD(fehler%),&X11110)
  10965.   message&=CARD(SWAP(fehler%))
  10966.   '
  10967.   RETURN status&
  10968. ENDFUNC
  10969. '
  10970. '
  10971. PROCEDURE gt_info(i$)
  10972.   CHAR{{OB_SPEC(tree28_adr%,gtstate&)}}=i$
  10973.   ~OBJC_DRAW(tree28_adr%,gtstate&,8,xt28&,yt28&,bt28&,ht28&)
  10974. RETURN
  10975. '
  10976. PROCEDURE dpi_change(prex0&,prey0&,prex0_min&,prey0_min&)
  10977.   CHAR{{OB_SPEC(tree28_adr%,gtdpi&)}}=STR$(gtdpiv&)
  10978.   ~OBJC_DRAW(tree28_adr%,gtdpi&,8,xt28&,yt28&,bt28&,ht28&)
  10979.   CHAR{{OB_SPEC(tree28_adr%,gtb&)}}=STR$(AND(INT(gtbv&/25.4*gtdpiv&),&HFFF8))
  10980.   CHAR{{OB_SPEC(tree28_adr%,gth&)}}=STR$(AND(INT(gthv&/25.4*gtdpiv&),&HFFF8))
  10981.   ~OBJC_DRAW(tree28_adr%,gtb&,8,xt28&,yt28&,bt28&,ht28&)
  10982.   ~OBJC_DRAW(tree28_adr%,gth&,8,xt28&,yt28&,bt28&,ht28&)
  10983.   CHAR{{OB_SPEC(tree28_adr%,gtx&)}}=STR$(AND(INT((prex0&-prex0_min&)/25.4*gtdpiv&),&HFFF8))
  10984.   CHAR{{OB_SPEC(tree28_adr%,gty&)}}=STR$(AND(INT((prey0&-prey0_min&)/25.4*gtdpiv&),&HFFF8))
  10985.   ~OBJC_DRAW(tree28_adr%,gtx&,8,xt28&,yt28&,bt28&,ht28&)
  10986.   ~OBJC_DRAW(tree28_adr%,gty&,8,xt28&,yt28&,bt28&,ht28&)
  10987. RETURN
  10988. '
  10989. PROCEDURE gt_6000
  10990.   LOCAL prex0&,prey0&,prex0_min&,prey0_min&,x_changed&,y_changed&
  10991.   LOCAL prex&,prey&,gthalbton&
  10992.   DEFMOUSE 0
  10993.   SETMOUSE xt28&+240,yt28&+310,0
  10994.   CLIP 0,0,desk_breite&,desk_hoehe& OFFSET x_win&,y_win&
  10995.   ~OBJC_OFFSET(tree28_adr%,gtprewin&,prex&,prey&)
  10996.   gthalbton&=1
  10997.   prex0&=prex&-x_win&+1
  10998.   prey0&=prey&-y_win&+1
  10999.   prex0_min&=prex0&
  11000.   prey0_min&=prey0&
  11001.   prex0_max&=prex0&+217
  11002.   prey0_max&=prey0&+297
  11003.   prex0&=gtxv&
  11004.   prey0&=gtyv&
  11005.   '
  11006.   CHAR{{OB_SPEC(tree28_adr%,gtx&)}}=STR$(AND(INT((prex0&-prex0_min&)/25.4*gtdpiv&),&HFFF8))
  11007.   CHAR{{OB_SPEC(tree28_adr%,gty&)}}=STR$(AND(INT((prey0&-prey0_min&)/25.4*gtdpiv&),&HFFF8))
  11008.   CHAR{{OB_SPEC(tree28_adr%,gtb&)}}=STR$(AND(INT(gtbv&/25.4*gtdpiv&),&HFFF8))
  11009.   CHAR{{OB_SPEC(tree28_adr%,gth&)}}=STR$(AND(INT(gthv&/25.4*gtdpiv&),&HFFF8))
  11010.   CHAR{{OB_SPEC(tree28_adr%,gtdpi&)}}=STR$(gtdpiv&)
  11011.   CHAR{{OB_SPEC(tree28_adr%,gtstate&)}}=waehle$
  11012.   GET xt28&-4,yt28&-4,xt28&+bt28&+4,yt28&+ht28&+4,rette$
  11013.   ~OBJC_DRAW(tree28_adr%,0,8,xt28&,yt28&,bt28&,ht28&)
  11014.   smfdb%(0)=V:prebuf$
  11015.   smfdb%(1)=208
  11016.   smfdb%(2)=292
  11017.   smfdb%(3)=smfdb%(1)/16
  11018.   smfdb%(5)=1
  11019.   dmfdb%(0)=XBIOS(3)
  11020.   dmfdb%(1)=desk_breite&
  11021.   dmfdb%(2)=desk_hoehe&
  11022.   dmfdb%(3)=dmfdb%(1)/16
  11023.   dmfdb%(5)=1
  11024.   p%(0)=0
  11025.   p%(1)=0
  11026.   p%(2)=207
  11027.   p%(3)=291
  11028.   p%(4)=prex&+1
  11029.   p%(5)=prey&+1
  11030.   p%(6)=p%(4)+207
  11031.   p%(7)=p%(5)+291
  11032.   p%(8)=3
  11033.   BITBLT smfdb%(),dmfdb%(),p%()
  11034.   DEFFILL 1,1,1
  11035.   GRAPHMODE 3
  11036.   BOX prex0&,prey0&,prex0&+gtbv&,prey0&+gthv&
  11037.   PBOX prex0&+gtbv&-8,prey0&+gthv&-8,prex0&+gtbv&,prey0&+gthv&
  11038.   REPEAT
  11039.     DO
  11040.       ~FORM_DO(tree28_adr%,0)
  11041.       IF INT{GINTOUT}>0 AND INT{GINTOUT}<100
  11042.         exit_button&=DPEEK(GINTOUT)
  11043.         OB_STATE(tree28_adr%,exit_button&)=0
  11044.         IF exit_button&<>gtprewin&
  11045.           ~OBJC_DRAW(tree28_adr%,exit_button&,8,xt28&,yt28&,bt28&,ht28&)
  11046.         ENDIF
  11047.       ENDIF
  11048.       SELECT exit_button&
  11049.       CASE gtdpimin&
  11050.         IF gtdpiv&>100
  11051.           IF gtdpiv&=480
  11052.             gtdpiv&=400
  11053.           ELSE
  11054.             IF gtdpiv&=600
  11055.               gtdpiv&=480
  11056.             ELSE
  11057.               SUB gtdpiv&,100
  11058.             ENDIF
  11059.           ENDIF
  11060.           dpi_change(prex0&,prey0&,prex0_min&,prey0_min&)
  11061.         ENDIF
  11062.       CASE gtdpiplu&
  11063.         IF gtdpiv&<600
  11064.           IF gtdpiv&=400
  11065.             gtdpiv&=480
  11066.           ELSE
  11067.             IF gtdpiv&=480
  11068.               gtdpiv&=600
  11069.             ELSE
  11070.               ADD gtdpiv&,100
  11071.             ENDIF
  11072.           ENDIF
  11073.           dpi_change(prex0&,prey0&,prex0_min&,prey0_min&)
  11074.         ENDIF
  11075.       CASE gtprewin&
  11076.         MOUSE x_mouse%,y_mouse%,taste|
  11077.         IF x_mouse%>prex0&+gtbv&-8 AND x_mouse%<prex0&+gtbv& AND y_mouse%>prey0&+gthv&-8 AND y_mouse%<prey0&+gthv&
  11078.           DEFMOUSE 3
  11079.           REPEAT
  11080.             MOUSE x_mouse%,y_mouse%,taste|
  11081.             IF x_mouse%<>x_mouse_old% OR y_mouse%<>y_mouse_old%
  11082.               BOX prex0&,prey0&,prex0&+gtbv&,prey0&+gthv&
  11083.               PBOX prex0&+gtbv&-8,prey0&+gthv&-8,prex0&+gtbv&,prey0&+gthv&
  11084.               IF x_mouse%-prex0_min&<217 AND x_mouse%-prex0&>16
  11085.                 gtbv&=x_mouse%-prex0&
  11086.                 i%=AND(INT(gtbv&/25.4*gtdpiv&),&HFFF0)
  11087.                 gtbv&=CINT(i%*25.4/gtdpiv&)
  11088.               ENDIF
  11089.               IF y_mouse%-prey0_min&<298 AND y_mouse%-prey0&>16
  11090.                 gthv&=y_mouse%-prey0&
  11091.               ENDIF
  11092.               BOX prex0&,prey0&,prex0&+gtbv&,prey0&+gthv&
  11093.               PBOX prex0&+gtbv&-8,prey0&+gthv&-8,prex0&+gtbv&,prey0&+gthv&
  11094.               SHOWM
  11095.               x_mouse_old%=x_mouse%
  11096.               y_mouse_old%=y_mouse%
  11097.               CHAR{{OB_SPEC(tree28_adr%,gtb&)}}=STR$(AND(INT(gtbv&/25.4*gtdpiv&),&HFFF0))
  11098.               CHAR{{OB_SPEC(tree28_adr%,gth&)}}=STR$(INT(gthv&/25.4*gtdpiv&))
  11099.               ~OBJC_DRAW(tree28_adr%,gtb&,8,xt28&,yt28&,bt28&,ht28&)
  11100.               ~OBJC_DRAW(tree28_adr%,gth&,8,xt28&,yt28&,bt28&,ht28&)
  11101.             ENDIF
  11102.           UNTIL taste|=0
  11103.           DEFMOUSE 0
  11104.         ELSE
  11105.           IF x_mouse%>prex0& AND x_mouse%<prex0&+gtbv& AND y_mouse%>prey0& AND y_mouse%<prey0&+gthv&
  11106.             x_mouse_old%=x_mouse%
  11107.             y_mouse_old%=y_mouse%
  11108.             DEFMOUSE 3
  11109.             REPEAT
  11110.               MOUSE x_mouse%,y_mouse%,taste|
  11111.               IF x_mouse%<>x_mouse_old% OR y_mouse%<>y_mouse_old%
  11112.                 x_changed&=x_mouse%-x_mouse_old%
  11113.                 y_changed&=y_mouse%-y_mouse_old%
  11114.                 BOX prex0&,prey0&,prex0&+gtbv&,prey0&+gthv&
  11115.                 PBOX prex0&+gtbv&-8,prey0&+gthv&-8,prex0&+gtbv&,prey0&+gthv&
  11116.                 IF prex0&+x_changed&>=prex0_min& AND prex0&+x_changed&+gtbv&<prex0_max&
  11117.                   ADD prex0&,x_changed&
  11118.                 ENDIF
  11119.                 IF prey0&+y_changed&>=prey0_min& AND prey0&+y_changed&+gthv&<prey0_max&
  11120.                   ADD prey0&,y_changed&
  11121.                 ENDIF
  11122.                 BOX prex0&,prey0&,prex0&+gtbv&,prey0&+gthv&
  11123.                 PBOX prex0&+gtbv&-8,prey0&+gthv&-8,prex0&+gtbv&,prey0&+gthv&
  11124.                 SHOWM
  11125.                 x_mouse_old%=x_mouse%
  11126.                 y_mouse_old%=y_mouse%
  11127.                 CHAR{{OB_SPEC(tree28_adr%,gtx&)}}=STR$(AND(INT((prex0&-prex0_min&)/25.4*gtdpiv&),&HFFF8))
  11128.                 CHAR{{OB_SPEC(tree28_adr%,gty&)}}=STR$(AND(INT((prey0&-prey0_min&)/25.4*gtdpiv&),&HFFF8))
  11129.                 ~OBJC_DRAW(tree28_adr%,gtx&,8,xt28&,yt28&,bt28&,ht28&)
  11130.                 ~OBJC_DRAW(tree28_adr%,gty&,8,xt28&,yt28&,bt28&,ht28&)
  11131.               ENDIF
  11132.             UNTIL taste|=0
  11133.             DEFMOUSE 0
  11134.           ENDIF
  11135.         ENDIF
  11136.       CASE gtpresca&
  11137.         gt_info(scannen$+pre_view$)
  11138.         HIDEM
  11139.         gt6000%=VARPTR(gt6000$)
  11140.         $C+
  11141.         VOID C:gt6000%(1,50,3,3,gthalbton&,0,0,26,292,L:V:prebuf$,L:V:prebuf$+8000)
  11142.         $C-
  11143.         OUT (2),13
  11144.         trigger_0
  11145.         DEFMOUSE 3
  11146.         SHOWM
  11147.         BOX prex0&,prey0&,prex0&+gtbv&,prey0&+gthv&
  11148.         PBOX prex0&+gtbv&-8,prey0&+gthv&-8,prex0&+gtbv&,prey0&+gthv&
  11149.         smfdb%(0)=V:prebuf$
  11150.         BITBLT smfdb%(),dmfdb%(),p%()
  11151.         BOX prex0&,prey0&,prex0&+gtbv&,prey0&+gthv&
  11152.         PBOX prex0&+gtbv&-8,prey0&+gthv&-8,prex0&+gtbv&,prey0&+gthv&
  11153.         gt_info(waehle$)
  11154.       ENDSELECT
  11155.       EXIT IF exit_button&=gtcancel&
  11156.       EXIT IF exit_button&=gtscan&
  11157.     LOOP
  11158.     IF exit_button&=gtcancel&
  11159.       PUT xt28&-4,yt28&-4,rette$
  11160.       ok!=TRUE
  11161.     ENDIF
  11162.     IF exit_button&=gtscan&
  11163.       IF OB_STATE(tree28_adr%,gthart&)=1
  11164.         gthalbton&=0
  11165.       ELSE
  11166.         IF OB_STATE(tree28_adr%,gtweich&)=1
  11167.           gthalbton&=16
  11168.         ELSE
  11169.           IF OB_STATE(tree28_adr%,gtraster&)=1
  11170.             gthalbton&=32
  11171.           ELSE
  11172.             gthalbton&=1
  11173.           ENDIF
  11174.         ENDIF
  11175.       ENDIF
  11176.       IF OB_STATE(tree28_adr%,gtrot&)=1
  11177.         gtfarbev&=0
  11178.       ELSE
  11179.         IF OB_STATE(tree28_adr%,gtgruen&)=1
  11180.           gtfarbev&=1
  11181.         ELSE
  11182.           IF OB_STATE(tree28_adr%,gtblau&)=1
  11183.             gtfarbev&=2
  11184.           ELSE
  11185.             gtfarbev&=3
  11186.           ENDIF
  11187.         ENDIF
  11188.       ENDIF
  11189.       IF OB_STATE(tree28_adr%,k0&)=1
  11190.         gtkontrav&=0
  11191.       ELSE
  11192.         IF OB_STATE(tree28_adr%,k1&)=1
  11193.           gtkontrav&=1
  11194.         ELSE
  11195.           IF OB_STATE(tree28_adr%,k2&)=1
  11196.             gtkontrav&=2
  11197.           ELSE
  11198.             IF OB_STATE(tree28_adr%,k3&)=1
  11199.               gtkontrav&=3
  11200.             ELSE
  11201.               IF OB_STATE(tree28_adr%,k4&)=1
  11202.                 gtkontrav&=4
  11203.               ELSE
  11204.                 IF OB_STATE(tree28_adr%,k5&)=1
  11205.                   gtkontrav&=5
  11206.                 ELSE
  11207.                   gtkontrav&=6
  11208.                 ENDIF
  11209.               ENDIF
  11210.             ENDIF
  11211.           ENDIF
  11212.         ENDIF
  11213.       ENDIF
  11214.       gt_info(scannen$+bereich$)
  11215.       gtxorig&=CINT(AND(INT((prex0&+2-prex0_min&)/25.4*gtdpiv&),&HFFF8)/8)
  11216.       gtyorig&=CINT((prey0&+2-prey0_min&)/25.4*gtdpiv&)
  11217.       gtxbytes&=CINT(AND(INT(gtbv&/25.4*gtdpiv&),&HFFF0)/8)
  11218.       gtyzeilen&=CINT(gthv&/25.4*gtdpiv&)
  11219.       IF gtxbytes&*(gtyzeilen&+1)<work_space%
  11220.         HIDEM
  11221.         gt6000%=VARPTR(gt6000$)
  11222.         $C+
  11223.         i%=C:gt6000%(0,gtdpiv&,gtfarbev&,gtkontrav&,gthalbton&,gtxorig&,gtyorig&,gtxbytes&,gtyzeilen&,L:daten_ptr%,L:daten_ptr%+work_space%)
  11224.         $C-
  11225.         OUT (2),13
  11226.         trigger_0
  11227.         DEFMOUSE 3
  11228.         SHOWM
  11229.       ELSE
  11230.         i%=-1
  11231.       ENDIF
  11232.       IF i%>=0
  11233.         gt_info(waehle$)
  11234.         PUT xt28&-4,yt28&-4,rette$
  11235.         layer!=TRUE
  11236.         layer_geladen!=TRUE
  11237.         voll_bild!=TRUE
  11238.         outlined!=FALSE
  11239.         do_change_aufloesung(AND(INT(gtbv&/25.4*gtdpiv&),&HFFF0),INT(gthv&/25.4*gtdpiv&),1)
  11240.         init_bit_blit
  11241.         p_zoom(zoom*100,zoom*100)
  11242.         do_redraw
  11243.         ok!=TRUE
  11244.       ELSE
  11245.         FOR i%=1 TO 5
  11246.           gt_info(fehler$)
  11247.           PAUSE 15
  11248.           gt_info("      ")
  11249.           PAUSE 15
  11250.         NEXT i%
  11251.         gt_info(waehle$)
  11252.         ok!=FALSE
  11253.       ENDIF
  11254.     ENDIF
  11255.   UNTIL ok!
  11256.   gtxv&=prex0&
  11257.   gtyv&=prey0&
  11258.   ~WIND_GET(1,4)
  11259.   clip(x_window&,y_window&,b_window&,h_window&,INT{GINTOUT+2},INT{GINTOUT+4})
  11260.   set_clip_offset
  11261.   GRAPHMODE 1
  11262.   DEFFILL 0,0
  11263.   DEFMOUSE 3
  11264.   init_bit_blit
  11265. RETURN
  11266. '
  11267. PROCEDURE set_clip_offset
  11268.   INT{WINDTAB+64}=INT{WINDTAB+64}-x_offset&
  11269.   INT{WINDTAB+66}=INT{WINDTAB+66}-y_offset&
  11270. RETURN
  11271. '
  11272. PROCEDURE helpo(help$)
  11273.   TITLEW #1,ein_space$+help$+ein_space$
  11274.   set_clip_offset
  11275. RETURN
  11276. '
  11277. PROCEDURE help(help$)
  11278.   TITLEW #1,ein_space$+waehle$+help$+ein_space$
  11279.   set_clip_offset
  11280. RETURN
  11281. '
  11282. PROCEDURE help_titel
  11283.   TITLEW #1,ein_space$+pfad_vek$+"\"+programm$+".VEK "
  11284.   set_clip_offset
  11285.   DEFMOUSE 3
  11286.   DEFLINE 1
  11287.   COLOR 1
  11288.   GRAPHMODE 1
  11289.   p_xy_info("X:","Y:",0)
  11290.   SHOWM
  11291.   trigger_0
  11292.   zeit%=TIMER
  11293. RETURN
  11294. '
  11295. PROCEDURE polygon_fill
  11296.   REPEAT
  11297.     DEFMOUSE 0
  11298.     GET xt20&-4,yt20&-4,xt20&+bt20&+4,yt20&+ht20&+4,rette$
  11299.     SETMOUSE xt20&+bt20&/2,yt20&+160,0
  11300.     ~OBJC_DRAW(tree20_adr%,0,8,xt20&,yt20&,bt20&,ht20&)
  11301.     ~FORM_DO(tree20_adr%,0)
  11302.     exit_button&=DPEEK(GINTOUT)
  11303.     OB_STATE(tree20_adr%,exit_button&)=0
  11304.     PUT xt20&-4,yt20&-4,rette$
  11305.     IF OB_STATE(tree20_adr%,fill1&)=1
  11306.       DEFFILL 1,2,1
  11307.     ELSE IF OB_STATE(tree20_adr%,fill2&)=1
  11308.       DEFFILL 1,2,2
  11309.     ELSE IF OB_STATE(tree20_adr%,fill3&)=1
  11310.       DEFFILL 1,2,3
  11311.     ELSE IF OB_STATE(tree20_adr%,fill4&)=1
  11312.       DEFFILL 1,2,4
  11313.     ELSE IF OB_STATE(tree20_adr%,fill5&)=1
  11314.       DEFFILL 1,2,5
  11315.     ELSE IF OB_STATE(tree20_adr%,fill6&)=1
  11316.       DEFFILL 1,2,6
  11317.     ELSE IF OB_STATE(tree20_adr%,fill7&)=1
  11318.       DEFFILL 1,2,8
  11319.     ENDIF
  11320.     DEFMOUSE mdaten$
  11321.     help(help_polygon$)
  11322.     IF exit_button&<>fillcancel&
  11323.       REPEAT
  11324.         trigger_0
  11325.         wait_taste
  11326.         IF taste|<>2
  11327.           FILL x_mouse%,y_mouse%
  11328.         ENDIF
  11329.       UNTIL taste|=2
  11330.     ENDIF
  11331.   UNTIL exit_button&=fillcancel&
  11332.   ~FRE(0)
  11333.   DEFFILL 1,1
  11334.   help_titel
  11335. RETURN
  11336. '
  11337. ' *****************************************************************************
  11338. ' *                            TANGENTE NIVELLIEREN                           *
  11339. ' *                                                                           *
  11340. ' *  VERÄNDERT VAR: Punkte_X%(), Punkte_Y%()                                  *
  11341. ' *                                                                           *
  11342. ' *****************************************************************************
  11343. '
  11344. PROCEDURE do_niv_tangente(found_quelle%,von%,bis%,dreh_x%,dreh_y%)
  11345.   LOCAL phi,strecke
  11346.   dx=SUB(dreh_x%,punkte_x%(found%))
  11347.   dy=SUB(dreh_y%,punkte_y%(found%))
  11348.   strecke=SQR(dx*dx+dy*dy)
  11349.   get_phi(dreh_x%,dreh_y%,punkte_x%(found_quelle%),punkte_y%(found_quelle%),phi)
  11350.   redraw_von_bis(von%,bis%,0)
  11351.   punkte_x%(found%)=CINT(dreh_x%-strecke*COS(phi))
  11352.   punkte_y%(found%)=CINT(dreh_y%-strecke*SIN(phi))
  11353.   redraw_von_bis(von%,bis%,1)
  11354. RETURN
  11355. '
  11356. PROCEDURE tangente_nivellieren
  11357.   LOCAL found_quelle%,quelle_def|
  11358.   LOCAL von%,bis%,f%,dreh_x%,dreh_y%
  11359.   IF pointer%>1
  11360.     show_cursor_fang
  11361.     REPEAT
  11362.       trigger_0
  11363.       GRAPHMODE 1
  11364.       REPEAT
  11365.         wait_taste
  11366.         EXIT IF taste|=2
  11367.         find(x_mouse%*100/zoom,y_mouse%*100/zoom)
  11368.         quelle_def|=punkte_def|(found%)
  11369.       UNTIL (quelle_def|>da| AND quelle_def|<b3|)
  11370.       IF taste|<>2
  11371.         found_quelle%=found%
  11372.         IF quelle_def|=b1|
  11373.           IF punkte_def|(found_quelle%-1)=b3|
  11374.             found%=found_quelle%-2
  11375.             von%=found_quelle%-4
  11376.             bis%=von%+3
  11377.             dreh_x%=punkte_x%(found_quelle%-1)
  11378.             dreh_y%=punkte_y%(found_quelle%-1)
  11379.             do_niv_tangente(found_quelle%,von%,bis%,dreh_x%,dreh_y%)
  11380.           ELSE
  11381.             IF punkte_def|(found_quelle%-1)=da|
  11382.               found%=found_quelle%
  11383.               found_quelle%=found%-2
  11384.               von%=found%-1
  11385.               bis%=von%+3
  11386.               dreh_x%=punkte_x%(found%-1)
  11387.               dreh_y%=punkte_y%(found%-1)
  11388.               do_niv_tangente(found_quelle%,von%,bis%,dreh_x%,dreh_y%)
  11389.             ELSE
  11390.               IF punkte_def|(found_quelle%-1)=ma|
  11391.                 found%=found_quelle%
  11392.                 REPEAT
  11393.                   INC found%
  11394.                 UNTIL punkte_def|(found%)=ma|
  11395.                 DEC found%
  11396.                 IF punkte_def|(found%)=b3|
  11397.                   DEC found%
  11398.                   von%=found%-2
  11399.                   bis%=von%+3
  11400.                   dreh_x%=punkte_x%(found_quelle%-1)
  11401.                   dreh_y%=punkte_y%(found_quelle%-1)
  11402.                   do_niv_tangente(found_quelle%,von%,bis%,dreh_x%,dreh_y%)
  11403.                 ELSE
  11404.                   IF punkte_def|(found%)=da|
  11405.                     f%=found_quelle%
  11406.                     found_quelle%=found%-1
  11407.                     found%=f%
  11408.                     von%=found%-1
  11409.                     bis%=von%+3
  11410.                     dreh_x%=punkte_x%(found_quelle%+1)
  11411.                     dreh_y%=punkte_y%(found_quelle%+1)
  11412.                     do_niv_tangente(found_quelle%,von%,bis%,dreh_x%,dreh_y%)
  11413.                   ENDIF
  11414.                 ENDIF
  11415.               ENDIF
  11416.             ENDIF
  11417.           ENDIF
  11418.         ELSE
  11419.           IF quelle_def|=b2|
  11420.             IF punkte_def|(found_quelle%+2)=b1|
  11421.               found%=found_quelle%+2
  11422.               von%=found_quelle%+1
  11423.               bis%=von%+3
  11424.               dreh_x%=punkte_x%(found_quelle%+1)
  11425.               dreh_y%=punkte_y%(found_quelle%+1)
  11426.               do_niv_tangente(found_quelle%,von%,bis%,dreh_x%,dreh_y%)
  11427.             ELSE
  11428.               IF punkte_def|(found_quelle%+2)=da|
  11429.                 found%=found_quelle%
  11430.                 found_quelle%=found%+2
  11431.                 von%=found%-2
  11432.                 bis%=von%+3
  11433.                 dreh_x%=punkte_x%(found%+1)
  11434.                 dreh_y%=punkte_y%(found%+1)
  11435.                 do_niv_tangente(found_quelle%,von%,bis%,dreh_x%,dreh_y%)
  11436.               ELSE
  11437.                 IF punkte_def|(found_quelle%+2)=ma|
  11438.                   found%=found_quelle%
  11439.                   REPEAT
  11440.                     DEC found%
  11441.                   UNTIL punkte_def|(found%)=ma|
  11442.                   INC found%
  11443.                   IF punkte_def|(found%)=b1|
  11444.                     von%=found%-1
  11445.                     bis%=von%+3
  11446.                     dreh_x%=punkte_x%(found_quelle%+1)
  11447.                     dreh_y%=punkte_y%(found_quelle%+1)
  11448.                     do_niv_tangente(found_quelle%,von%,bis%,dreh_x%,dreh_y%)
  11449.                   ELSE
  11450.                     IF punkte_def|(found%)=da|
  11451.                       f%=found_quelle%
  11452.                       found_quelle%=found%
  11453.                       found%=f%
  11454.                       von%=found%-2
  11455.                       bis%=von%+3
  11456.                       dreh_x%=punkte_x%(found_quelle%-1)
  11457.                       dreh_y%=punkte_y%(found_quelle%-1)
  11458.                       do_niv_tangente(found_quelle%,von%,bis%,dreh_x%,dreh_y%)
  11459.                     ENDIF
  11460.                   ENDIF
  11461.                 ENDIF
  11462.               ENDIF
  11463.             ENDIF
  11464.           ENDIF
  11465.         ENDIF
  11466.       ENDIF
  11467.     UNTIL taste|=2
  11468.     DEFMOUSE 3
  11469.   ENDIF
  11470. RETURN
  11471. '
  11472. ' *****************************************************************************
  11473. ' *                               ASCII Editor                                *
  11474. ' *                                                                           *
  11475. ' *                                                                           *
  11476. ' *                                                                          ' ******************************************************************************
  11477. ' *                                                                            *
  11478. ' *                                   CUTOUT                                   *
  11479. ' *                                                                            *
  11480. ' *                                 27.02.1992                                 *
  11481. ' *                                                                            *
  11482. ' ******************************************************************************
  11483. '
  11484. '
  11485. $B+
  11486. $I-
  11487. INLINE scsi%,933
  11488. DIM buffer|(512*2)
  11489. DIM command|(12)
  11490. ' VAR:
  11491. ' apl_id&=APPL_INIT()
  11492. magic%=14031952
  11493. '
  11494. ' serien_nummer$="REGIST00"
  11495. ' serien_nummer_vergleich$="REGIST11"
  11496. serien_nummer$=MKD$(101)
  11497. serien_nummer_vergleich$=MKD$(101 XOR magic%)
  11498. '
  11499. fang_schnittpunkt|=4
  11500. buffer%=0
  11501. buffer_max%=0
  11502. poly_len%=0
  11503. bits%=0
  11504. punkt_eintrag&=0
  11505. x_start&=0
  11506. y_start&=0
  11507. edi_max&=0
  11508. m=0
  11509. m_neu=0
  11510. bit_count|=0
  11511. pixel!=FALSE
  11512. '
  11513. regist_nr%=0
  11514. revision$="1.59"
  11515. zeit%=TIMER
  11516. calamus_nr%=0
  11517. ortho|=45
  11518. ortho=RAD(ortho|)
  11519. ortho2=ortho/2
  11520. x_win&=0                                         ! Window X pos  aktuell
  11521. y_win&=0                                         ! Window Y pos  aktuell
  11522. x_window&=0                                      ! Window X pos  aktuell
  11523. y_window&=0                                      ! Window Y pos  aktuell
  11524. b_window&=0                                      ! Window Breite aktuell
  11525. h_window&=0                                      ! Window Höhe   aktuell
  11526. ~WIND_GET(0,4,scrx&,scry&,scrb&,scrh&)           ! maximaler Desktop
  11527. wmx%=scrb&-62
  11528. wmy%=scrh&-57+scry&
  11529. desk_breite&=scrb&
  11530. desk_hoehe&=scrh&+scry&
  11531. gross_bildschirm!=FALSE
  11532. IF desk_breite&>640 OR desk_hoehe&>400
  11533.   gross_bildschirm!=TRUE
  11534. ENDIF
  11535. ADD scrx&,42                                     ! Position Window X+Menuleiste
  11536. SUB scrb&,42                                     ! Breite   Window
  11537. scrb_old&=scrb&
  11538. scrh_old&=scrh&
  11539. res_x%=0                                         ! Auflösung x in mm
  11540. res_y%=0                                         ! Auflösung y in mm
  11541. res_x_old%=0
  11542. res_y_old%=0
  11543. x_layer%=0
  11544. y_layer%=0
  11545. x_layero%=0
  11546. y_layero%=0
  11547. x_offset&=0                                      ! Nullpunkt x im Fenster
  11548. y_offset&=0                                      ! Nullpunkt y im Fenster
  11549. x_offset_old&=0
  11550. y_offset_old&=0
  11551. x_mouse%=0
  11552. y_mouse%=0
  11553. x_mouse_old%=0
  11554. y_mouse_old%=0
  11555. x_mouse_0%=0
  11556. y_mouse_0%=0
  11557. objectbox_x0%=0
  11558. objectbox_y0%=0
  11559. objectbox_x1%=0
  11560. objectbox_y1%=0
  11561. grid%=10                                        ! raster mm
  11562. schraff_dist=201
  11563. schraff_inc=0
  11564. schraff_fix_abst=0
  11565. schraff_winkel=0
  11566. schraff_start%=0
  11567. schraff_y_min%=0
  11568. bit_count_max|=6
  11569. geraden_fehler|=1
  11570. lange_gerade%=4000
  11571. schmutz_filter%=20
  11572. knick_winkel_max=RAD(140)
  11573. bogen_max=PI/2/2
  11574. abweichung_gerade%=0.5*100
  11575. last_poly_s%=-1
  11576. last_poly_e%=-1
  11577. taste|=0
  11578. zoom=1
  11579. zoom_old=1
  11580. zoom_100=1
  11581. pointer%=0                                       ! Zeiger auf Punkteliste
  11582. found%=0                                         ! gefundener Punkt bei SNAP
  11583. found_t%=0                                       ! gefundener Kurvenparameter
  11584. schnittpunkt_genau%=16                           ! Zerlegung Bezier in Teile
  11585. anz_schnittpunkte%=0                             ! Anzahl Schnittpunkte
  11586. b_vari=100
  11587. i%=0                                             ! allgemeiner Schleifenzähler
  11588. ii%=0
  11589. iii%=0
  11590. d0%=0
  11591. dx%=0
  11592. dy%=0
  11593. dx=0
  11594. dy=0
  11595. schnitt_laenge=0
  11596. kostfak=1
  11597. gkosten=0
  11598. px0%=0
  11599. py0%=0
  11600. px1%=0
  11601. py1%=0
  11602. px2%=0
  11603. py2%=0
  11604. px3%=0
  11605. py3%=0
  11606. m_square_breite&=&H3000
  11607. m_square_hoehe&=&H3000
  11608. kerning_256|=m_square_breite& DIV 256
  11609. len_pair_daten&=0
  11610. z_hoehe_def%=16384                               ! Höhe des definierten Zsatzes
  11611. z_breite_def%=16384                              ! Breite     "
  11612. zeichen_hoehe%=3000                              ! gewünschte Höhe in 1/100 mm
  11613. versal_def%=0                                    ! Versal     Höhe in 1/100 mm
  11614. z_ascii_scale=zeichen_hoehe%/z_hoehe_def%        ! Scaling
  11615. z_ascii_scale_old=z_ascii_scale                  ! save Scaling
  11616. global_kerning%=1280                             ! globales Kerning
  11617. zeilen_abstand_prozent%=125                      ! relativer Zeilen Abstand
  11618. zeilen_abstand%=zeichen_hoehe%*zeilen_abstand_prozent%/100-zeichen_hoehe%
  11619. z_cursor_x_spalte%=0                             ! Start String
  11620. z_cursor_x%=0                                    ! ASCII Zeichen Cursor X
  11621. z_cursor_y%=0                                    ! ASCII Zeichen Cursor y
  11622. z_cursor_x_old%=0                                ! letztes Zeichen Cursor X
  11623. z_cursor_y_old%=0                                ! letztes Zeichen Cursor y
  11624. z_ascii_old%=0                                   ! letztes Zeichen ASCII+32
  11625. z_satz_pointer%=0                                ! Pointer auf Zeichensatz
  11626. state_rs232&=0                                   ! Centronics aktiv
  11627. state_hp&=0                                      ! HPGL aktiv
  11628. folie_x%=1188                                    ! Folien Grö₧e
  11629. folie_y%=840
  11630. plotter_x_min%=0
  11631. plotter_y_min%=0
  11632. gdu=0                                            ! 100*Plottereinheit
  11633. sel_start%=0
  11634. sel_end%=0
  11635. gtxv&=0
  11636. gtyv&=0
  11637. gtbv&=216
  11638. gthv&=297
  11639. gtdpiv&=300
  11640. gtfarbev&=3
  11641. gtkontrav&=3
  11642. exit_button&=0
  11643. cursor_x&=0
  11644. cursor_y&=0
  11645. ofn_ver|=0
  11646. overcut|=0
  11647. geschlossen%=0
  11648. '
  11649. phi_x_3d=0
  11650. phi_y_3d=0
  11651. a2_3d=0
  11652. '
  11653. daten_ptr%=0
  11654. work_space%=0
  11655. '
  11656. ' CONST:
  11657. '
  11658. IF FRE(0)>4000000
  11659.   p_max%=99999
  11660. ELSE
  11661.   p_max%=60000
  11662. ENDIF
  11663. ma|=0
  11664. da|=1
  11665. b1|=2
  11666. b2|=3
  11667. b3|=4
  11668. ein_drittel=1/3
  11669. fmin=2.225073858507E-307
  11670. fmin1=0.005
  11671. max1=0.995
  11672. pimal2=PI*2
  11673. pihalbe=PI/2
  11674. pidrittel=PI/3
  11675. fang_rad%=8*100                                  ! FANGRADIUS
  11676. p_at%=XBIOS(3)+76                                ! PRINT AT FÜR X,Y
  11677. p_at_zoom%=p_at%-12                              ! PRINT AT FÜR ZOOM
  11678. x_bytes%=(scrb&+42)/8                            ! BYTES IN X RICHTUNG DESKTOP
  11679. '
  11680. ' CONST: Menuleiste
  11681. '
  11682. tree00&=0
  11683. tree0_adr%=0
  11684. datei&=3
  11685. eintrag&=4
  11686. mfenster&=10
  11687. mtext&=5
  11688. mzedi&=6
  11689. spezial&=7
  11690. all_clear&=8
  11691. bbogen&=9
  11692. mschnitt&=11
  11693. '
  11694. tree01&=1
  11695. tree1_adr%=0
  11696. back_main&=3
  11697. fwd_main&=4
  11698. gerade&=5
  11699. kurve&=6
  11700. schliess&=7
  11701. verrunde&=8
  11702. loeschen&=9
  11703. lock&=10
  11704. snap&=11
  11705. bild&=12
  11706. zircel&=13
  11707. bezier4&=14
  11708. schere&=15
  11709. ' fenster&=15
  11710. '
  11711. tree02&=2
  11712. tree2_adr%=0
  11713. back_datei&=3
  11714. fwd_datei&=4
  11715. l_vek&=5
  11716. l_merge&=6
  11717. r_macro&=7
  11718. r_cvg&=8
  11719. l_img&=9
  11720. l_pic&=10
  11721. ordner&=11
  11722. s_vek&=12
  11723. s_plt&=13
  11724. a_plotter&=14
  11725. '
  11726. tree03&=3
  11727. tree3_adr%=0
  11728. back_fenster&=3
  11729. fwd_fenster&=4
  11730. fmove&=5
  11731. blitz&=6
  11732. fcopy&=7
  11733. fzoom&=8
  11734. fzoomp&=9
  11735. fdreh&=10
  11736. fspiegel&=11
  11737. fkursiv&=12
  11738. dreh3d&=13
  11739. drehxp&=14
  11740. drehxm&=15
  11741. drehym&=16
  11742. drehyp&=17
  11743. floesch&=18
  11744. fzoom1&=19
  11745. '
  11746. tree04&=4
  11747. tree4_adr%=0
  11748. back_spezial&=3
  11749. gtepson&=4
  11750. handy&=5
  11751. kontour&=6
  11752. filter&=7
  11753. trace&=8
  11754. smooth&=9
  11755. simag&=10
  11756. '
  11757. tree05&=5
  11758. tree5_adr%=0
  11759. back_text&=3
  11760. fwd_text&=4
  11761. z_edit&=5
  11762. z_editor&=6
  11763. z_string&=7
  11764. z_t_hoehe&=8
  11765. z_t_abstand&=9
  11766. z_g_kerning&=10
  11767. z_read_ascii&=11
  11768. l_font&=12
  11769. s_font&=14
  11770. c_font&=13
  11771. '
  11772. tree06&=6
  11773. tree6_adr%=0
  11774. t_hoehe&=1
  11775. '
  11776. tree07&=7
  11777. tree7_adr%=0
  11778. zabs&=1
  11779. '
  11780. tree08&=8                                         ! String Text
  11781. tree8_adr%=0
  11782. string_text&=1
  11783. breite&=3
  11784. string_breite&=4
  11785. versal&=5
  11786. string_versal&=6
  11787. pfad&=7
  11788. do_kerning&=8
  11789. string_kreis&=9
  11790. string_kreis_von&=10
  11791. string_kreis_bis&=11
  11792. fontname&=13
  11793. c_text&=14
  11794. icon_pair&=15
  11795. icon_trep&=16
  11796. '
  11797. tree09&=9                                         ! Zeichen Editor
  11798. tree9_adr%=0
  11799. back_editor&=3
  11800. m_matrix&=4
  11801. z_matrix&=5
  11802. move_matrix&=6
  11803. kerning_links&=7
  11804. kerning_rechts&=8
  11805. kerning_auto&=9
  11806. z_get&=10
  11807. z_muell&=11
  11808. z_up&=13
  11809. z_down&=14
  11810. z_char&=15
  11811. '
  11812. tree10&=10
  11813. tree10_adr%=0
  11814. b_kerning&=2
  11815. g_kerning&=3
  11816. '
  11817. tree11&=11                                       ! Optimier
  11818. tree11_adr%=0
  11819. del_ma&=4
  11820. del_ge&=6
  11821. del_el&=8
  11822. '
  11823. tree12&=12
  11824. tree12_adr%=0
  11825. bstep&=1
  11826. '
  11827. tree13&=13                                       ! Info
  11828. tree13_adr%=0
  11829. vernr&=7
  11830. version&=4
  11831. firma&=4
  11832. strasse&=7
  11833. stadt&=10
  11834. punkte&=15
  11835. rest&=17
  11836. '
  11837. tree14&=14                                       ! Auflösung
  11838. tree14_adr%=0
  11839. rx1&=8
  11840. ry1&=10
  11841. rx2&=12
  11842. ry2&=13
  11843. rx3&=16
  11844. ry3&=17
  11845. get_pf&=19
  11846. r1&=4
  11847. r2&=5
  11848. r3&=6
  11849. '
  11850. tree15&=15                                       ! Plotter INIT
  11851. tree15_adr%=0
  11852. p_init1&=3
  11853. p_init2&=4
  11854. gdu01&=9
  11855. gdu025&=10
  11856. gdu05&=11
  11857. gdu1&=12
  11858. overcut&=16
  11859. cent&=18
  11860. rs232&=20
  11861. hp&=23
  11862. gp&=24
  11863. mgl&=25
  11864. ma&=29
  11865. da&=30
  11866. '
  11867. tree16&=16                                       ! Pfade und Parameter
  11868. tree16_adr%=0
  11869. pv&=5
  11870. pp&=7
  11871. pfi&=9
  11872. pg&=11
  11873. pf&=13
  11874. df&=15
  11875. p1&=17
  11876. p2&=19
  11877. schnitt&=21
  11878. gdu&=23
  11879. foliex&=25
  11880. foliey&=27
  11881. warn&=29
  11882. cancel&=31
  11883. '
  11884. tree17&=17
  11885. tree17_adr%=0
  11886. outl&=1
  11887. outl_anz&=2
  11888. '
  11889. tree18&=18
  11890. tree18_adr%=0
  11891. schraffd&=1
  11892. schraffi&=2
  11893. schrafix&=3
  11894. schraffw&=4
  11895. schraffa&=7
  11896. schrafff&=8
  11897. '
  11898. tree19&=19
  11899. tree19_adr%=0
  11900. necka&=1
  11901. neckp&=2
  11902. '
  11903. tree20&=20                                      ! Füll
  11904. tree20_adr%=0
  11905. fill1&=3
  11906. fill2&=5
  11907. fill3&=7
  11908. fill4&=9
  11909. fill5&=11
  11910. fill6&=13
  11911. fill7&=15
  11912. fillcancel&=17
  11913. '
  11914. tree21&=21                                      ! Trace
  11915. tree21_adr%=0
  11916. t_step&=7
  11917. t_gerade&=8
  11918. t_schmutz&=9
  11919. bschwelle&=21
  11920. knickwinkel&=22
  11921. bogen_max&=23
  11922. abweichung_gerade&=24
  11923. nur_gerade&=13
  11924. trace_cancel&=14
  11925. gerade_bezier&=30
  11926. '
  11927. tree22&=22
  11928. tree22_adr%=0
  11929. scann_x&=1
  11930. scann_y&=2
  11931. '
  11932. tree23&=23
  11933. tree23_adr%=0
  11934. radius&=1
  11935. '
  11936. tree24&=24
  11937. tree24_adr%=0
  11938. grau&=6
  11939. stark&=7
  11940. selgrau0&=4
  11941. selgrau&=5
  11942. sellinie&=8
  11943. alle&=9
  11944. auswahl&=10
  11945. '
  11946. tree25&=25                               ! Bogen
  11947. tree25_adr%=0
  11948. backboge&=3
  11949. vkreis&=4
  11950. kreis3&=5
  11951. kreisbog&=6
  11952. bogen3&=7
  11953. bogen2&=8
  11954. ellipse&=9
  11955. elbogen&=10
  11956. eckrund&=11
  11957. '
  11958. tree26&=26                               ! Koordinaten
  11959. tree26_adr%=0
  11960. absolut&=2
  11961. relativ&=3
  11962. polar&=4
  11963. '
  11964. tree27&=27                               ! Calamus Versions Nr.
  11965. tree27_adr%=0
  11966. calamus_nr&=1
  11967. '
  11968. tree28&=28                               ! GT 6000
  11969. tree28_adr%=0
  11970. gtscan&=47
  11971. gtx&=38
  11972. gty&=44
  11973. gtb&=42
  11974. gth&=43
  11975. gtcancel&=46
  11976. gtpresca&=45
  11977. gtdpi&=35
  11978. gtdpimin&=33
  11979. gtdpiplu&=34
  11980. gtprewin&=1
  11981. gtstate&=5
  11982. gtkeiner&=9
  11983. gtraster&=10
  11984. gtweich&=11
  11985. gthart&=12
  11986. gtkeine&=15
  11987. gtrot&=18
  11988. gtgruen&=17
  11989. gtblau&=16
  11990. k0&=22
  11991. k1&=23
  11992. k2&=24
  11993. k3&=25
  11994. k4&=26
  11995. k5&=27
  11996. k6&=28
  11997. '
  11998. tree29&=29                               ! Kosten
  11999. tree29_adr%=0
  12000. kostfak&=1
  12001. sl&=2
  12002. gkosten&=4
  12003. '
  12004. tree30&=30                               ! Select Filter
  12005. tree30_adr%=0
  12006. abs_filter&=1
  12007. '
  12008. tree31&=31                               ! Select Fenster
  12009. tree31_adr%=0
  12010. ohnecopy&=1
  12011. mitcopy&=6
  12012. anz_rot&=3
  12013. phi_rot&=4
  12014. numohne&=5
  12015. ausricht_vector&=7
  12016. '
  12017. tree32&=32                               ! Select Spiegel
  12018. tree32_adr%=0
  12019. anbox&=2
  12020. anachse&=1
  12021. '
  12022. tree33&=33
  12023. tree33_adr%=0
  12024. teil&=1
  12025. '
  12026. tree34&=34                               ! Schnittpunkt
  12027. tree34_adr%=0
  12028. backschn&=3
  12029. fwdschn&=4
  12030. trimm&=5
  12031. knack&=6
  12032. lot&=7
  12033. teilen&=8
  12034. lang&=9
  12035. schnitt2&=10
  12036. schnittn&=11
  12037. delseg&=12
  12038. delel&=13
  12039. schmelz&=14
  12040. '
  12041. tree35&=35                              ! Select Copy
  12042. tree35_adr%=0
  12043. copysing&=1
  12044. copymul&=2
  12045. cx&=4
  12046. cy&=5
  12047. canz&=6
  12048. cdist&=7
  12049. '
  12050. tree36&=36                              ! Ausrichten
  12051. tree36_adr%=0
  12052. a_olinks&=1
  12053. a_oben&=2
  12054. a_orechts&=3
  12055. a_links&=4
  12056. a_mitte&=5
  12057. a_rechts&=6
  12058. a_ulinks&=7
  12059. a_unten&=8
  12060. a_urechts&=9
  12061. '
  12062. tree37&=37                              ! Scalieren
  12063. tree37_adr%=0
  12064. scale_interactiv&=1
  12065. scale_numerisch&=2
  12066. scale_breite&=4
  12067. scale_hoehe&=5
  12068. '
  12069. tree38&=38                              ! Ordner
  12070. tree38_adr%=0
  12071. ordnert&=1
  12072. ordnerok&=2
  12073. ordnerca&=3
  12074. '
  12075. tree39&=39                              ! Kerning
  12076. tree39_adr%=0
  12077. kerning_box&=1
  12078. kerning_minus&=3
  12079. kerning_plus&=4
  12080. kerning_last&=2
  12081. kerning_next&=5
  12082. kerning_exit&=6
  12083. kerning_minus2&=9
  12084. kerning_plus2&=10
  12085. kerning_last2&=8
  12086. kerning_next2&=11
  12087. kerning_clear&=7
  12088. kerning_info&=13
  12089. kerning_pair&=15
  12090. '
  12091. tree40&=40                              ! Plotter OUTPUT
  12092. tree40_adr%=0
  12093. pl100&=3
  12094. plschieber&=4
  12095. plschere&=7
  12096. plschereauf&=5
  12097. plscherezu&=6
  12098. plschere&=7
  12099. '
  12100. tree41&=41                              ! Select Neigen
  12101. tree41_adr%=0
  12102. neige_grad&=2
  12103. neige_vertical&=3
  12104. neige_horizontal&=4
  12105. neige_interaktiv&=5
  12106. '
  12107. ' FLAG:
  12108. '
  12109. undo!=FALSE
  12110. geschlossen!=FALSE
  12111. ok!=FALSE                                        ! allgemein
  12112. layer_geladen!=FALSE                             ! ist  Layer geladen
  12113. layer!=FALSE                                     ! soll Layer gezeigt werden
  12114. window_fulled!=TRUE                              ! ist  Fenster schon gro₧
  12115. voll_bild!=FALSE                                 ! ist  Fenster komplett auf Crt
  12116. eintragen!=FALSE                                 ! ist  eintragen aktiv
  12117. bogen!=FALSE
  12118. mtext!=FALSE
  12119. meditor!=FALSE
  12120. datei!=FALSE
  12121. fenster!=FALSE
  12122. schnittpunktm!=FALSE
  12123. loeschen!=FALSE                                  ! ist  loeschen aktiv
  12124. neues_polygon!=TRUE                              ! erster Punkt im Polygon
  12125. found!=FALSE                                     ! gefunden bei Fangradius
  12126. marker!=FALSE                                    ! sollen Marker gezeigt werden
  12127. marker_select!=FALSE                             ! soll   Marker selectiert
  12128. modified!=FALSE                                  ! wurde Vektorbild geändert
  12129. font_geladen!=FALSE                              ! ist ein Font geladen
  12130. outlined!=FALSE                                  ! wurde Bitmap schon outlined
  12131. auto_schraff!=TRUE
  12132. schraff_fix_abst!=FALSE
  12133. einpassen!=FALSE
  12134. tangente!=FALSE
  12135. tangenten_lock!=TRUE
  12136. warn!=FALSE
  12137. gp_gl!=FALSE                                     ! HPGL oder GPGL
  12138. tasten_rep!=FALSE
  12139. absolut!=TRUE
  12140. relativ!=FALSE
  12141. polar!=FALSE
  12142. absolut_old!=FALSE
  12143. polar_old!=FALSE
  12144. fangklein!=FALSE                                 ! Fangradius gro₧
  12145. fadenkreuz!=FALSE
  12146. polygonmode!=TRUE                                ! Polygonmodus
  12147. ortho!=FALSE
  12148. grid!=FALSE
  12149. scrolled!=FALSE
  12150. move!=FALSE
  12151. drei_d!=FALSE
  12152. status_wechsel!=FALSE
  12153. grid_wechsel!=FALSE
  12154. swap!=FALSE
  12155. '
  12156. ' ARRAY:
  12157. '
  12158. DIM smfdb%(8),dmfdb%(8),p%(8)
  12159. DIM z_smfdb%(8),z_dmfdb%(8),z_p%(8),q_dmfdb%(8)
  12160. DIM punkte_x%(p_max%),punkte_y%(p_max%),punkte_def|(p_max%),buffer%(p_max%/2)
  12161. DIM x_meta%(127),y_meta%(127),punkte_def1|(32)
  12162. ARRAYFILL punkte_def1|(),1
  12163. DIM bezier_x&(33),bezier_y&(33)
  12164. DIM m$(87)
  12165. DIM mk%(60,2)
  12166. DIM m_square%(5)
  12167. DIM z_editor%(32)
  12168. DIM z_ascii%(224),z_kerning&(224*16),z_daten&(224*280),z_pair&(224),z_pair|(224),z_pair_daten|(2000)
  12169. DIM sx1%(9),sy1%(9),sx2%(9),sy2%(9),sp1(9),sp2(9)
  12170. DIM zeilen_buffer$(60)
  12171. rette$=SPACE$(32000)
  12172. pfad$=SPACE$(80)
  12173. kerning_string$=SPACE$(60)
  12174. pfad_pic$=SPACE$(80)
  12175. pfad_img$=SPACE$(80)
  12176. pfad_vek$=SPACE$(80)
  12177. pfad_vek_root$=SPACE$(80)
  12178. pfad_cvg$=SPACE$(80)
  12179. pfad_fnt$=SPACE$(80)
  12180. pfad_cfn$=SPACE$(80)
  12181. default_font$=SPACE$(10)
  12182. programm$=SPACE$(10)
  12183. programm_font$=SPACE$(10)
  12184. test_datei$=SPACE$(10)
  12185. object$=SPACE$(80)
  12186. p_init1$=SPACE$(40)
  12187. p_init2$=SPACE$(40)
  12188. abc$="CutOut Test"
  12189. ma$="M"
  12190. da$="D"
  12191. cutout_font$="CUTOUTOFN"
  12192. calamus_font_grafik$=MKI$(159)+MKI$(15)+MKI$(1)+SPACE$(320)
  12193. ok$="OK"
  12194. ein_space$=" "
  12195. x_y$="X|Y"
  12196. erster$="1. "
  12197. zweiter$="2. "
  12198. help_on$="ON "
  12199. help_off$="OFF"
  12200. vek$="VEK"
  12201. cvg$="CVG"
  12202. img$="IMG"
  12203. plt$="PLT"
  12204. calamus$="CALAMUS"
  12205. cutout$="CutOut"
  12206. ' ****************************************************************************
  12207. OPEN "I",#1,"SYS\LANGUAGE.DRV"
  12208. LINE INPUT #1,pd_menu$
  12209. LINE INPUT #1,pd_datei$
  12210. LINE INPUT #1,pd_editieren$
  12211. LINE INPUT #1,pd_fenster$
  12212. LINE INPUT #1,pd_schnittpunkt$
  12213. LINE INPUT #1,pd_bogen$
  12214. LINE INPUT #1,pd_text$
  12215. LINE INPUT #1,pd_zeicheneditor$
  12216. LINE INPUT #1,pd_extra$
  12217. LINE INPUT #1,pd_quit$
  12218. '
  12219. LINE INPUT #1,pd_optionen$
  12220. LINE INPUT #1,pd_marker_anzeigen$
  12221. LINE INPUT #1,pd_tangenten_anzeigen$
  12222. LINE INPUT #1,pd_fangradius_klein$
  12223. LINE INPUT #1,pd_polygon_modus$
  12224. LINE INPUT #1,pd_schnittpunkt_genau$
  12225. LINE INPUT #1,pd_koordinaten$
  12226. LINE INPUT #1,pd_element_selektieren$
  12227. LINE INPUT #1,pd_polygon_selektieren$
  12228. LINE INPUT #1,pd_warnmeldungen$
  12229. LINE INPUT #1,pd_skaliere_alles$
  12230. LINE INPUT #1,pd_punkte_nivellieren$
  12231. LINE INPUT #1,pd_tangente$
  12232. LINE INPUT #1,pd_plotflaeche$
  12233. LINE INPUT #1,pd_bezier_step_aendern$
  12234. LINE INPUT #1,pd_plotter_einstellung$
  12235. LINE INPUT #1,pd_kosten_faktor$
  12236. LINE INPUT #1,pd_pfad_sichern$
  12237. '
  12238. LINE INPUT #1,pd_figur$
  12239. LINE INPUT #1,pd_rechteck$
  12240. LINE INPUT #1,pd_n_eck$
  12241. LINE INPUT #1,pd_polygon_outline$
  12242. LINE INPUT #1,pd_aequidistante$
  12243. LINE INPUT #1,pd_frame$
  12244. LINE INPUT #1,pd_polygone_ausrichten$
  12245. LINE INPUT #1,pd_polygone_zentrieren$
  12246. LINE INPUT #1,pd_polygone_vereinen$
  12247. LINE INPUT #1,pd_polygone_fuellen$
  12248. LINE INPUT #1,pd_einzelne_punkte_loeschen$
  12249. '
  12250. LINE INPUT #1,pd_linie$
  12251. LINE INPUT #1,pd_bezier_vektor$
  12252. LINE INPUT #1,pd_bezier_einfuegen$
  12253. LINE INPUT #1,pd_tausche_bezier_vektor$
  12254. LINE INPUT #1,pd_knacken$
  12255. LINE INPUT #1,pd_trimmen$
  12256. LINE INPUT #1,pd_lot$
  12257. LINE INPUT #1,pd_verlaengern$
  12258. LINE INPUT #1,pd_teilen$
  12259. LINE INPUT #1,pd_messen$
  12260. LINE INPUT #1,pd_schnittp_2er$
  12261. LINE INPUT #1,pd_schnittp_n$
  12262. '
  12263. LINE INPUT #1,pd_effekt$
  12264. LINE INPUT #1,pd_parameter_schraffur$
  12265. LINE INPUT #1,pd_polygon_schraffieren$
  12266. LINE INPUT #1,pd_alles_schraffieren$
  12267. LINE INPUT #1,pd_schatten$
  12268. LINE INPUT #1,pd_einpassen$
  12269. LINE INPUT #1,pd_kugel$
  12270. '
  12271. LINE INPUT #1,lade$
  12272. LINE INPUT #1,sichere$
  12273. LINE INPUT #1,fuege_ein$
  12274. LINE INPUT #1,vektor$
  12275. LINE INPUT #1,macro$
  12276. LINE INPUT #1,daten$
  12277. LINE INPUT #1,zeichensatz$
  12278. LINE INPUT #1,kein$
  12279. LINE INPUT #1,keine$
  12280. LINE INPUT #1,ja_nein$
  12281. LINE INPUT #1,waehle$
  12282. LINE INPUT #1,fehler$
  12283. LINE INPUT #1,scannen$
  12284. LINE INPUT #1,pre_view$
  12285. LINE INPUT #1,ascii_importieren$
  12286. LINE INPUT #1,ascii_exportieren$
  12287. LINE INPUT #1,schriftblock$
  12288. LINE INPUT #1,radius_zu$
  12289. LINE INPUT #1,winkel_zu$
  12290. LINE INPUT #1,leider$
  12291. LINE INPUT #1,winkel_einstellen$
  12292. LINE INPUT #1,spiegelachse$
  12293. LINE INPUT #1,lupe_mal$
  12294. LINE INPUT #1,fensterbereich$
  12295. LINE INPUT #1,drehzentrum$
  12296. LINE INPUT #1,ordner_exist$
  12297. LINE INPUT #1,kein_leer$
  12298. LINE INPUT #1,suche_schnittpunkte$
  12299. LINE INPUT #1,gleiches_polygon$
  12300. LINE INPUT #1,bezugs$
  12301. LINE INPUT #1,zentriere$
  12302. LINE INPUT #1,huellkurve$
  12303. LINE INPUT #1,huellkurve1$
  12304. LINE INPUT #1,berechne$
  12305. LINE INPUT #1,rechte_taste$
  12306. LINE INPUT #1,endpunkt$
  12307. LINE INPUT #1,lot_an$
  12308. LINE INPUT #1,noname$
  12309. LINE INPUT #1,symbol$
  12310. LINE INPUT #1,orginal_fenster$
  12311. LINE INPUT #1,dmc_font$
  12312. LINE INPUT #1,bild_datei_zu$
  12313. LINE INPUT #1,stad_laden$
  12314. LINE INPUT #1,plotter_ist_off$
  12315. LINE INPUT #1,plot_datei$
  12316. LINE INPUT #1,kein_treiber$
  12317. LINE INPUT #1,schnittstelle_auf$
  12318. LINE INPUT #1,polygone_vereinen$
  12319. LINE INPUT #1,loesche_einzelne$
  12320. LINE INPUT #1,quelle$
  12321. LINE INPUT #1,ziel$
  12322. LINE INPUT #1,nivelliere$
  12323. LINE INPUT #1,alle_daten_l$
  12324. LINE INPUT #1,ganzer_zeichensatz$
  12325. LINE INPUT #1,font_daten_loeschen$
  12326. LINE INPUT #1,zeichen_matrix$
  12327. LINE INPUT #1,datei_existiert$
  12328. LINE INPUT #1,datei_ueberschreiben$
  12329. LINE INPUT #1,glaetten_mit$
  12330. LINE INPUT #1,gerade_bezier$
  12331. LINE INPUT #1,glaetten$
  12332. LINE INPUT #1,bereich$
  12333. LINE INPUT #1,path$
  12334. LINE INPUT #1,help_mittelpunkt$
  12335. LINE INPUT #1,help_radius$
  12336. LINE INPUT #1,help_position$
  12337. LINE INPUT #1,help_startwinkel$
  12338. LINE INPUT #1,help_endwinkel$
  12339. LINE INPUT #1,help_polygon$
  12340. LINE INPUT #1,help_punkt$
  12341. LINE INPUT #1,help_linie$
  12342. LINE INPUT #1,help_element$
  12343. LINE INPUT #1,help_verrund$
  12344. LINE INPUT #1,help_loesche$
  12345. LINE INPUT #1,help_trenn$
  12346. LINE INPUT #1,help_move$
  12347. LINE INPUT #1,help_sel$
  12348. LINE INPUT #1,help_move_window$
  12349. LINE INPUT #1,help_rahmen$
  12350. LINE INPUT #1,help_edit$
  12351. LINE INPUT #1,help_bezier$
  12352. LINE INPUT #1,help_status$
  12353. LINE INPUT #1,help_ortho$
  12354. LINE INPUT #1,help_grid$
  12355. LINE INPUT #1,help_free$
  12356. LINE INPUT #1,help_snap$
  12357. LINE INPUT #1,help_editor$
  12358. LINE INPUT #1,help_pfad$
  12359. CLOSE #1
  12360. ' ****************************************************************************
  12361. integer%=VARPTR(punkte_x%(1))-VARPTR(punkte_x%(0))  ! Länge in Bytes Integer
  12362. '
  12363. z_editor%(0)=2048                                   ! Top      Line   Y
  12364. z_editor%(1)=3072                                   ! Ascent   Line   Y
  12365. z_editor%(2)=6144                                   ! Half     Line   Y
  12366. z_editor%(3)=11264                                  ! Base     Line   Y
  12367. z_editor%(4)=13952                                  ! Descent  Line   Y
  12368. z_editor%(5)=14336                                  ! Bottom   Line   Y
  12369. '
  12370. z_editor%(6)=0                                      ! Matrix   links  X
  12371. z_editor%(7)=16384                                  ! Matrix   rechts X
  12372. z_editor%(8)=1280                                   ! Kerning  links  X
  12373. z_editor%(9)=1280                                   ! Kerning  links  X
  12374. z_editor%(10)=1280                                  ! Kerning  links  X
  12375. z_editor%(11)=1280                                  ! Kerning  links  X
  12376. z_editor%(12)=1280                                  ! Kerning  links  X
  12377. z_editor%(13)=1280                                  ! Kerning  links  X
  12378. z_editor%(14)=1280                                  ! Kerning  links  X
  12379. z_editor%(15)=1280                                  ! Kerning  links  X
  12380. z_editor%(16)=15104                                 ! Kerning  rechts X
  12381. z_editor%(17)=15104                                 ! Kerning  rechts X
  12382. z_editor%(18)=15104                                 ! Kerning  rechts X
  12383. z_editor%(19)=15104                                 ! Kerning  rechts X
  12384. z_editor%(20)=15104                                 ! Kerning  rechts X
  12385. z_editor%(21)=15104                                 ! Kerning  rechts X
  12386. z_editor%(22)=15104                                 ! Kerning  rechts X
  12387. z_editor%(23)=15104                                 ! Kerning  rechts X
  12388. z_editor%(24)=z_editor%(0)                          ! Kerning         Y
  12389. z_editor%(25)=(z_editor%(5)-z_editor%(0))/8         ! Kerning         Y
  12390. z_editor%(26)=z_editor%(24)+z_editor%(25)           ! Kerning         Y
  12391. z_editor%(27)=z_editor%(26)+z_editor%(25)           ! Kerning         Y
  12392. z_editor%(28)=z_editor%(27)+z_editor%(25)           ! Kerning         Y
  12393. z_editor%(29)=z_editor%(28)+z_editor%(25)           ! Kerning         Y
  12394. z_editor%(30)=z_editor%(29)+z_editor%(25)           ! Kerning         Y
  12395. z_editor%(31)=z_editor%(30)+z_editor%(25)           ! Kerning         Y
  12396. z_editor%(32)=0                                     ! Matrix oben     Y
  12397. '
  12398. ' ******************************************************************************
  12399. ' *                                                                            *
  12400. ' *                             MENU INITIALISIERUNG                           *
  12401. ' *                                                                            *
  12402. ' ******************************************************************************
  12403. '
  12404. BMOVE V:serien_nummer$,V:serien_nummer,8
  12405. BMOVE V:serien_nummer_vergleich$,V:serien_nummer_vergleich,8
  12406. regist_nr%=serien_nummer_vergleich
  12407. IF serien_nummer<>(serien_nummer_vergleich XOR magic%)
  12408.   PRINT "SORRY HACKER"
  12409.   PAUSE 300
  12410.   SYSTEM
  12411. ENDIF
  12412. INLINE zasm_ptr%,4136
  12413. INLINE pack_img%,958
  12414. INLINE calc_bezier%,1050
  12415. INLINE p_num%,360
  12416. INLINE find_line%,356
  12417. INLINE kontour%,216
  12418. INLINE staddec%,184
  12419. INLINE imgdec%,228
  12420. INLINE findexcept%,52
  12421. INLINE findpointexcept%,70
  12422. mfang$=MKI$(7)+MKI$(7)+MKI$(1)+MKI$(0)+MKI$(1)
  12423. mfang$=mfang$+MKI$(&X1111111111111110)
  12424. mfang$=mfang$+MKI$(&X1111111111111110)
  12425. mfang$=mfang$+MKI$(&X1100001110000110)
  12426. mfang$=mfang$+MKI$(&X1100001110000110)
  12427. mfang$=mfang$+MKI$(&X1100001110000110)
  12428. mfang$=mfang$+MKI$(&X1100001110000110)
  12429. mfang$=mfang$+MKI$(&X1111110001111110)
  12430. mfang$=mfang$+MKI$(&X1111110001111110)
  12431. mfang$=mfang$+MKI$(&X1111110001111110)
  12432. mfang$=mfang$+MKI$(&X1100001110000110)
  12433. mfang$=mfang$+MKI$(&X1100001110000110)
  12434. mfang$=mfang$+MKI$(&X1100001110000110)
  12435. mfang$=mfang$+MKI$(&X1100001110000110)
  12436. mfang$=mfang$+MKI$(&X1111111111111110)
  12437. mfang$=mfang$+MKI$(&X1111111111111110)
  12438. mfang$=mfang$+MKI$(&X0)
  12439. '
  12440. mfang$=mfang$+MKI$(&X1111111111111110)
  12441. mfang$=mfang$+MKI$(&X1000000100000010)
  12442. mfang$=mfang$+MKI$(&X1000000100000010)
  12443. mfang$=mfang$+MKI$(&X1000000100000010)
  12444. mfang$=mfang$+MKI$(&X1000000100000010)
  12445. mfang$=mfang$+MKI$(&X1000000100000010)
  12446. mfang$=mfang$+MKI$(&X1000000000000010)
  12447. mfang$=mfang$+MKI$(&X1111110001111110)
  12448. mfang$=mfang$+MKI$(&X1000000000000010)
  12449. mfang$=mfang$+MKI$(&X1000000100000010)
  12450. mfang$=mfang$+MKI$(&X1000000100000010)
  12451. mfang$=mfang$+MKI$(&X1000000100000010)
  12452. mfang$=mfang$+MKI$(&X1000000100000010)
  12453. mfang$=mfang$+MKI$(&X1000000100000010)
  12454. mfang$=mfang$+MKI$(&X1111111111111110)
  12455. mfang$=mfang$+MKI$(&X0)
  12456. '
  12457. mfang_klein$=MKI$(7)+MKI$(7)+MKI$(1)+MKI$(0)+MKI$(1)
  12458. mfang_klein$=mfang_klein$+MKI$(&X0)
  12459. mfang_klein$=mfang_klein$+MKI$(&X0)
  12460. mfang_klein$=mfang_klein$+MKI$(&X11111111111000)
  12461. mfang_klein$=mfang_klein$+MKI$(&X11111111111000)
  12462. mfang_klein$=mfang_klein$+MKI$(&X11001110011000)
  12463. mfang_klein$=mfang_klein$+MKI$(&X11001110011000)
  12464. mfang_klein$=mfang_klein$+MKI$(&X11110001111000)
  12465. mfang_klein$=mfang_klein$+MKI$(&X11110001111000)
  12466. mfang_klein$=mfang_klein$+MKI$(&X11110001111000)
  12467. mfang_klein$=mfang_klein$+MKI$(&X11001110011000)
  12468. mfang_klein$=mfang_klein$+MKI$(&X11001110011000)
  12469. mfang_klein$=mfang_klein$+MKI$(&X11111111111000)
  12470. mfang_klein$=mfang_klein$+MKI$(&X11111111111000)
  12471. mfang_klein$=mfang_klein$+MKI$(&X0)
  12472. mfang_klein$=mfang_klein$+MKI$(&X0)
  12473. mfang_klein$=mfang_klein$+MKI$(&X0)
  12474. '
  12475. mfang_klein$=mfang_klein$+MKI$(&X0)
  12476. mfang_klein$=mfang_klein$+MKI$(&X0)
  12477. mfang_klein$=mfang_klein$+MKI$(&X0)
  12478. mfang_klein$=mfang_klein$+MKI$(&X1111111110000)
  12479. mfang_klein$=mfang_klein$+MKI$(&X1000100010000)
  12480. mfang_klein$=mfang_klein$+MKI$(&X1000100010000)
  12481. mfang_klein$=mfang_klein$+MKI$(&X1000000010000)
  12482. mfang_klein$=mfang_klein$+MKI$(&X1110001110000)
  12483. mfang_klein$=mfang_klein$+MKI$(&X1000000010000)
  12484. mfang_klein$=mfang_klein$+MKI$(&X1000100010000)
  12485. mfang_klein$=mfang_klein$+MKI$(&X1000100010000)
  12486. mfang_klein$=mfang_klein$+MKI$(&X1111111110000)
  12487. mfang_klein$=mfang_klein$+MKI$(&X0)
  12488. mfang_klein$=mfang_klein$+MKI$(&X0)
  12489. mfang_klein$=mfang_klein$+MKI$(&X0)
  12490. mfang_klein$=mfang_klein$+MKI$(&X0)
  12491. '
  12492. mdaten$=MKI$(7)+MKI$(7)+MKI$(1)+MKI$(0)+MKI$(1)
  12493. mdaten$=mdaten$+MKI$(&X1110000000)
  12494. mdaten$=mdaten$+MKI$(&X1110000000)
  12495. mdaten$=mdaten$+MKI$(&X1110000000)
  12496. mdaten$=mdaten$+MKI$(&X1110000000)
  12497. mdaten$=mdaten$+MKI$(&X1110000000)
  12498. mdaten$=mdaten$+MKI$(&X1110000000)
  12499. mdaten$=mdaten$+MKI$(&X1111110001111110)
  12500. mdaten$=mdaten$+MKI$(&X1111110001111110)
  12501. mdaten$=mdaten$+MKI$(&X1111110001111110)
  12502. mdaten$=mdaten$+MKI$(&X1110000000)
  12503. mdaten$=mdaten$+MKI$(&X1110000000)
  12504. mdaten$=mdaten$+MKI$(&X1110000000)
  12505. mdaten$=mdaten$+MKI$(&X1110000000)
  12506. mdaten$=mdaten$+MKI$(&X1110000000)
  12507. mdaten$=mdaten$+MKI$(&X1110000000)
  12508. mdaten$=mdaten$+MKI$(&X0)
  12509. '
  12510. mdaten$=mdaten$+MKI$(&X100000000)
  12511. mdaten$=mdaten$+MKI$(&X100000000)
  12512. mdaten$=mdaten$+MKI$(&X100000000)
  12513. mdaten$=mdaten$+MKI$(&X100000000)
  12514. mdaten$=mdaten$+MKI$(&X100000000)
  12515. mdaten$=mdaten$+MKI$(&X100000000)
  12516. mdaten$=mdaten$+MKI$(&X0)
  12517. mdaten$=mdaten$+MKI$(&X1111110001111110)
  12518. mdaten$=mdaten$+MKI$(&X0)
  12519. mdaten$=mdaten$+MKI$(&X100000000)
  12520. mdaten$=mdaten$+MKI$(&X100000000)
  12521. mdaten$=mdaten$+MKI$(&X100000000)
  12522. mdaten$=mdaten$+MKI$(&X100000000)
  12523. mdaten$=mdaten$+MKI$(&X100000000)
  12524. mdaten$=mdaten$+MKI$(&X100000000)
  12525. mdaten$=mdaten$+MKI$(&X0)
  12526. '
  12527. schwer$=MKI$(7)+MKI$(7)+MKI$(-1)+MKI$(0)+MKI$(1)
  12528. schwer$=schwer$+MKI$(&X0)                     !
  12529. schwer$=schwer$+MKI$(&X0)
  12530. schwer$=schwer$+MKI$(&X11111000000)           !
  12531. schwer$=schwer$+MKI$(&X11111000000)
  12532. schwer$=schwer$+MKI$(&X1100111110000)         !
  12533. schwer$=schwer$+MKI$(&X1100111110000)
  12534. schwer$=schwer$+MKI$(&X10000111111000)        !
  12535. schwer$=schwer$+MKI$(&X10000111111000)
  12536. schwer$=schwer$+MKI$(&X10000111111000)        !
  12537. schwer$=schwer$+MKI$(&X10000111111000)
  12538. schwer$=schwer$+MKI$(&X100000111111100)       !
  12539. schwer$=schwer$+MKI$(&X100000111111100)
  12540. schwer$=schwer$+MKI$(&X100000111111100)       !
  12541. schwer$=schwer$+MKI$(&X100000111111100)
  12542. schwer$=schwer$+MKI$(&X111111011111100)       !!
  12543. schwer$=schwer$+MKI$(&X111111011111100)
  12544. schwer$=schwer$+MKI$(&X111111100000100)       !
  12545. schwer$=schwer$+MKI$(&X111111100000100)
  12546. schwer$=schwer$+MKI$(&X111111100000100)       !
  12547. schwer$=schwer$+MKI$(&X111111100000100)
  12548. schwer$=schwer$+MKI$(&X11111100001000)        !
  12549. schwer$=schwer$+MKI$(&X11111100001000)
  12550. schwer$=schwer$+MKI$(&X11111100001000)        !
  12551. schwer$=schwer$+MKI$(&X11111100001000)
  12552. schwer$=schwer$+MKI$(&X1111100110000)         !
  12553. schwer$=schwer$+MKI$(&X1111100110000)
  12554. schwer$=schwer$+MKI$(&X11111000000)           !
  12555. schwer$=schwer$+MKI$(&X11111000000)
  12556. schwer$=schwer$+MKI$(&X0)                     !
  12557. schwer$=schwer$+MKI$(&X0)
  12558. schwer$=schwer$+MKI$(&X0)                     !
  12559. schwer$=schwer$+MKI$(&X0)
  12560. pfad_read
  12561. reset
  12562. RESERVE -64*1024
  12563. DIM work%((FRE(0)-80*1024)/4)
  12564. daten_ptr%=V:work%(0)
  12565. work_space%=DIM?(work%())*4
  12566. KEYPAD 8
  12567. ~RSRC_LOAD("SYS\CUTOUT.RSC")
  12568. ~RSRC_GADDR(0,tree00&,tree0_adr%)
  12569. ~RSRC_GADDR(0,tree01&,tree1_adr%)
  12570. ~RSRC_GADDR(0,tree02&,tree2_adr%)
  12571. ~RSRC_GADDR(0,tree03&,tree3_adr%)
  12572. ~RSRC_GADDR(0,tree04&,tree4_adr%)
  12573. ~RSRC_GADDR(0,tree05&,tree5_adr%)
  12574. ~RSRC_GADDR(0,tree06&,tree6_adr%)
  12575. ~RSRC_GADDR(0,tree07&,tree7_adr%)
  12576. ~RSRC_GADDR(0,tree08&,tree8_adr%)
  12577. ~RSRC_GADDR(0,tree09&,tree9_adr%)
  12578. ~RSRC_GADDR(0,tree10&,tree10_adr%)
  12579. ~RSRC_GADDR(0,tree11&,tree11_adr%)
  12580. ~RSRC_GADDR(0,tree12&,tree12_adr%)
  12581. ~RSRC_GADDR(0,tree13&,tree13_adr%)
  12582. ~RSRC_GADDR(0,tree14&,tree14_adr%)
  12583. ~RSRC_GADDR(0,tree15&,tree15_adr%)
  12584. ~RSRC_GADDR(0,tree16&,tree16_adr%)
  12585. ~RSRC_GADDR(0,tree17&,tree17_adr%)
  12586. ~RSRC_GADDR(0,tree18&,tree18_adr%)
  12587. ~RSRC_GADDR(0,tree19&,tree19_adr%)
  12588. ~RSRC_GADDR(0,tree20&,tree20_adr%)
  12589. ~RSRC_GADDR(0,tree21&,tree21_adr%)
  12590. ~RSRC_GADDR(0,tree22&,tree22_adr%)
  12591. ~RSRC_GADDR(0,tree23&,tree23_adr%)
  12592. ~RSRC_GADDR(0,tree24&,tree24_adr%)
  12593. ~RSRC_GADDR(0,tree25&,tree25_adr%)
  12594. ~RSRC_GADDR(0,tree26&,tree26_adr%)
  12595. ~RSRC_GADDR(0,tree27&,tree27_adr%)
  12596. ~RSRC_GADDR(0,tree28&,tree28_adr%)
  12597. ~RSRC_GADDR(0,tree29&,tree29_adr%)
  12598. ~RSRC_GADDR(0,tree30&,tree30_adr%)
  12599. ~RSRC_GADDR(0,tree31&,tree31_adr%)
  12600. ~RSRC_GADDR(0,tree32&,tree32_adr%)
  12601. ~RSRC_GADDR(0,tree33&,tree33_adr%)
  12602. ~RSRC_GADDR(0,tree34&,tree34_adr%)
  12603. ~RSRC_GADDR(0,tree35&,tree35_adr%)
  12604. ~RSRC_GADDR(0,tree36&,tree36_adr%)
  12605. ~RSRC_GADDR(0,tree37&,tree37_adr%)
  12606. ~RSRC_GADDR(0,tree38&,tree38_adr%)
  12607. ~RSRC_GADDR(0,tree39&,tree39_adr%)
  12608. ~RSRC_GADDR(0,tree40&,tree40_adr%)
  12609. ~RSRC_GADDR(0,tree41&,tree41_adr%)
  12610. ~FORM_CENTER(tree6_adr%)
  12611. ~FORM_CENTER(tree7_adr%)
  12612. ~FORM_CENTER(tree8_adr%)
  12613. ~FORM_CENTER(tree10_adr%)
  12614. ~FORM_CENTER(tree11_adr%)
  12615. ~FORM_CENTER(tree12_adr%)
  12616. ~FORM_CENTER(tree13_adr%)
  12617. ~FORM_CENTER(tree14_adr%)
  12618. ~FORM_CENTER(tree15_adr%)
  12619. ~FORM_CENTER(tree16_adr%)
  12620. ~FORM_CENTER(tree17_adr%)
  12621. ~FORM_CENTER(tree18_adr%)
  12622. ~FORM_CENTER(tree19_adr%)
  12623. ~FORM_CENTER(tree20_adr%)
  12624. ~FORM_CENTER(tree21_adr%)
  12625. ~FORM_CENTER(tree22_adr%)
  12626. ~FORM_CENTER(tree23_adr%)
  12627. ~FORM_CENTER(tree24_adr%)
  12628. ~FORM_CENTER(tree26_adr%)
  12629. ~FORM_CENTER(tree27_adr%)
  12630. ~FORM_CENTER(tree28_adr%)
  12631. ~FORM_CENTER(tree29_adr%)
  12632. ~FORM_CENTER(tree30_adr%)
  12633. ~FORM_CENTER(tree31_adr%)
  12634. ~FORM_CENTER(tree32_adr%)
  12635. ~FORM_CENTER(tree33_adr%)
  12636. ~FORM_CENTER(tree35_adr%)
  12637. ~FORM_CENTER(tree36_adr%)
  12638. ~FORM_CENTER(tree37_adr%)
  12639. ~FORM_CENTER(tree38_adr%)
  12640. ~FORM_CENTER(tree39_adr%)
  12641. ~FORM_CENTER(tree40_adr%)
  12642. ~FORM_CENTER(tree41_adr%)
  12643. xt6&=DPEEK(tree6_adr%+16)
  12644. yt6&=DPEEK(tree6_adr%+18)
  12645. bt6&=DPEEK(tree6_adr%+20)
  12646. ht6&=DPEEK(tree6_adr%+22)
  12647. xt7&=DPEEK(tree7_adr%+16)
  12648. yt7&=DPEEK(tree7_adr%+18)
  12649. bt7&=DPEEK(tree7_adr%+20)
  12650. ht7&=DPEEK(tree7_adr%+22)
  12651. xt8&=DPEEK(tree8_adr%+16)
  12652. yt8&=DPEEK(tree8_adr%+18)
  12653. bt8&=DPEEK(tree8_adr%+20)
  12654. ht8&=DPEEK(tree8_adr%+22)
  12655. xt10&=DPEEK(tree10_adr%+16)
  12656. yt10&=DPEEK(tree10_adr%+18)
  12657. bt10&=DPEEK(tree10_adr%+20)
  12658. ht10&=DPEEK(tree10_adr%+22)
  12659. xt11&=DPEEK(tree11_adr%+16)
  12660. yt11&=DPEEK(tree11_adr%+18)
  12661. bt11&=DPEEK(tree11_adr%+20)
  12662. ht11&=DPEEK(tree11_adr%+22)
  12663. xt12&=DPEEK(tree12_adr%+16)
  12664. yt12&=DPEEK(tree12_adr%+18)
  12665. bt12&=DPEEK(tree12_adr%+20)
  12666. ht12&=DPEEK(tree12_adr%+22)
  12667. xt13&=DPEEK(tree13_adr%+16)
  12668. yt13&=DPEEK(tree13_adr%+18)
  12669. bt13&=DPEEK(tree13_adr%+20)
  12670. ht13&=DPEEK(tree13_adr%+22)
  12671. xt14&=DPEEK(tree14_adr%+16)
  12672. yt14&=DPEEK(tree14_adr%+18)
  12673. bt14&=DPEEK(tree14_adr%+20)
  12674. ht14&=DPEEK(tree14_adr%+22)
  12675. xt15&=DPEEK(tree15_adr%+16)
  12676. yt15&=DPEEK(tree15_adr%+18)
  12677. bt15&=DPEEK(tree15_adr%+20)
  12678. ht15&=DPEEK(tree15_adr%+22)
  12679. xt16&=DPEEK(tree16_adr%+16)
  12680. yt16&=DPEEK(tree16_adr%+18)
  12681. bt16&=DPEEK(tree16_adr%+20)
  12682. ht16&=DPEEK(tree16_adr%+22)
  12683. xt17&=DPEEK(tree17_adr%+16)
  12684. yt17&=DPEEK(tree17_adr%+18)
  12685. bt17&=DPEEK(tree17_adr%+20)
  12686. ht17&=DPEEK(tree17_adr%+22)
  12687. xt18&=DPEEK(tree18_adr%+16)
  12688. yt18&=DPEEK(tree18_adr%+18)
  12689. bt18&=DPEEK(tree18_adr%+20)
  12690. ht18&=DPEEK(tree18_adr%+22)
  12691. xt19&=DPEEK(tree19_adr%+16)
  12692. yt19&=DPEEK(tree19_adr%+18)
  12693. bt19&=DPEEK(tree19_adr%+20)
  12694. ht19&=DPEEK(tree19_adr%+22)
  12695. xt20&=DPEEK(tree20_adr%+16)
  12696. yt20&=DPEEK(tree20_adr%+18)
  12697. bt20&=DPEEK(tree20_adr%+20)
  12698. ht20&=DPEEK(tree20_adr%+22)
  12699. xt21&=DPEEK(tree21_adr%+16)
  12700. yt21&=DPEEK(tree21_adr%+18)
  12701. bt21&=DPEEK(tree21_adr%+20)
  12702. ht21&=DPEEK(tree21_adr%+22)
  12703. xt22&=DPEEK(tree22_adr%+16)
  12704. yt22&=DPEEK(tree22_adr%+18)
  12705. bt22&=DPEEK(tree22_adr%+20)
  12706. ht22&=DPEEK(tree22_adr%+22)
  12707. xt23&=DPEEK(tree23_adr%+16)
  12708. yt23&=DPEEK(tree23_adr%+18)
  12709. bt23&=DPEEK(tree23_adr%+20)
  12710. ht23&=DPEEK(tree23_adr%+22)
  12711. DPOKE tree24_adr%+16,DPEEK(tree24_adr%+16)+200
  12712. xt24&=DPEEK(tree24_adr%+16)
  12713. yt24&=DPEEK(tree24_adr%+18)
  12714. bt24&=DPEEK(tree24_adr%+20)
  12715. ht24&=DPEEK(tree24_adr%+22)
  12716. xt26&=DPEEK(tree26_adr%+16)
  12717. yt26&=DPEEK(tree26_adr%+18)
  12718. bt26&=DPEEK(tree26_adr%+20)
  12719. ht26&=DPEEK(tree26_adr%+22)
  12720. xt27&=DPEEK(tree27_adr%+16)
  12721. yt27&=DPEEK(tree27_adr%+18)
  12722. bt27&=DPEEK(tree27_adr%+20)
  12723. ht27&=DPEEK(tree27_adr%+22)
  12724. xt28&=DPEEK(tree28_adr%+16)
  12725. yt28&=DPEEK(tree28_adr%+18)
  12726. bt28&=DPEEK(tree28_adr%+20)
  12727. ht28&=DPEEK(tree28_adr%+22)
  12728. xt29&=DPEEK(tree29_adr%+16)
  12729. yt29&=DPEEK(tree29_adr%+18)
  12730. bt29&=DPEEK(tree29_adr%+20)
  12731. ht29&=DPEEK(tree29_adr%+22)
  12732. xt30&=DPEEK(tree30_adr%+16)
  12733. yt30&=DPEEK(tree30_adr%+18)
  12734. bt30&=DPEEK(tree30_adr%+20)
  12735. ht30&=DPEEK(tree30_adr%+22)
  12736. xt31&=DPEEK(tree31_adr%+16)
  12737. yt31&=DPEEK(tree31_adr%+18)
  12738. bt31&=DPEEK(tree31_adr%+20)
  12739. ht31&=DPEEK(tree31_adr%+22)
  12740. xt32&=DPEEK(tree32_adr%+16)
  12741. yt32&=DPEEK(tree32_adr%+18)
  12742. bt32&=DPEEK(tree32_adr%+20)
  12743. ht32&=DPEEK(tree32_adr%+22)
  12744. xt35&=DPEEK(tree35_adr%+16)
  12745. yt35&=DPEEK(tree35_adr%+18)
  12746. bt35&=DPEEK(tree35_adr%+20)
  12747. ht35&=DPEEK(tree35_adr%+22)
  12748. xt33&=DPEEK(tree33_adr%+16)
  12749. yt33&=DPEEK(tree33_adr%+18)
  12750. bt33&=DPEEK(tree33_adr%+20)
  12751. ht33&=DPEEK(tree33_adr%+22)
  12752. xt36&=DPEEK(tree36_adr%+16)
  12753. yt36&=DPEEK(tree36_adr%+18)
  12754. bt36&=DPEEK(tree36_adr%+20)
  12755. ht36&=DPEEK(tree36_adr%+22)
  12756. xt37&=DPEEK(tree37_adr%+16)
  12757. yt37&=DPEEK(tree37_adr%+18)
  12758. bt37&=DPEEK(tree37_adr%+20)
  12759. ht37&=DPEEK(tree37_adr%+22)
  12760. xt38&=DPEEK(tree38_adr%+16)
  12761. yt38&=DPEEK(tree38_adr%+18)
  12762. bt38&=DPEEK(tree38_adr%+20)
  12763. ht38&=DPEEK(tree38_adr%+22)
  12764. xt39&=DPEEK(tree39_adr%+16)
  12765. yt39&=DPEEK(tree39_adr%+18)
  12766. bt39&=DPEEK(tree39_adr%+20)
  12767. ht39&=DPEEK(tree39_adr%+22)
  12768. xt40&=DPEEK(tree40_adr%+16)
  12769. yt40&=DPEEK(tree40_adr%+18)
  12770. bt40&=DPEEK(tree40_adr%+20)
  12771. ht40&=DPEEK(tree40_adr%+22)
  12772. xt41&=DPEEK(tree41_adr%+16)
  12773. yt41&=DPEEK(tree41_adr%+18)
  12774. bt41&=DPEEK(tree41_adr%+20)
  12775. ht41&=DPEEK(tree41_adr%+22)
  12776. bt_output&=OB_W(tree40_adr%,pl100&)
  12777. CHAR{{OB_SPEC(tree6_adr%,t_hoehe&)}}=STR$(INT(zeichen_hoehe%/100))
  12778. CHAR{{OB_SPEC(tree7_adr%,zabs&)}}=STR$(INT(zeilen_abstand_prozent%))
  12779. CHAR{{OB_SPEC(tree9_adr%,z_char&)}}=CHR$(z_ascii_old%+32)
  12780. CHAR{{OB_SPEC(tree8_adr%,string_text&)}}=abc$
  12781. CHAR{{OB_SPEC(tree12_adr%,bstep&)}}=STR$(b_vari/100)
  12782. CHAR{{OB_SPEC(tree13_adr%,punkte&)}}=STR$(pointer%)
  12783. CHAR{{OB_SPEC(tree13_adr%,rest&)}}=STR$(p_max%-pointer%)
  12784. CHAR{{OB_SPEC(tree13_adr%,version&)}}=revision$
  12785. CHAR{{OB_SPEC(tree14_adr%,rx1&)}}=STR$(folie_x%)
  12786. CHAR{{OB_SPEC(tree14_adr%,ry1&)}}=STR$(folie_y%)
  12787. CHAR{{OB_SPEC(tree14_adr%,rx2&)}}=STR$(folie_x2%)
  12788. CHAR{{OB_SPEC(tree14_adr%,ry2&)}}=STR$(folie_y2%)
  12789. CHAR{{OB_SPEC(tree14_adr%,rx3&)}}=STR$(folie_x3%)
  12790. CHAR{{OB_SPEC(tree14_adr%,ry3&)}}=STR$(folie_y3%)
  12791. CHAR{{OB_SPEC(tree15_adr%,p_init1&)}}=p_init1$
  12792. CHAR{{OB_SPEC(tree15_adr%,p_init2&)}}=p_init2$
  12793. CHAR{{OB_SPEC(tree15_adr%,overcut&)}}=STR$(overcut|/10)
  12794. CHAR{{OB_SPEC(tree15_adr%,ma&)}}=ma$
  12795. CHAR{{OB_SPEC(tree15_adr%,da&)}}=da$
  12796. CHAR{{OB_SPEC(tree17_adr%,outl&)}}="3.0"
  12797. CHAR{{OB_SPEC(tree18_adr%,schraffd&)}}=STR$(schraff_dist/100)
  12798. CHAR{{OB_SPEC(tree18_adr%,schraffi&)}}=STR$(schraff_inc/100)
  12799. CHAR{{OB_SPEC(tree18_adr%,schraffw&)}}=STR$(schraff_winkel)
  12800. CHAR{{OB_SPEC(tree18_adr%,schrafix&)}}=STR$(schraff_fix_abst)
  12801. CHAR{{OB_SPEC(tree21_adr%,t_step&)}}=STR$(bit_count_max|)
  12802. CHAR{{OB_SPEC(tree21_adr%,t_gerade&)}}=STR$(geraden_fehler|)
  12803. CHAR{{OB_SPEC(tree21_adr%,t_schmutz&)}}=STR$(schmutz_filter%)
  12804. CHAR{{OB_SPEC(tree21_adr%,bschwelle&)}}=STR$(lange_gerade%/100)
  12805. CHAR{{OB_SPEC(tree21_adr%,knickwinkel&)}}=STR$(CINT(DEG(knick_winkel_max)))
  12806. CHAR{{OB_SPEC(tree21_adr%,bogen_max&)}}=STR$(CINT(DEG(bogen_max*2)))
  12807. CHAR{{OB_SPEC(tree21_adr%,abweichung_gerade&)}}=STR$(abweichung_gerade%/100)
  12808. CHAR{{OB_SPEC(tree22_adr%,scann_x&)}}="1664"
  12809. CHAR{{OB_SPEC(tree22_adr%,scann_y&)}}="800"
  12810. CHAR{{OB_SPEC(tree23_adr%,radius&)}}="10"
  12811. CHAR{{OB_SPEC(tree27_adr%,calamus_nr&)}}=STR$(calamus_nr%)
  12812. CHAR{{OB_SPEC(tree29_adr%,kostfak&)}}=STR$(kostfak)
  12813. CHAR{{OB_SPEC(tree31_adr%,anz_rot&)}}="3"
  12814. CHAR{{OB_SPEC(tree31_adr%,phi_rot&)}}="90"
  12815. OB_STATE(tree15_adr%,rs232&)=state_rs232&+16
  12816. OB_STATE(tree15_adr%,cent&)=state_rs232& XOR 1+16
  12817. OB_STATE(tree15_adr%,hp&)=state_hp&+16
  12818. OB_STATE(tree15_adr%,gp&)=state_hp& XOR 1+16
  12819. OB_STATE(tree26_adr%,absolut&)=absolut!+18
  12820. OB_STATE(tree26_adr%,relativ&)=absolut!+17
  12821. OB_STATE(tree26_adr%,polar&)=absolut!+17
  12822. IF gdu=1
  12823.   OB_STATE(tree15_adr%,gdu01&)=17
  12824. ELSE
  12825.   IF gdu=2.5
  12826.     OB_STATE(tree15_adr%,gdu025&)=17
  12827.   ELSE
  12828.     IF gdu=5
  12829.       OB_STATE(tree15_adr%,gdu05&)=17
  12830.     ELSE
  12831.       OB_STATE(tree15_adr%,gdu1&)=17
  12832.     ENDIF
  12833.   ENDIF
  12834. ENDIF
  12835. OB_STATE(tree1_adr%,lock&)=1
  12836. IF mimaki!
  12837.   OB_STATE(tree15_adr%,gdu05&)=17
  12838.   OB_STATE(tree15_adr%,gdu01&)=8
  12839.   OB_STATE(tree15_adr%,gdu025&)=8
  12840.   OB_STATE(tree15_adr%,gdu1&)=8
  12841.   OB_STATE(tree15_adr%,rs232&)=17
  12842.   OB_STATE(tree15_adr%,mgl&)=17
  12843.   OB_STATE(tree15_adr%,cent&)=16
  12844.   OB_STATE(tree15_adr%,hp&)=16
  12845.   OB_STATE(tree15_adr%,gp&)=16
  12846. ELSE
  12847.   OB_STATE(tree15_adr%,mgl&)=8
  12848. ENDIF
  12849. ~WIND_GET(0,4)                                   ! get desk size
  12850. BMOVE GINTOUT+2,tree0_adr%+16,8                  ! set into rsc
  12851. BMOVE GINTOUT+2,tree1_adr%+16,8                  ! set into rsc
  12852. BMOVE GINTOUT+2,tree2_adr%+16,8                  ! set into rsc
  12853. BMOVE GINTOUT+2,tree3_adr%+16,8                  ! set into rsc
  12854. BMOVE GINTOUT+2,tree4_adr%+16,8                  ! set into rsc
  12855. BMOVE GINTOUT+2,tree5_adr%+16,8                  ! set into rsc
  12856. BMOVE GINTOUT+2,tree9_adr%+16,8                  ! set into rsc
  12857. BMOVE GINTOUT+2,tree25_adr%+16,8                 ! set into rsc
  12858. BMOVE GINTOUT+2,tree34_adr%+16,8                 ! set into rsc
  12859. wind_newdesk(tree0_adr%,0)                       ! install  Datei Baum
  12860. IF default_font$<>""
  12861.   datei$=ein_space$
  12862.   IF EXIST(pfad_fnt$+"\"+default_font$)
  12863.     load_font(pfad_fnt$+"\"+default_font$)
  12864.     programm_font$=LEFT$(default_font$,LEN(default_font$)-4)
  12865.   ELSE
  12866.     make_new_font(-1)
  12867.   ENDIF
  12868. ELSE
  12869.   make_new_font(-1)
  12870. ENDIF
  12871. m$(0)=""
  12872. m$(1)="  CUTOUT"
  12873. m$(2)="--------------------"
  12874. m$(3)=CHR$(2)
  12875. m$(4)=CHR$(3)
  12876. m$(5)=CHR$(4)
  12877. m$(6)=CHR$(5)
  12878. m$(7)=CHR$(6)
  12879. m$(8)=CHR$(7)
  12880. m$(9)=CHR$(8)
  12881. m$(10)=""
  12882. m$(11)=pd_menu$
  12883. m$(12)=pd_datei$
  12884. m$(13)=pd_editieren$
  12885. m$(14)=pd_fenster$
  12886. m$(15)=pd_schnittpunkt$
  12887. m$(16)=pd_bogen$
  12888. m$(17)="----------------------"
  12889. m$(18)=pd_text$
  12890. m$(19)=pd_zeicheneditor$
  12891. m$(20)=m$(17)
  12892. m$(21)=pd_extra$
  12893. m$(22)=m$(17)
  12894. m$(23)=pd_quit$
  12895. m$(24)=""
  12896. m$(25)=pd_optionen$
  12897. m$(26)=pd_marker_anzeigen$
  12898. m$(27)=pd_tangenten_anzeigen$
  12899. m$(28)=pd_fangradius_klein$
  12900. m$(29)=pd_polygon_modus$
  12901. m$(30)=pd_schnittpunkt_genau$
  12902. m$(31)=pd_koordinaten$
  12903. m$(32)=pd_element_selektieren$
  12904. m$(33)=pd_polygon_selektieren$
  12905. m$(34)=pd_warnmeldungen$
  12906. m$(35)="---------------------------"
  12907. m$(36)=pd_skaliere_alles$
  12908. m$(37)=m$(35)
  12909. m$(38)=pd_punkte_nivellieren$
  12910. m$(39)=pd_tangente$
  12911. m$(40)=m$(35)
  12912. m$(41)=pd_plotflaeche$
  12913. m$(42)=pd_bezier_step_aendern$
  12914. m$(43)=pd_plotter_einstellung$
  12915. m$(44)=pd_kosten_faktor$
  12916. m$(45)=pd_pfad_sichern$
  12917. m$(46)=""
  12918. m$(47)=pd_figur$
  12919. m$(48)=pd_rechteck$
  12920. m$(49)=pd_n_eck$
  12921. m$(50)=pd_polygon_outline$
  12922. m$(51)=pd_aequidistante$
  12923. m$(52)=pd_frame$
  12924. m$(53)="---------------------------"
  12925. m$(54)=pd_polygone_ausrichten$
  12926. m$(55)=pd_polygone_zentrieren$
  12927. m$(56)=pd_polygone_vereinen$
  12928. m$(57)=pd_polygone_fuellen$
  12929. m$(58)=m$(53)
  12930. m$(59)=pd_einzelne_punkte_loeschen$
  12931. m$(60)=""
  12932. m$(61)=pd_linie$
  12933. m$(62)=pd_bezier_vektor$
  12934. m$(63)=pd_bezier_einfuegen$
  12935. m$(64)=pd_tausche_bezier_vektor$
  12936. m$(65)=m$(53)
  12937. m$(66)=pd_knacken$
  12938. m$(67)=pd_trimmen$
  12939. m$(68)=pd_lot$
  12940. m$(69)=pd_verlaengern$
  12941. m$(70)=pd_teilen$
  12942. m$(71)=pd_messen$
  12943. m$(72)=m$(53)
  12944. m$(73)=pd_schnittp_2er$
  12945. m$(74)=pd_schnittp_n$
  12946. m$(75)=""
  12947. m$(76)=pd_effekt$
  12948. m$(77)=pd_parameter_schraffur$
  12949. m$(78)=pd_polygon_schraffieren$
  12950. m$(79)=pd_alles_schraffieren$
  12951. m$(80)="------------------------"
  12952. m$(81)=pd_schatten$
  12953. m$(82)=pd_einpassen$
  12954. m$(83)=m$(80)
  12955. m$(84)=pd_kugel$
  12956. m$(85)=""
  12957. m$(86)=""
  12958. MENU m$()
  12959. IF fangklein!
  12960.   MENU 28,1
  12961. ENDIF
  12962. IF polygonmode!
  12963.   MENU 29,1
  12964. ENDIF
  12965. IF warn!
  12966.   MENU 34,1
  12967. ENDIF
  12968. CLIP 0,0,639,399 OFFSET 0,0
  12969. DEFTEXT 1,0,0,6
  12970. COLOR 1
  12971. TEXT 400,7,"Zoom X:"
  12972. TEXT 400,15,"Zoom Y:"
  12973. TEXT 540,7,"X:"
  12974. TEXT 540,15,"Y:"
  12975. DEFTEXT 1,0,0,4
  12976. TEXT 624,7,"mm"
  12977. TEXT 624,15,"mm"
  12978. LINE 536,0,536,20
  12979. LINE 396,0,396,20
  12980. '
  12981. ~FORM_DIAL(3,0,0,0,0,0,0,desk_breite&,desk_hoehe&)                !redraw all
  12982. '
  12983. layer!=FALSE
  12984. zoom=1
  12985. x_layer%=folie_x%
  12986. y_layer%=folie_y%
  12987. x_layero%=x_layer%
  12988. y_layero%=y_layer%
  12989. res_x%=x_layer%
  12990. res_y%=y_layer%
  12991. x_offset&=0
  12992. y_offset&=0
  12993. res_x_old%=x_layer%
  12994. res_y_old%=y_layer%
  12995. x_offset_old&=0
  12996. y_offset_old&=0
  12997. pointer%=0
  12998. get_desktop
  12999. scrb_old&=scrb&
  13000. scrh_old&=scrh&
  13001. CLOSEW 1
  13002. programm$=noname$
  13003. INT{WINDTAB+2}=&X111111000000
  13004. INT{WINDTAB+4}=scrx&
  13005. INT{WINDTAB+6}=scry&
  13006. INT{WINDTAB+8}=scrb&
  13007. INT{WINDTAB+10}=scrh&
  13008. help_titel
  13009. OPENW 1
  13010. calc_slid
  13011. ~WIND_GET(1,4,x_win&,y_win&,b_window&,h_window&)
  13012. neues_polygon!=TRUE
  13013. do_redraw
  13014. DEFMOUSE 3
  13015. p_zoom(zoom*100,zoom*100)
  13016. CHAR{{OB_SPEC(tree14_adr%,rx1&)}}=STR$(x_layer%)
  13017. CHAR{{OB_SPEC(tree14_adr%,ry1&)}}=STR$(y_layer%)
  13018. ' test_vollbild
  13019. '
  13020. ~OBJC_OFFSET(tree28_adr%,gtprewin&,gtxv&,gtyv&)
  13021. gtxv&=gtxv&-x_win&+1
  13022. gtyv&=gtyv&-y_win&+1
  13023. '
  13024. ON MENU MESSAGE GOSUB message
  13025. ON MENU BUTTON 1,1,1 GOSUB button
  13026. ON MENU GOSUB menu
  13027. ON MENU KEY GOSUB key
  13028. ' ON ERROR GOSUB fehler
  13029. '
  13030. '
  13031. REPEAT
  13032.   ON MENU
  13033. UNTIL end!
  13034. '
  13035. IF modified!
  13036.   IF pointer%>0
  13037.     ALERT 3,"| "+sichere$+daten$,1,ja_nein$,i%
  13038.     IF i%=1
  13039.       @save_vektor
  13040.     ENDIF
  13041.   ENDIF
  13042. ENDIF
  13043. '
  13044. ' Bei fertigen Programmen hier nur QUIT
  13045. '
  13046. reset
  13047. ~WIND_GET(0,10)
  13048. IF DPEEK(GINTOUT+2)
  13049.   ALERT 1,"Accessories",1,"Close|Quit",i%
  13050.   IF i%=2
  13051.     QUIT
  13052.   ENDIF
  13053.   REPEAT
  13054.     ~WIND_GET(0,10)
  13055.   UNTIL DPEEK(GINTOUT+2)=0
  13056. ENDIF
  13057. RESERVE                                ! XBIOS(2)-HIMEM+FRE(0)-16384
  13058. '
  13059. PROCEDURE fehler
  13060.   ALERT 1,fehler$,1,leider$,i%
  13061.   '  RESUME NEXT
  13062. RETURN
  13063. '
  13064. '
  13065. PROCEDURE get_undo
  13066.   LOCAL dp%
  13067.   dp%=daten_ptr%
  13068.   IF (pointer%*9+1<work_space%) AND (NOT layer_geladen!)
  13069.     LONG{dp%}=pointer%
  13070.     ADD dp%,4
  13071.     undo!=TRUE
  13072.     BMOVE VARPTR(punkte_x%(0)),dp%,pointer%*4
  13073.     ADD dp%,pointer%*4
  13074.     BMOVE VARPTR(punkte_y%(0)),dp%,pointer%*4
  13075.     ADD dp%,pointer%*4
  13076.     BMOVE VARPTR(punkte_def|(0)),dp%,pointer%
  13077.     undo!=TRUE
  13078.   ELSE
  13079.     undo!=FALSE
  13080.   ENDIF
  13081. RETURN
  13082. '
  13083. PROCEDURE put_undo
  13084.   LOCAL dp%
  13085.   IF undo!
  13086.     dp%=daten_ptr%
  13087.     pointer%=LONG{dp%}
  13088.     ADD dp%,4
  13089.     BMOVE dp%,VARPTR(punkte_x%(0)),pointer%*4
  13090.     ADD dp%,pointer%*4
  13091.     BMOVE dp%,VARPTR(punkte_y%(0)),pointer%*4
  13092.     ADD dp%,pointer%*4
  13093.     BMOVE dp%,VARPTR(punkte_def|(0)),pointer%
  13094.     undo!=FALSE
  13095.     do_redraw
  13096.   ENDIF
  13097. RETURN
  13098. '
  13099. PROCEDURE output_drucker
  13100.   LOCAL handle&,x_resi&,y_resi&,z_old
  13101.   IF GDOS?
  13102.     ERASE work%()
  13103.     IF FRE(0)>250000
  13104.       RESERVE -250000
  13105.       handle&=V_OPNWK(21)
  13106.       IF handle&<>0
  13107.         V~H=handle&
  13108.         x_resi&=INTOUT(0)
  13109.         y_resi&=INTOUT(1)
  13110.         ~V_CLRWK()
  13111.         z_old=zoom
  13112.         zoom=4
  13113.         redraw_ohne(0)
  13114.         ~V_UPDWK()
  13115.         ~V_CLSWK()
  13116.         zoom=z_old
  13117.       ELSE
  13118.       ENDIF
  13119.       RESERVE
  13120.     ELSE
  13121.     ENDIF
  13122.     DIM work%((FRE(0)-80*1024)/4)
  13123.     daten_ptr%=V:work%(0)
  13124.     work_space%=DIM?(work%())*4
  13125.   ELSE
  13126.   ENDIF
  13127. RETURN
  13128. '
  13129. '
  13130. PROCEDURE scan_a1
  13131.   ALERT 3,"| SCAN Hochformat: ",1,"A3|A2|A1",i%
  13132.   SELECT i%
  13133.   CASE 1
  13134.     scann_x%=INT(17*400/8)       !17
  13135.     scann_y%=INT(12*400)        !12
  13136.   CASE 2
  13137.     scann_x%=INT(25*400/8)
  13138.     scann_y%=INT(17*400)
  13139.   CASE 3
  13140.     scann_x%=INT(34*400/8)
  13141.     scann_y%=INT(25*400)
  13142.   ENDSELECT
  13143.   scan_graphtec(3,400,0,0,scann_x%,scann_y%)
  13144. RETURN
  13145. '
  13146. PROCEDURE scan_graphtec(device&,dpi&,x_0%,y_0%,bytes_x%,lines_y%)
  13147.   LOCAL command_bytes&,bytes_to_transfer%,transfer_dir&
  13148.   LOCAL y_offset%,block&,command_bytes&,bytes_to_transfer%
  13149.   ' IF FN test_unit_ready(device&)=0
  13150.   set_graphtec_window(device&,dpi&,x_0%,y_0%,bytes_x%,lines_y%)
  13151.   command_bytes&=10
  13152.   block&=&HFFFF DIV bytes_x% DIV 3
  13153.   bytes_to_transfer%=bytes_x%*block&*3
  13154.   transfer_dir&=0                               ! LESEN
  13155.   command|(0)=&H28
  13156.   command|(1)=0
  13157.   command|(2)=0
  13158.   command|(3)=0
  13159.   command|(4)=0
  13160.   command|(5)=0
  13161.   command|(6)=0
  13162.   command|(7)=0
  13163.   command|(8)=0
  13164.   command|(9)=0
  13165.   WORD{V:command|(7)}=block&
  13166.   '
  13167.   anzahl&=lines_y% DIV block&
  13168.   rest&=lines_y% MOD block&
  13169.   y_offset%=0
  13170.   FOR i%=1 TO anzahl&
  13171.     $c+
  13172.     fehler%=C:scsi%(device&,command_bytes&,bytes_to_transfer%,transfer_dir&,L:V:command|(0),L:daten_ptr%+y_offset%)
  13173.     $c-
  13174.     ADD y_offset%,block&*bytes_x%
  13175.   NEXT i%
  13176.   IF rest&<>0
  13177.     bytes_to_transfer%=bytes_x%*rest&*3
  13178.     WORD{V:command|(7)}=rest&
  13179.     $c+
  13180.     fehler%=C:scsi%(device&,command_bytes&,bytes_to_transfer%,transfer_dir&,L:V:command|(0),L:daten_ptr%+y_offset%)
  13181.     $c-
  13182.   ENDIF
  13183.   '  status&=AND(CARD(fehler%),&X11110)
  13184.   ' message&=CARD(SWAP(fehler%))
  13185.   layer!=TRUE
  13186.   layer_geladen!=TRUE
  13187.   voll_bild!=TRUE
  13188.   outlined!=FALSE
  13189.   do_change_aufloesung(bytes_x%*8,lines_y%,1)
  13190.   init_bit_blit
  13191.   p_zoom(zoom*100,zoom*100)
  13192.   do_redraw
  13193.   ' ENDIF
  13194. RETURN
  13195. '
  13196. PROCEDURE set_graphtec_window(device&,dpi&,x_0%,y_0%,bytes_x%,lines_y%)
  13197.   LOCAL command_bytes&,bytes_to_transfer%,transfer_dir&
  13198.   command_bytes&=10
  13199.   bytes_to_transfer%=53
  13200.   transfer_dir&=1                               ! LESEN (1=SCHREIBEN)
  13201.   command|(0)=&H24
  13202.   command|(1)=0
  13203.   command|(2)=0
  13204.   command|(3)=0
  13205.   command|(4)=0
  13206.   command|(5)=0
  13207.   command|(6)=0
  13208.   command|(7)=0
  13209.   command|(8)=bytes_to_transfer%
  13210.   command|(9)=0
  13211.   FOR i%=0 TO 6
  13212.     buffer|(i%)=0
  13213.   NEXT i%
  13214.   FOR i%=38 TO 47
  13215.     buffer|(i%)=0
  13216.   NEXT i%
  13217.   buffer|(7)=45                         ! Window Descriptor Block Length
  13218.   buffer|(8)=0                          ! Window ID
  13219.   buffer|(9)=0                          ! reserved
  13220.   WORD{V:buffer|(10)}=dpi&              ! X resolution
  13221.   WORD{V:buffer|(12)}=dpi&              ! Y resolution
  13222.   LONG{V:buffer|(14)}=x_0%*24           ! X Upper Left
  13223.   LONG{V:buffer|(18)}=y_0%*3            ! Y Upper Left
  13224.   LONG{V:buffer|(22)}=bytes_x%*24       ! Width
  13225.   LONG{V:buffer|(26)}=lines_y%*3        ! Length
  13226.   buffer|(30)=0                         ! reserved
  13227.   buffer|(31)=0                         ! Kontrast
  13228.   buffer|(32)=0                         ! reserved
  13229.   buffer|(33)=0                         ! Image composition
  13230.   buffer|(34)=1                         ! Bits per Pixel
  13231.   buffer|(35)=0                         ! reserved
  13232.   buffer|(36)=0                         ! reserved
  13233.   buffer|(37)=0                         ! Reverse Image
  13234.   buffer|(48)=2                         ! Cell length
  13235.   buffer|(49)=5                         ! Function Code
  13236.   buffer|(50)=1                         ! Fine Line
  13237.   buffer|(51)=2                         ! Cell length
  13238.   buffer|(52)=6                         ! Function Code
  13239.   buffer|(53)=1                         ! Scann Speed
  13240.   $c+
  13241.   fehler%=C:scsi%(device&,command_bytes&,bytes_to_transfer%,transfer_dir&,L:V:command|(0),L:V:buffer|(0))
  13242.   $c-
  13243. RETURN
  13244. '
  13245. FUNCTION test_unit_ready(device&)
  13246.   command_bytes&=6
  13247.   bytes_to_transfer%=1
  13248.   transfer_dir&=0                               ! LESEN (1=SCHREIBEN)
  13249.   command|(0)=0
  13250.   command|(1)=0
  13251.   command|(2)=0
  13252.   command|(3)=0
  13253.   command|(4)=bytes_to_transfer%
  13254.   command|(5)=0
  13255.   '
  13256.   $c+
  13257.   fehler%=C:scsi%(device&,command_bytes&,L:bytes_to_transfer%,transfer_dir&,L:V:command|(0),L:V:buffer|(0))
  13258.   $c-
  13259.   status&=AND(CARD(fehler%),&X11110)
  13260.   message&=CARD(SWAP(fehler%))
  13261.   '
  13262.   RETURN status&
  13263. ENDFUNC
  13264. '
  13265. '
  13266. PROCEDURE gt_info(i$)
  13267.   CHAR{{OB_SPEC(tree28_adr%,gtstate&)}}=i$
  13268.   ~OBJC_DRAW(tree28_adr%,gtstate&,8,xt28&,yt28&,bt28&,ht28&)
  13269. RETURN
  13270. '
  13271. PROCEDURE dpi_change(prex0&,prey0&,prex0_min&,prey0_min&)
  13272.   CHAR{{OB_SPEC(tree28_adr%,gtdpi&)}}=STR$(gtdpiv&)
  13273.   ~OBJC_DRAW(tree28_adr%,gtdpi&,8,xt28&,yt28&,bt28&,ht28&)
  13274.   CHAR{{OB_SPEC(tree28_adr%,gtb&)}}=STR$(AND(INT(gtbv&/25.4*gtdpiv&),&HFFF8))
  13275.   CHAR{{OB_SPEC(tree28_adr%,gth&)}}=STR$(AND(INT(gthv&/25.4*gtdpiv&),&HFFF8))
  13276.   ~OBJC_DRAW(tree28_adr%,gtb&,8,xt28&,yt28&,bt28&,ht28&)
  13277.   ~OBJC_DRAW(tree28_adr%,gth&,8,xt28&,yt28&,bt28&,ht28&)
  13278.   CHAR{{OB_SPEC(tree28_adr%,gtx&)}}=STR$(AND(INT((prex0&-prex0_min&)/25.4*gtdpiv&),&HFFF8))
  13279.   CHAR{{OB_SPEC(tree28_adr%,gty&)}}=STR$(AND(INT((prey0&-prey0_min&)/25.4*gtdpiv&),&HFFF8))
  13280.   ~OBJC_DRAW(tree28_adr%,gtx&,8,xt28&,yt28&,bt28&,ht28&)
  13281.   ~OBJC_DRAW(tree28_adr%,gty&,8,xt28&,yt28&,bt28&,ht28&)
  13282. RETURN
  13283. '
  13284. PROCEDURE gt_6000
  13285.   LOCAL prex0&,prey0&,prex0_min&,prey0_min&,x_changed&,y_changed&
  13286.   LOCAL prex&,prey&,gthalbton&
  13287.   DEFMOUSE 0
  13288.   SETMOUSE xt28&+240,yt28&+310,0
  13289.   CLIP 0,0,desk_breite&,desk_hoehe& OFFSET x_win&,y_win&
  13290.   ~OBJC_OFFSET(tree28_adr%,gtprewin&,prex&,prey&)
  13291.   gthalbton&=1
  13292.   prex0&=prex&-x_win&+1
  13293.   prey0&=prey&-y_win&+1
  13294.   prex0_min&=prex0&
  13295.   prey0_min&=prey0&
  13296.   prex0_max&=prex0&+217
  13297.   prey0_max&=prey0&+297
  13298.   prex0&=gtxv&
  13299.   prey0&=gtyv&
  13300.   '
  13301.   CHAR{{OB_SPEC(tree28_adr%,gtx&)}}=STR$(AND(INT((prex0&-prex0_min&)/25.4*gtdpiv&),&HFFF8))
  13302.   CHAR{{OB_SPEC(tree28_adr%,gty&)}}=STR$(AND(INT((prey0&-prey0_min&)/25.4*gtdpiv&),&HFFF8))
  13303.   CHAR{{OB_SPEC(tree28_adr%,gtb&)}}=STR$(AND(INT(gtbv&/25.4*gtdpiv&),&HFFF8))
  13304.   CHAR{{OB_SPEC(tree28_adr%,gth&)}}=STR$(AND(INT(gthv&/25.4*gtdpiv&),&HFFF8))
  13305.   CHAR{{OB_SPEC(tree28_adr%,gtdpi&)}}=STR$(gtdpiv&)
  13306.   CHAR{{OB_SPEC(tree28_adr%,gtstate&)}}=waehle$
  13307.   GET xt28&-4,yt28&-4,xt28&+bt28&+4,yt28&+ht28&+4,rette$
  13308.   ~OBJC_DRAW(tree28_adr%,0,8,xt28&,yt28&,bt28&,ht28&)
  13309.   smfdb%(0)=V:prebuf$
  13310.   smfdb%(1)=208
  13311.   smfdb%(2)=292
  13312.   smfdb%(3)=smfdb%(1)/16
  13313.   smfdb%(5)=1
  13314.   dmfdb%(0)=XBIOS(3)
  13315.   dmfdb%(1)=desk_breite&
  13316.   dmfdb%(2)=desk_hoehe&
  13317.   dmfdb%(3)=dmfdb%(1)/16
  13318.   dmfdb%(5)=1
  13319.   p%(0)=0
  13320.   p%(1)=0
  13321.   p%(2)=207
  13322.   p%(3)=291
  13323.   p%(4)=prex&+1
  13324.   p%(5)=prey&+1
  13325.   p%(6)=p%(4)+207
  13326.   p%(7)=p%(5)+291
  13327.   p%(8)=3
  13328.   BITBLT smfdb%(),dmfdb%(),p%()
  13329.   DEFFILL 1,1,1
  13330.   GRAPHMODE 3
  13331.   BOX prex0&,prey0&,prex0&+gtbv&,prey0&+gthv&
  13332.   PBOX prex0&+gtbv&-8,prey0&+gthv&-8,prex0&+gtbv&,prey0&+gthv&
  13333.   REPEAT
  13334.     DO
  13335.       ~FORM_DO(tree28_adr%,0)
  13336.       IF INT{GINTOUT}>0 AND INT{GINTOUT}<100
  13337.         exit_button&=DPEEK(GINTOUT)
  13338.         OB_STATE(tree28_adr%,exit_button&)=0
  13339.         IF exit_button&<>gtprewin&
  13340.           ~OBJC_DRAW(tree28_adr%,exit_button&,8,xt28&,yt28&,bt28&,ht28&)
  13341.         ENDIF
  13342.       ENDIF
  13343.       SELECT exit_button&
  13344.       CASE gtdpimin&
  13345.         IF gtdpiv&>100
  13346.           IF gtdpiv&=480
  13347.             gtdpiv&=400
  13348.           ELSE
  13349.             IF gtdpiv&=600
  13350.               gtdpiv&=480
  13351.             ELSE
  13352.               SUB gtdpiv&,100
  13353.             ENDIF
  13354.           ENDIF
  13355.           dpi_change(prex0&,prey0&,prex0_min&,prey0_min&)
  13356.         ENDIF
  13357.       CASE gtdpiplu&
  13358.         IF gtdpiv&<600
  13359.           IF gtdpiv&=400
  13360.             gtdpiv&=480
  13361.           ELSE
  13362.             IF gtdpiv&=480
  13363.               gtdpiv&=600
  13364.             ELSE
  13365.               ADD gtdpiv&,100
  13366.             ENDIF
  13367.           ENDIF
  13368.           dpi_change(prex0&,prey0&,prex0_min&,prey0_min&)
  13369.         ENDIF
  13370.       CASE gtprewin&
  13371.         MOUSE x_mouse%,y_mouse%,taste|
  13372.         IF x_mouse%>prex0&+gtbv&-8 AND x_mouse%<prex0&+gtbv& AND y_mouse%>prey0&+gthv&-8 AND y_mouse%<prey0&+gthv&
  13373.           DEFMOUSE 3
  13374.           REPEAT
  13375.             MOUSE x_mouse%,y_mouse%,taste|
  13376.             IF x_mouse%<>x_mouse_old% OR y_mouse%<>y_mouse_old%
  13377.               BOX prex0&,prey0&,prex0&+gtbv&,prey0&+gthv&
  13378.               PBOX prex0&+gtbv&-8,prey0&+gthv&-8,prex0&+gtbv&,prey0&+gthv&
  13379.               IF x_mouse%-prex0_min&<217 AND x_mouse%-prex0&>16
  13380.                 gtbv&=x_mouse%-prex0&
  13381.                 i%=AND(INT(gtbv&/25.4*gtdpiv&),&HFFF0)
  13382.                 gtbv&=CINT(i%*25.4/gtdpiv&)
  13383.               ENDIF
  13384.               IF y_mouse%-prey0_min&<298 AND y_mouse%-prey0&>16
  13385.                 gthv&=y_mouse%-prey0&
  13386.               ENDIF
  13387.               BOX prex0&,prey0&,prex0&+gtbv&,prey0&+gthv&
  13388.               PBOX prex0&+gtbv&-8,prey0&+gthv&-8,prex0&+gtbv&,prey0&+gthv&
  13389.               SHOWM
  13390.               x_mouse_old%=x_mouse%
  13391.               y_mouse_old%=y_mouse%
  13392.               CHAR{{OB_SPEC(tree28_adr%,gtb&)}}=STR$(AND(INT(gtbv&/25.4*gtdpiv&),&HFFF0))
  13393.               CHAR{{OB_SPEC(tree28_adr%,gth&)}}=STR$(INT(gthv&/25.4*gtdpiv&))
  13394.               ~OBJC_DRAW(tree28_adr%,gtb&,8,xt28&,yt28&,bt28&,ht28&)
  13395.               ~OBJC_DRAW(tree28_adr%,gth&,8,xt28&,yt28&,bt28&,ht28&)
  13396.             ENDIF
  13397.           UNTIL taste|=0
  13398.           DEFMOUSE 0
  13399.         ELSE
  13400.           IF x_mouse%>prex0& AND x_mouse%<prex0&+gtbv& AND y_mouse%>prey0& AND y_mouse%<prey0&+gthv&
  13401.             x_mouse_old%=x_mouse%
  13402.             y_mouse_old%=y_mouse%
  13403.             DEFMOUSE 3
  13404.             REPEAT
  13405.               MOUSE x_mouse%,y_mouse%,taste|
  13406.               IF x_mouse%<>x_mouse_old% OR y_mouse%<>y_mouse_old%
  13407.                 x_changed&=x_mouse%-x_mouse_old%
  13408.                 y_changed&=y_mouse%-y_mouse_old%
  13409.                 BOX prex0&,prey0&,prex0&+gtbv&,prey0&+gthv&
  13410.                 PBOX prex0&+gtbv&-8,prey0&+gthv&-8,prex0&+gtbv&,prey0&+gthv&
  13411.                 IF prex0&+x_changed&>=prex0_min& AND prex0&+x_changed&+gtbv&<prex0_max&
  13412.                   ADD prex0&,x_changed&
  13413.                 ENDIF
  13414.                 IF prey0&+y_changed&>=prey0_min& AND prey0&+y_changed&+gthv&<prey0_max&
  13415.                   ADD prey0&,y_changed&
  13416.                 ENDIF
  13417.                 BOX prex0&,prey0&,prex0&+gtbv&,prey0&+gthv&
  13418.                 PBOX prex0&+gtbv&-8,prey0&+gthv&-8,prex0&+gtbv&,prey0&+gthv&
  13419.                 SHOWM
  13420.                 x_mouse_old%=x_mouse%
  13421.                 y_mouse_old%=y_mouse%
  13422.                 CHAR{{OB_SPEC(tree28_adr%,gtx&)}}=STR$(AND(INT((prex0&-prex0_min&)/25.4*gtdpiv&),&HFFF8))
  13423.                 CHAR{{OB_SPEC(tree28_adr%,gty&)}}=STR$(AND(INT((prey0&-prey0_min&)/25.4*gtdpiv&),&HFFF8))
  13424.                 ~OBJC_DRAW(tree28_adr%,gtx&,8,xt28&,yt28&,bt28&,ht28&)
  13425.                 ~OBJC_DRAW(tree28_adr%,gty&,8,xt28&,yt28&,bt28&,ht28&)
  13426.               ENDIF
  13427.             UNTIL taste|=0
  13428.             DEFMOUSE 0
  13429.           ENDIF
  13430.         ENDIF
  13431.       CASE gtpresca&
  13432.         gt_info(scannen$+pre_view$)
  13433.         HIDEM
  13434.         gt6000%=VARPTR(gt6000$)
  13435.         $C+
  13436.         VOID C:gt6000%(1,50,3,3,gthalbton&,0,0,26,292,L:V:prebuf$,L:V:prebuf$+8000)
  13437.         $C-
  13438.         OUT (2),13
  13439.         trigger_0
  13440.         DEFMOUSE 3
  13441.         SHOWM
  13442.         BOX prex0&,prey0&,prex0&+gtbv&,prey0&+gthv&
  13443.         PBOX prex0&+gtbv&-8,prey0&+gthv&-8,prex0&+gtbv&,prey0&+gthv&
  13444.         smfdb%(0)=V:prebuf$
  13445.         BITBLT smfdb%(),dmfdb%(),p%()
  13446.         BOX prex0&,prey0&,prex0&+gtbv&,prey0&+gthv&
  13447.         PBOX prex0&+gtbv&-8,prey0&+gthv&-8,prex0&+gtbv&,prey0&+gthv&
  13448.         gt_info(waehle$)
  13449.       ENDSELECT
  13450.       EXIT IF exit_button&=gtcancel&
  13451.       EXIT IF exit_button&=gtscan&
  13452.     LOOP
  13453.     IF exit_button&=gtcancel&
  13454.       PUT xt28&-4,yt28&-4,rette$
  13455.       ok!=TRUE
  13456.     ENDIF
  13457.     IF exit_button&=gtscan&
  13458.       IF OB_STATE(tree28_adr%,gthart&)=1
  13459.         gthalbton&=0
  13460.       ELSE
  13461.         IF OB_STATE(tree28_adr%,gtweich&)=1
  13462.           gthalbton&=16
  13463.         ELSE
  13464.           IF OB_STATE(tree28_adr%,gtraster&)=1
  13465.             gthalbton&=32
  13466.           ELSE
  13467.             gthalbton&=1
  13468.           ENDIF
  13469.         ENDIF
  13470.       ENDIF
  13471.       IF OB_STATE(tree28_adr%,gtrot&)=1
  13472.         gtfarbev&=0
  13473.       ELSE
  13474.         IF OB_STATE(tree28_adr%,gtgruen&)=1
  13475.           gtfarbev&=1
  13476.         ELSE
  13477.           IF OB_STATE(tree28_adr%,gtblau&)=1
  13478.             gtfarbev&=2
  13479.           ELSE
  13480.             gtfarbev&=3
  13481.           ENDIF
  13482.         ENDIF
  13483.       ENDIF
  13484.       IF OB_STATE(tree28_adr%,k0&)=1
  13485.         gtkontrav&=0
  13486.       ELSE
  13487.         IF OB_STATE(tree28_adr%,k1&)=1
  13488.           gtkontrav&=1
  13489.         ELSE
  13490.           IF OB_STATE(tree28_adr%,k2&)=1
  13491.             gtkontrav&=2
  13492.           ELSE
  13493.             IF OB_STATE(tree28_adr%,k3&)=1
  13494.               gtkontrav&=3
  13495.             ELSE
  13496.               IF OB_STATE(tree28_adr%,k4&)=1
  13497.                 gtkontrav&=4
  13498.               ELSE
  13499.                 IF OB_STATE(tree28_adr%,k5&)=1
  13500.                   gtkontrav&=5
  13501.                 ELSE
  13502.                   gtkontrav&=6
  13503.                 ENDIF
  13504.               ENDIF
  13505.             ENDIF
  13506.           ENDIF
  13507.         ENDIF
  13508.       ENDIF
  13509.       gt_info(scannen$+bereich$)
  13510.       gtxorig&=CINT(AND(INT((prex0&+2-prex0_min&)/25.4*gtdpiv&),&HFFF8)/8)
  13511.       gtyorig&=CINT((prey0&+2-prey0_min&)/25.4*gtdpiv&)
  13512.       gtxbytes&=CINT(AND(INT(gtbv&/25.4*gtdpiv&),&HFFF0)/8)
  13513.       gtyzeilen&=CINT(gthv&/25.4*gtdpiv&)
  13514.       IF gtxbytes&*(gtyzeilen&+1)<work_space%
  13515.         HIDEM
  13516.         gt6000%=VARPTR(gt6000$)
  13517.         $C+
  13518.         i%=C:gt6000%(0,gtdpiv&,gtfarbev&,gtkontrav&,gthalbton&,gtxorig&,gtyorig&,gtxbytes&,gtyzeilen&,L:daten_ptr%,L:daten_ptr%+work_space%)
  13519.         $C-
  13520.         OUT (2),13
  13521.         trigger_0
  13522.         DEFMOUSE 3
  13523.         SHOWM
  13524.       ELSE
  13525.         i%=-1
  13526.       ENDIF
  13527.       IF i%>=0
  13528.         gt_info(waehle$)
  13529.         PUT xt28&-4,yt28&-4,rette$
  13530.         layer!=TRUE
  13531.         layer_geladen!=TRUE
  13532.         voll_bild!=TRUE
  13533.         outlined!=FALSE
  13534.         do_change_aufloesung(AND(INT(gtbv&/25.4*gtdpiv&),&HFFF0),INT(gthv&/25.4*gtdpiv&),1)
  13535.         init_bit_blit
  13536.         p_zoom(zoom*100,zoom*100)
  13537.         do_redraw
  13538.         ok!=TRUE
  13539.       ELSE
  13540.         FOR i%=1 TO 5
  13541.           gt_info(fehler$)
  13542.           PAUSE 15
  13543.           gt_info("      ")
  13544.           PAUSE 15
  13545.         NEXT i%
  13546.         gt_info(waehle$)
  13547.         ok!=FALSE
  13548.       ENDIF
  13549.     ENDIF
  13550.   UNTIL ok!
  13551.   gtxv&=prex0&
  13552.   gtyv&=prey0&
  13553.   ~WIND_GET(1,4)
  13554.   clip(x_window&,y_window&,b_window&,h_window&,INT{GINTOUT+2},INT{GINTOUT+4})
  13555.   set_clip_offset
  13556.   GRAPHMODE 1
  13557.   DEFFILL 0,0
  13558.   DEFMOUSE 3
  13559.   init_bit_blit
  13560. RETURN
  13561. '
  13562. PROCEDURE set_clip_offset
  13563.   INT{WINDTAB+64}=INT{WINDTAB+64}-x_offset&
  13564.   INT{WINDTAB+66}=INT{WINDTAB+66}-y_offset&
  13565. RETURN
  13566. '
  13567. PROCEDURE helpo(help$)
  13568.   TITLEW #1,ein_space$+help$+ein_space$
  13569.   set_clip_offset
  13570. RETURN
  13571. '
  13572. PROCEDURE help(help$)
  13573.   TITLEW #1,ein_space$+waehle$+help$+ein_space$
  13574.   set_clip_offset
  13575. RETURN
  13576. '
  13577. PROCEDURE help_titel
  13578.   TITLEW #1,ein_space$+pfad_vek$+"\"+programm$+".VEK "
  13579.   set_clip_offset
  13580.   DEFMOUSE 3
  13581.   DEFLINE 1
  13582.   COLOR 1
  13583.   GRAPHMODE 1
  13584.   p_xy_info("X:","Y:",0)
  13585.   SHOWM
  13586.   trigger_0
  13587.   zeit%=TIMER
  13588. RETURN
  13589. '
  13590. PROCEDURE polygon_fill
  13591.   REPEAT
  13592.     DEFMOUSE 0
  13593.     GET xt20&-4,yt20&-4,xt20&+bt20&+4,yt20&+ht20&+4,rette$
  13594.     SETMOUSE xt20&+bt20&/2,yt20&+160,0
  13595.     ~OBJC_DRAW(tree20_adr%,0,8,xt20&,yt20&,bt20&,ht20&)
  13596.     ~FORM_DO(tree20_adr%,0)
  13597.     exit_button&=DPEEK(GINTOUT)
  13598.     OB_STATE(tree20_adr%,exit_button&)=0
  13599.     PUT xt20&-4,yt20&-4,rette$
  13600.     IF OB_STATE(tree20_adr%,fill1&)=1
  13601.       DEFFILL 1,2,1
  13602.     ELSE IF OB_STATE(tree20_adr%,fill2&)=1
  13603.       DEFFILL 1,2,2
  13604.     ELSE IF OB_STATE(tree20_adr%,fill3&)=1
  13605.       DEFFILL 1,2,3
  13606.     ELSE IF OB_STATE(tree20_adr%,fill4&)=1
  13607.       DEFFILL 1,2,4
  13608.     ELSE IF OB_STATE(tree20_adr%,fill5&)=1
  13609.       DEFFILL 1,2,5
  13610.     ELSE IF OB_STATE(tree20_adr%,fill6&)=1
  13611.       DEFFILL 1,2,6
  13612.     ELSE IF OB_STATE(tree20_adr%,fill7&)=1
  13613.       DEFFILL 1,2,8
  13614.     ENDIF
  13615.     DEFMOUSE mdaten$
  13616.     help(help_polygon$)
  13617.     IF exit_button&<>fillcancel&
  13618.       REPEAT
  13619.         trigger_0
  13620.         wait_taste
  13621.         IF taste|<>2
  13622.           FILL x_mouse%,y_mouse%
  13623.         ENDIF
  13624.       UNTIL taste|=2
  13625.     ENDIF
  13626.   UNTIL exit_button&=fillcancel&
  13627.   ~FRE(0)
  13628.   DEFFILL 1,1
  13629.   help_titel
  13630. RETURN
  13631. '
  13632. ' *****************************************************************************
  13633. ' *                            TANGENTE NIVELLIEREN                           *
  13634. ' *                                                                           *
  13635. ' *  VERÄNDERT VAR: Punkte_X%(), Punkte_Y%()                                  *
  13636. ' *                                                                           *
  13637. ' *****************************************************************************
  13638. '
  13639. PROCEDURE do_niv_tangente(found_quelle%,von%,bis%,dreh_x%,dreh_y%)
  13640.   LOCAL phi,strecke
  13641.   dx=SUB(dreh_x%,punkte_x%(found%))
  13642.   dy=SUB(dreh_y%,punkte_y%(found%))
  13643.   strecke=SQR(dx*dx+dy*dy)
  13644.   get_phi(dreh_x%,dreh_y%,punkte_x%(found_quelle%),punkte_y%(found_quelle%),phi)
  13645.   redraw_von_bis(von%,bis%,0)
  13646.   punkte_x%(found%)=CINT(dreh_x%-strecke*COS(phi))
  13647.   punkte_y%(found%)=CINT(dreh_y%-strecke*SIN(phi))
  13648.   redraw_von_bis(von%,bis%,1)
  13649. RETURN
  13650. '
  13651. PROCEDURE tangente_nivellieren
  13652.   LOCAL found_quelle%,quelle_def|
  13653.   LOCAL von%,bis%,f%,dreh_x%,dreh_y%
  13654.   IF pointer%>1
  13655.     show_cursor_fang
  13656.     REPEAT
  13657.       trigger_0
  13658.       GRAPHMODE 1
  13659.       REPEAT
  13660.         wait_taste
  13661.         EXIT IF taste|=2
  13662.         find(x_mouse%*100/zoom,y_mouse%*100/zoom)
  13663.         quelle_def|=punkte_def|(found%)
  13664.       UNTIL (quelle_def|>da| AND quelle_def|<b3|)
  13665.       IF taste|<>2
  13666.         found_quelle%=found%
  13667.         IF quelle_def|=b1|
  13668.           IF punkte_def|(found_quelle%-1)=b3|
  13669.             found%=found_quelle%-2
  13670.             von%=found_quelle%-4
  13671.             bis%=von%+3
  13672.             dreh_x%=punkte_x%(found_quelle%-1)
  13673.             dreh_y%=punkte_y%(found_quelle%-1)
  13674.             do_niv_tangente(found_quelle%,von%,bis%,dreh_x%,dreh_y%)
  13675.           ELSE
  13676.             IF punkte_def|(found_quelle%-1)=da|
  13677.               found%=found_quelle%
  13678.               found_quelle%=found%-2
  13679.               von%=found%-1
  13680.               bis%=von%+3
  13681.               dreh_x%=punkte_x%(found%-1)
  13682.               dreh_y%=punkte_y%(found%-1)
  13683.               do_niv_tangente(found_quelle%,von%,bis%,dreh_x%,dreh_y%)
  13684.             ELSE
  13685.               IF punkte_def|(found_quelle%-1)=ma|
  13686.                 found%=found_quelle%
  13687.                 REPEAT
  13688.                   INC found%
  13689.                 UNTIL punkte_def|(found%)=ma|
  13690.                 DEC found%
  13691.                 IF punkte_def|(found%)=b3|
  13692.                   DEC found%
  13693.                   von%=found%-2
  13694.                   bis%=von%+3
  13695.                   dreh_x%=punkte_x%(found_quelle%-1)
  13696.                   dreh_y%=punkte_y%(found_quelle%-1)
  13697.                   do_niv_tangente(found_quelle%,von%,bis%,dreh_x%,dreh_y%)
  13698.                 ELSE
  13699.                   IF punkte_def|(found%)=da|
  13700.                     f%=found_quelle%
  13701.                     found_quelle%=found%-1
  13702.                     found%=f%
  13703.                     von%=found%-1
  13704.                     bis%=von%+3
  13705.                     dreh_x%=punkte_x%(found_quelle%+1)
  13706.                     dreh_y%=punkte_y%(found_quelle%+1)
  13707.                     do_niv_tangente(found_quelle%,von%,bis%,dreh_x%,dreh_y%)
  13708.                   ENDIF
  13709.                 ENDIF
  13710.               ENDIF
  13711.             ENDIF
  13712.           ENDIF
  13713.         ELSE
  13714.           IF quelle_def|=b2|
  13715.             IF punkte_def|(found_quelle%+2)=b1|
  13716.               found%=found_quelle%+2
  13717.               von%=found_quelle%+1
  13718.               bis%=von%+3
  13719.               dreh_x%=punkte_x%(found_quelle%+1)
  13720.               dreh_y%=punkte_y%(found_quelle%+1)
  13721.               do_niv_tangente(found_quelle%,von%,bis%,dreh_x%,dreh_y%)
  13722.             ELSE
  13723.               IF punkte_def|(found_quelle%+2)=da|
  13724.                 found%=found_quelle%
  13725.                 found_quelle%=found%+2
  13726.                 von%=found%-2
  13727.                 bis%=von%+3
  13728.                 dreh_x%=punkte_x%(found%+1)
  13729.                 dreh_y%=punkte_y%(found%+1)
  13730.                 do_niv_tangente(found_quelle%,von%,bis%,dreh_x%,dreh_y%)
  13731.               ELSE
  13732.                 IF punkte_def|(found_quelle%+2)=ma|
  13733.                   found%=found_quelle%
  13734.                   REPEAT
  13735.                     DEC found%
  13736.                   UNTIL punkte_def|(found%)=ma|
  13737.                   INC found%
  13738.                   IF punkte_def|(found%)=b1|
  13739.                     von%=found%-1
  13740.                     bis%=von%+3
  13741.                     dreh_x%=punkte_x%(found_quelle%+1)
  13742.                     dreh_y%=punkte_y%(found_quelle%+1)
  13743.                     do_niv_tangente(found_quelle%,von%,bis%,dreh_x%,dreh_y%)
  13744.                   ELSE
  13745.                     IF punkte_def|(found%)=da|
  13746.                       f%=found_quelle%
  13747.                       found_quelle%=found%
  13748.                       found%=f%
  13749.                       von%=found%-2
  13750.                       bis%=von%+3
  13751.                       dreh_x%=punkte_x%(found_quelle%-1)
  13752.                       dreh_y%=punkte_y%(found_quelle%-1)
  13753.                       do_niv_tangente(found_quelle%,von%,bis%,dreh_x%,dreh_y%)
  13754.                     ENDIF
  13755.                   ENDIF
  13756.                 ENDIF
  13757.               ENDIF
  13758.             ENDIF
  13759.           ENDIF
  13760.         ENDIF
  13761.       ENDIF
  13762.     UNTIL taste|=2
  13763.     DEFMOUSE 3
  13764.   ENDIF
  13765. RETURN
  13766. '
  13767. ' *****************************************************************************
  13768. ' *                               ASCII Editor                                *
  13769. ' *                                                                           *
  13770. ' *                                                                           *
  13771. ' *                                                                          ' ******************************************************************************
  13772. ' *                                                                            *
  13773. ' *                                   CUTOUT                                   *
  13774. ' *                                                                            *
  13775. ' *                                 27.02.1992                                 *
  13776. ' *                                                                            *
  13777. ' ******************************************************************************
  13778. '
  13779. '
  13780. $B+
  13781. $I-
  13782. INLINE scsi%,933
  13783. DIM buffer|(512*2)
  13784. DIM command|(12)
  13785. ' VAR:
  13786. ' apl_id&=APPL_INIT()
  13787. magic%=14031952
  13788. '
  13789. ' serien_nummer$="REGIST00"
  13790. ' serien_nummer_vergleich$="REGIST11"
  13791. serien_nummer$=MKD$(101)
  13792. serien_nummer_vergleich$=MKD$(101 XOR magic%)
  13793. '
  13794. fang_schnittpunkt|=4
  13795. buffer%=0
  13796. buffer_max%=0
  13797. poly_len%=0
  13798. bits%=0
  13799. punkt_eintrag&=0
  13800. x_start&=0
  13801. y_start&=0
  13802. edi_max&=0
  13803. m=0
  13804. m_neu=0
  13805. bit_count|=0
  13806. pixel!=FALSE
  13807. '
  13808. regist_nr%=0
  13809. revision$="1.59"
  13810. zeit%=TIMER
  13811. calamus_nr%=0
  13812. ortho|=45
  13813. ortho=RAD(ortho|)
  13814. ortho2=ortho/2
  13815. x_win&=0                                         ! Window X pos  aktuell
  13816. y_win&=0                                         ! Window Y pos  aktuell
  13817. x_window&=0                                      ! Window X pos  aktuell
  13818. y_window&=0                                      ! Window Y pos  aktuell
  13819. b_window&=0                                      ! Window Breite aktuell
  13820. h_window&=0                                      ! Window Höhe   aktuell
  13821. ~WIND_GET(0,4,scrx&,scry&,scrb&,scrh&)           ! maximaler Desktop
  13822. wmx%=scrb&-62
  13823. wmy%=scrh&-57+scry&
  13824. desk_breite&=scrb&
  13825. desk_hoehe&=scrh&+scry&
  13826. gross_bildschirm!=FALSE
  13827. IF desk_breite&>640 OR desk_hoehe&>400
  13828.   gross_bildschirm!=TRUE
  13829. ENDIF
  13830. ADD scrx&,42                                     ! Position Window X+Menuleiste
  13831. SUB scrb&,42                                     ! Breite   Window
  13832. scrb_old&=scrb&
  13833. scrh_old&=scrh&
  13834. res_x%=0                                         ! Auflösung x in mm
  13835. res_y%=0                                         ! Auflösung y in mm
  13836. res_x_old%=0
  13837. res_y_old%=0
  13838. x_layer%=0
  13839. y_layer%=0
  13840. x_layero%=0
  13841. y_layero%=0
  13842. x_offset&=0                                      ! Nullpunkt x im Fenster
  13843. y_offset&=0                                      ! Nullpunkt y im Fenster
  13844. x_offset_old&=0
  13845. y_offset_old&=0
  13846. x_mouse%=0
  13847. y_mouse%=0
  13848. x_mouse_old%=0
  13849. y_mouse_old%=0
  13850. x_mouse_0%=0
  13851. y_mouse_0%=0
  13852. objectbox_x0%=0
  13853. objectbox_y0%=0
  13854. objectbox_x1%=0
  13855. objectbox_y1%=0
  13856. grid%=10                                        ! raster mm
  13857. schraff_dist=201
  13858. schraff_inc=0
  13859. schraff_fix_abst=0
  13860. schraff_winkel=0
  13861. schraff_start%=0
  13862. schraff_y_min%=0
  13863. bit_count_max|=6
  13864. geraden_fehler|=1
  13865. lange_gerade%=4000
  13866. schmutz_filter%=20
  13867. knick_winkel_max=RAD(140)
  13868. bogen_max=PI/2/2
  13869. abweichung_gerade%=0.5*100
  13870. last_poly_s%=-1
  13871. last_poly_e%=-1
  13872. taste|=0
  13873. zoom=1
  13874. zoom_old=1
  13875. zoom_100=1
  13876. pointer%=0                                       ! Zeiger auf Punkteliste
  13877. found%=0                                         ! gefundener Punkt bei SNAP
  13878. found_t%=0                                       ! gefundener Kurvenparameter
  13879. schnittpunkt_genau%=16                           ! Zerlegung Bezier in Teile
  13880. anz_schnittpunkte%=0                             ! Anzahl Schnittpunkte
  13881. b_vari=100
  13882. i%=0                                             ! allgemeiner Schleifenzähler
  13883. ii%=0
  13884. iii%=0
  13885. d0%=0
  13886. dx%=0
  13887. dy%=0
  13888. dx=0
  13889. dy=0
  13890. schnitt_laenge=0
  13891. kostfak=1
  13892. gkosten=0
  13893. px0%=0
  13894. py0%=0
  13895. px1%=0
  13896. py1%=0
  13897. px2%=0
  13898. py2%=0
  13899. px3%=0
  13900. py3%=0
  13901. m_square_breite&=&H3000
  13902. m_square_hoehe&=&H3000
  13903. kerning_256|=m_square_breite& DIV 256
  13904. len_pair_daten&=0
  13905. z_hoehe_def%=16384                               ! Höhe des definierten Zsatzes
  13906. z_breite_def%=16384                              ! Breite     "
  13907. zeichen_hoehe%=3000                              ! gewünschte Höhe in 1/100 mm
  13908. versal_def%=0                                    ! Versal     Höhe in 1/100 mm
  13909. z_ascii_scale=zeichen_hoehe%/z_hoehe_def%        ! Scaling
  13910. z_ascii_scale_old=z_ascii_scale                  ! save Scaling
  13911. global_kerning%=1280                             ! globales Kerning
  13912. zeilen_abstand_prozent%=125                      ! relativer Zeilen Abstand
  13913. zeilen_abstand%=zeichen_hoehe%*zeilen_abstand_prozent%/100-zeichen_hoehe%
  13914. z_cursor_x_spalte%=0                             ! Start String
  13915. z_cursor_x%=0                                    ! ASCII Zeichen Cursor X
  13916. z_cursor_y%=0                                    ! ASCII Zeichen Cursor y
  13917. z_cursor_x_old%=0                                ! letztes Zeichen Cursor X
  13918. z_cursor_y_old%=0                                ! letztes Zeichen Cursor y
  13919. z_ascii_old%=0                                   ! letztes Zeichen ASCII+32
  13920. z_satz_pointer%=0                                ! Pointer auf Zeichensatz
  13921. state_rs232&=0                                   ! Centronics aktiv
  13922. state_hp&=0                                      ! HPGL aktiv
  13923. folie_x%=1188                                    ! Folien Grö₧e
  13924. folie_y%=840
  13925. plotter_x_min%=0
  13926. plotter_y_min%=0
  13927. gdu=0                                            ! 100*Plottereinheit
  13928. sel_start%=0
  13929. sel_end%=0
  13930. gtxv&=0
  13931. gtyv&=0
  13932. gtbv&=216
  13933. gthv&=297
  13934. gtdpiv&=300
  13935. gtfarbev&=3
  13936. gtkontrav&=3
  13937. exit_button&=0
  13938. cursor_x&=0
  13939. cursor_y&=0
  13940. ofn_ver|=0
  13941. overcut|=0
  13942. geschlossen%=0
  13943. '
  13944. phi_x_3d=0
  13945. phi_y_3d=0
  13946. a2_3d=0
  13947. '
  13948. daten_ptr%=0
  13949. work_space%=0
  13950. '
  13951. ' CONST:
  13952. '
  13953. IF FRE(0)>4000000
  13954.   p_max%=99999
  13955. ELSE
  13956.   p_max%=60000
  13957. ENDIF
  13958. ma|=0
  13959. da|=1
  13960. b1|=2
  13961. b2|=3
  13962. b3|=4
  13963. ein_drittel=1/3
  13964. fmin=2.225073858507E-307
  13965. fmin1=0.005
  13966. max1=0.995
  13967. pimal2=PI*2
  13968. pihalbe=PI/2
  13969. pidrittel=PI/3
  13970. fang_rad%=8*100                                  ! FANGRADIUS
  13971. p_at%=XBIOS(3)+76                                ! PRINT AT FÜR X,Y
  13972. p_at_zoom%=p_at%-12                              ! PRINT AT FÜR ZOOM
  13973. x_bytes%=(scrb&+42)/8                            ! BYTES IN X RICHTUNG DESKTOP
  13974. '
  13975. ' CONST: Menuleiste
  13976. '
  13977. tree00&=0
  13978. tree0_adr%=0
  13979. datei&=3
  13980. eintrag&=4
  13981. mfenster&=10
  13982. mtext&=5
  13983. mzedi&=6
  13984. spezial&=7
  13985. all_clear&=8
  13986. bbogen&=9
  13987. mschnitt&=11
  13988. '
  13989. tree01&=1
  13990. tree1_adr%=0
  13991. back_main&=3
  13992. fwd_main&=4
  13993. gerade&=5
  13994. kurve&=6
  13995. schliess&=7
  13996. verrunde&=8
  13997. loeschen&=9
  13998. lock&=10
  13999. snap&=11
  14000. bild&=12
  14001. zircel&=13
  14002. bezier4&=14
  14003. schere&=15
  14004. ' fenster&=15
  14005. '
  14006. tree02&=2
  14007. tree2_adr%=0
  14008. back_datei&=3
  14009. fwd_datei&=4
  14010. l_vek&=5
  14011. l_merge&=6
  14012. r_macro&=7
  14013. r_cvg&=8
  14014. l_img&=9
  14015. l_pic&=10
  14016. ordner&=11
  14017. s_vek&=12
  14018. s_plt&=13
  14019. a_plotter&=14
  14020. '
  14021. tree03&=3
  14022. tree3_adr%=0
  14023. back_fenster&=3
  14024. fwd_fenster&=4
  14025. fmove&=5
  14026. blitz&=6
  14027. fcopy&=7
  14028. fzoom&=8
  14029. fzoomp&=9
  14030. fdreh&=10
  14031. fspiegel&=11
  14032. fkursiv&=12
  14033. dreh3d&=13
  14034. drehxp&=14
  14035. drehxm&=15
  14036. drehym&=16
  14037. drehyp&=17
  14038. floesch&=18
  14039. fzoom1&=19
  14040. '
  14041. tree04&=4
  14042. tree4_adr%=0
  14043. back_spezial&=3
  14044. gtepson&=4
  14045. handy&=5
  14046. kontour&=6
  14047. filter&=7
  14048. trace&=8
  14049. smooth&=9
  14050. simag&=10
  14051. '
  14052. tree05&=5
  14053. tree5_adr%=0
  14054. back_text&=3
  14055. fwd_text&=4
  14056. z_edit&=5
  14057. z_editor&=6
  14058. z_string&=7
  14059. z_t_hoehe&=8
  14060. z_t_abstand&=9
  14061. z_g_kerning&=10
  14062. z_read_ascii&=11
  14063. l_font&=12
  14064. s_font&=14
  14065. c_font&=13
  14066. '
  14067. tree06&=6
  14068. tree6_adr%=0
  14069. t_hoehe&=1
  14070. '
  14071. tree07&=7
  14072. tree7_adr%=0
  14073. zabs&=1
  14074. '
  14075. tree08&=8                                         ! String Text
  14076. tree8_adr%=0
  14077. string_text&=1
  14078. breite&=3
  14079. string_breite&=4
  14080. versal&=5
  14081. string_versal&=6
  14082. pfad&=7
  14083. do_kerning&=8
  14084. string_kreis&=9
  14085. string_kreis_von&=10
  14086. string_kreis_bis&=11
  14087. fontname&=13
  14088. c_text&=14
  14089. icon_pair&=15
  14090. icon_trep&=16
  14091. '
  14092. tree09&=9                                         ! Zeichen Editor
  14093. tree9_adr%=0
  14094. back_editor&=3
  14095. m_matrix&=4
  14096. z_matrix&=5
  14097. move_matrix&=6
  14098. kerning_links&=7
  14099. kerning_rechts&=8
  14100. kerning_auto&=9
  14101. z_get&=10
  14102. z_muell&=11
  14103. z_up&=13
  14104. z_down&=14
  14105. z_char&=15
  14106. '
  14107. tree10&=10
  14108. tree10_adr%=0
  14109. b_kerning&=2
  14110. g_kerning&=3
  14111. '
  14112. tree11&=11                                       ! Optimier
  14113. tree11_adr%=0
  14114. del_ma&=4
  14115. del_ge&=6
  14116. del_el&=8
  14117. '
  14118. tree12&=12
  14119. tree12_adr%=0
  14120. bstep&=1
  14121. '
  14122. tree13&=13                                       ! Info
  14123. tree13_adr%=0
  14124. vernr&=7
  14125. version&=4
  14126. firma&=4
  14127. strasse&=7
  14128. stadt&=10
  14129. punkte&=15
  14130. rest&=17
  14131. '
  14132. tree14&=14                                       ! Auflösung
  14133. tree14_adr%=0
  14134. rx1&=8
  14135. ry1&=10
  14136. rx2&=12
  14137. ry2&=13
  14138. rx3&=16
  14139. ry3&=17
  14140. get_pf&=19
  14141. r1&=4
  14142. r2&=5
  14143. r3&=6
  14144. '
  14145. tree15&=15                                       ! Plotter INIT
  14146. tree15_adr%=0
  14147. p_init1&=3
  14148. p_init2&=4
  14149. gdu01&=9
  14150. gdu025&=10
  14151. gdu05&=11
  14152. gdu1&=12
  14153. overcut&=16
  14154. cent&=18
  14155. rs232&=20
  14156. hp&=23
  14157. gp&=24
  14158. mgl&=25
  14159. ma&=29
  14160. da&=30
  14161. '
  14162. tree16&=16                                       ! Pfade und Parameter
  14163. tree16_adr%=0
  14164. pv&=5
  14165. pp&=7
  14166. pfi&=9
  14167. pg&=11
  14168. pf&=13
  14169. df&=15
  14170. p1&=17
  14171. p2&=19
  14172. schnitt&=21
  14173. gdu&=23
  14174. foliex&=25
  14175. foliey&=27
  14176. warn&=29
  14177. cancel&=31
  14178. '
  14179. tree17&=17
  14180. tree17_adr%=0
  14181. outl&=1
  14182. outl_anz&=2
  14183. '
  14184. tree18&=18
  14185. tree18_adr%=0
  14186. schraffd&=1
  14187. schraffi&=2
  14188. schrafix&=3
  14189. schraffw&=4
  14190. schraffa&=7
  14191. schrafff&=8
  14192. '
  14193. tree19&=19
  14194. tree19_adr%=0
  14195. necka&=1
  14196. neckp&=2
  14197. '
  14198. tree20&=20                                      ! Füll
  14199. tree20_adr%=0
  14200. fill1&=3
  14201. fill2&=5
  14202. fill3&=7
  14203. fill4&=9
  14204. fill5&=11
  14205. fill6&=13
  14206. fill7&=15
  14207. fillcancel&=17
  14208. '
  14209. tree21&=21                                      ! Trace
  14210. tree21_adr%=0
  14211. t_step&=7
  14212. t_gerade&=8
  14213. t_schmutz&=9
  14214. bschwelle&=21
  14215. knickwinkel&=22
  14216. bogen_max&=23
  14217. abweichung_gerade&=24
  14218. nur_gerade&=13
  14219. trace_cancel&=14
  14220. gerade_bezier&=30
  14221. '
  14222. tree22&=22
  14223. tree22_adr%=0
  14224. scann_x&=1
  14225. scann_y&=2
  14226. '
  14227. tree23&=23
  14228. tree23_adr%=0
  14229. radius&=1
  14230. '
  14231. tree24&=24
  14232. tree24_adr%=0
  14233. grau&=6
  14234. stark&=7
  14235. selgrau0&=4
  14236. selgrau&=5
  14237. sellinie&=8
  14238. alle&=9
  14239. auswahl&=10
  14240. '
  14241. tree25&=25                               ! Bogen
  14242. tree25_adr%=0
  14243. backboge&=3
  14244. vkreis&=4
  14245. kreis3&=5
  14246. kreisbog&=6
  14247. bogen3&=7
  14248. bogen2&=8
  14249. ellipse&=9
  14250. elbogen&=10
  14251. eckrund&=11
  14252. '
  14253. tree26&=26                               ! Koordinaten
  14254. tree26_adr%=0
  14255. absolut&=2
  14256. relativ&=3
  14257. polar&=4
  14258. '
  14259. tree27&=27                               ! Calamus Versions Nr.
  14260. tree27_adr%=0
  14261. calamus_nr&=1
  14262. '
  14263. tree28&=28                               ! GT 6000
  14264. tree28_adr%=0
  14265. gtscan&=47
  14266. gtx&=38
  14267. gty&=44
  14268. gtb&=42
  14269. gth&=43
  14270. gtcancel&=46
  14271. gtpresca&=45
  14272. gtdpi&=35
  14273. gtdpimin&=33
  14274. gtdpiplu&=34
  14275. gtprewin&=1
  14276. gtstate&=5
  14277. gtkeiner&=9
  14278. gtraster&=10
  14279. gtweich&=11
  14280. gthart&=12
  14281. gtkeine&=15
  14282. gtrot&=18
  14283. gtgruen&=17
  14284. gtblau&=16
  14285. k0&=22
  14286. k1&=23
  14287. k2&=24
  14288. k3&=25
  14289. k4&=26
  14290. k5&=27
  14291. k6&=28
  14292. '
  14293. tree29&=29                               ! Kosten
  14294. tree29_adr%=0
  14295. kostfak&=1
  14296. sl&=2
  14297. gkosten&=4
  14298. '
  14299. tree30&=30                               ! Select Filter
  14300. tree30_adr%=0
  14301. abs_filter&=1
  14302. '
  14303. tree31&=31                               ! Select Fenster
  14304. tree31_adr%=0
  14305. ohnecopy&=1
  14306. mitcopy&=6
  14307. anz_rot&=3
  14308. phi_rot&=4
  14309. numohne&=5
  14310. ausricht_vector&=7
  14311. '
  14312. tree32&=32                               ! Select Spiegel
  14313. tree32_adr%=0
  14314. anbox&=2
  14315. anachse&=1
  14316. '
  14317. tree33&=33
  14318. tree33_adr%=0
  14319. teil&=1
  14320. '
  14321. tree34&=34                               ! Schnittpunkt
  14322. tree34_adr%=0
  14323. backschn&=3
  14324. fwdschn&=4
  14325. trimm&=5
  14326. knack&=6
  14327. lot&=7
  14328. teilen&=8
  14329. lang&=9
  14330. schnitt2&=10
  14331. schnittn&=11
  14332. delseg&=12
  14333. delel&=13
  14334. schmelz&=14
  14335. '
  14336. tree35&=35                              ! Select Copy
  14337. tree35_adr%=0
  14338. copysing&=1
  14339. copymul&=2
  14340. cx&=4
  14341. cy&=5
  14342. canz&=6
  14343. cdist&=7
  14344. '
  14345. tree36&=36                              ! Ausrichten
  14346. tree36_adr%=0
  14347. a_olinks&=1
  14348. a_oben&=2
  14349. a_orechts&=3
  14350. a_links&=4
  14351. a_mitte&=5
  14352. a_rechts&=6
  14353. a_ulinks&=7
  14354. a_unten&=8
  14355. a_urechts&=9
  14356. '
  14357. tree37&=37                              ! Scalieren
  14358. tree37_adr%=0
  14359. scale_interactiv&=1
  14360. scale_numerisch&=2
  14361. scale_breite&=4
  14362. scale_hoehe&=5
  14363. '
  14364. tree38&=38                              ! Ordner
  14365. tree38_adr%=0
  14366. ordnert&=1
  14367. ordnerok&=2
  14368. ordnerca&=3
  14369. '
  14370. tree39&=39                              ! Kerning
  14371. tree39_adr%=0
  14372. kerning_box&=1
  14373. kerning_minus&=3
  14374. kerning_plus&=4
  14375. kerning_last&=2
  14376. kerning_next&=5
  14377. kerning_exit&=6
  14378. kerning_minus2&=9
  14379. kerning_plus2&=10
  14380. kerning_last2&=8
  14381. kerning_next2&=11
  14382. kerning_clear&=7
  14383. kerning_info&=13
  14384. kerning_pair&=15
  14385. '
  14386. tree40&=40                              ! Plotter OUTPUT
  14387. tree40_adr%=0
  14388. pl100&=3
  14389. plschieber&=4
  14390. plschere&=7
  14391. plschereauf&=5
  14392. plscherezu&=6
  14393. plschere&=7
  14394. '
  14395. tree41&=41                              ! Select Neigen
  14396. tree41_adr%=0
  14397. neige_grad&=2
  14398. neige_vertical&=3
  14399. neige_horizontal&=4
  14400. neige_interaktiv&=5
  14401. '
  14402. ' FLAG:
  14403. '
  14404. undo!=FALSE
  14405. geschlossen!=FALSE
  14406. ok!=FALSE                                        ! allgemein
  14407. layer_geladen!=FALSE                             ! ist  Layer geladen
  14408. layer!=FALSE                                     ! soll Layer gezeigt werden
  14409. window_fulled!=TRUE                              ! ist  Fenster schon gro₧
  14410. voll_bild!=FALSE                                 ! ist  Fenster komplett auf Crt
  14411. eintragen!=FALSE                                 ! ist  eintragen aktiv
  14412. bogen!=FALSE
  14413. mtext!=FALSE
  14414. meditor!=FALSE
  14415. datei!=FALSE
  14416. fenster!=FALSE
  14417. schnittpunktm!=FALSE
  14418. loeschen!=FALSE                                  ! ist  loeschen aktiv
  14419. neues_polygon!=TRUE                              ! erster Punkt im Polygon
  14420. found!=FALSE                                     ! gefunden bei Fangradius
  14421. marker!=FALSE                                    ! sollen Marker gezeigt werden
  14422. marker_select!=FALSE                             ! soll   Marker selectiert
  14423. modified!=FALSE                                  ! wurde Vektorbild geändert
  14424. font_geladen!=FALSE                              ! ist ein Font geladen
  14425. outlined!=FALSE                                  ! wurde Bitmap schon outlined
  14426. auto_schraff!=TRUE
  14427. schraff_fix_abst!=FALSE
  14428. einpassen!=FALSE
  14429. tangente!=FALSE
  14430. tangenten_lock!=TRUE
  14431. warn!=FALSE
  14432. gp_gl!=FALSE                                     ! HPGL oder GPGL
  14433. tasten_rep!=FALSE
  14434. absolut!=TRUE
  14435. relativ!=FALSE
  14436. polar!=FALSE
  14437. absolut_old!=FALSE
  14438. polar_old!=FALSE
  14439. fangklein!=FALSE                                 ! Fangradius gro₧
  14440. fadenkreuz!=FALSE
  14441. polygonmode!=TRUE                                ! Polygonmodus
  14442. ortho!=FALSE
  14443. grid!=FALSE
  14444. scrolled!=FALSE
  14445. move!=FALSE
  14446. drei_d!=FALSE
  14447. status_wechsel!=FALSE
  14448. grid_wechsel!=FALSE
  14449. swap!=FALSE
  14450. '
  14451. ' ARRAY:
  14452. '
  14453. DIM smfdb%(8),dmfdb%(8),p%(8)
  14454. DIM z_smfdb%(8),z_dmfdb%(8),z_p%(8),q_dmfdb%(8)
  14455. DIM punkte_x%(p_max%),punkte_y%(p_max%),punkte_def|(p_max%),buffer%(p_max%/2)
  14456. DIM x_meta%(127),y_meta%(127),punkte_def1|(32)
  14457. ARRAYFILL punkte_def1|(),1
  14458. DIM bezier_x&(33),bezier_y&(33)
  14459. DIM m$(87)
  14460. DIM mk%(60,2)
  14461. DIM m_square%(5)
  14462. DIM z_editor%(32)
  14463. DIM z_ascii%(224),z_kerning&(224*16),z_daten&(224*280),z_pair&(224),z_pair|(224),z_pair_daten|(2000)
  14464. DIM sx1%(9),sy1%(9),sx2%(9),sy2%(9),sp1(9),sp2(9)
  14465. DIM zeilen_buffer$(60)
  14466. rette$=SPACE$(32000)
  14467. pfad$=SPACE$(80)
  14468. kerning_string$=SPACE$(60)
  14469. pfad_pic$=SPACE$(80)
  14470. pfad_img$=SPACE$(80)
  14471. pfad_vek$=SPACE$(80)
  14472. pfad_vek_root$=SPACE$(80)
  14473. pfad_cvg$=SPACE$(80)
  14474. pfad_fnt$=SPACE$(80)
  14475. pfad_cfn$=SPACE$(80)
  14476. default_font$=SPACE$(10)
  14477. programm$=SPACE$(10)
  14478. programm_font$=SPACE$(10)
  14479. test_datei$=SPACE$(10)
  14480. object$=SPACE$(80)
  14481. p_init1$=SPACE$(40)
  14482. p_init2$=SPACE$(40)
  14483. abc$="CutOut Test"
  14484. ma$="M"
  14485. da$="D"
  14486. cutout_font$="CUTOUTOFN"
  14487. calamus_font_grafik$=MKI$(159)+MKI$(15)+MKI$(1)+SPACE$(320)
  14488. ok$="OK"
  14489. ein_space$=" "
  14490. x_y$="X|Y"
  14491. erster$="1. "
  14492. zweiter$="2. "
  14493. help_on$="ON "
  14494. help_off$="OFF"
  14495. vek$="VEK"
  14496. cvg$="CVG"
  14497. img$="IMG"
  14498. plt$="PLT"
  14499. calamus$="CALAMUS"
  14500. cutout$="CutOut"
  14501. ' ****************************************************************************
  14502. OPEN "I",#1,"SYS\LANGUAGE.DRV"
  14503. LINE INPUT #1,pd_menu$
  14504. LINE INPUT #1,pd_datei$
  14505. LINE INPUT #1,pd_editieren$
  14506. LINE INPUT #1,pd_fenster$
  14507. LINE INPUT #1,pd_schnittpunkt$
  14508. LINE INPUT #1,pd_bogen$
  14509. LINE INPUT #1,pd_text$
  14510. LINE INPUT #1,pd_zeicheneditor$
  14511. LINE INPUT #1,pd_extra$
  14512. LINE INPUT #1,pd_quit$
  14513. '
  14514. LINE INPUT #1,pd_optionen$
  14515. LINE INPUT #1,pd_marker_anzeigen$
  14516. LINE INPUT #1,pd_tangenten_anzeigen$
  14517. LINE INPUT #1,pd_fangradius_klein$
  14518. LINE INPUT #1,pd_polygon_modus$
  14519. LINE INPUT #1,pd_schnittpunkt_genau$
  14520. LINE INPUT #1,pd_koordinaten$
  14521. LINE INPUT #1,pd_element_selektieren$
  14522. LINE INPUT #1,pd_polygon_selektieren$
  14523. LINE INPUT #1,pd_warnmeldungen$
  14524. LINE INPUT #1,pd_skaliere_alles$
  14525. LINE INPUT #1,pd_punkte_nivellieren$
  14526. LINE INPUT #1,pd_tangente$
  14527. LINE INPUT #1,pd_plotflaeche$
  14528. LINE INPUT #1,pd_bezier_step_aendern$
  14529. LINE INPUT #1,pd_plotter_einstellung$
  14530. LINE INPUT #1,pd_kosten_faktor$
  14531. LINE INPUT #1,pd_pfad_sichern$
  14532. '
  14533. LINE INPUT #1,pd_figur$
  14534. LINE INPUT #1,pd_rechteck$
  14535. LINE INPUT #1,pd_n_eck$
  14536. LINE INPUT #1,pd_polygon_outline$
  14537. LINE INPUT #1,pd_aequidistante$
  14538. LINE INPUT #1,pd_frame$
  14539. LINE INPUT #1,pd_polygone_ausrichten$
  14540. LINE INPUT #1,pd_polygone_zentrieren$
  14541. LINE INPUT #1,pd_polygone_vereinen$
  14542. LINE INPUT #1,pd_polygone_fuellen$
  14543. LINE INPUT #1,pd_einzelne_punkte_loeschen$
  14544. '
  14545. LINE INPUT #1,pd_linie$
  14546. LINE INPUT #1,pd_bezier_vektor$
  14547. LINE INPUT #1,pd_bezier_einfuegen$
  14548. LINE INPUT #1,pd_tausche_bezier_vektor$
  14549. LINE INPUT #1,pd_knacken$
  14550. LINE INPUT #1,pd_trimmen$
  14551. LINE INPUT #1,pd_lot$
  14552. LINE INPUT #1,pd_verlaengern$
  14553. LINE INPUT #1,pd_teilen$
  14554. LINE INPUT #1,pd_messen$
  14555. LINE INPUT #1,pd_schnittp_2er$
  14556. LINE INPUT #1,pd_schnittp_n$
  14557. '
  14558. LINE INPUT #1,pd_effekt$
  14559. LINE INPUT #1,pd_parameter_schraffur$
  14560. LINE INPUT #1,pd_polygon_schraffieren$
  14561. LINE INPUT #1,pd_alles_schraffieren$
  14562. LINE INPUT #1,pd_schatten$
  14563. LINE INPUT #1,pd_einpassen$
  14564. LINE INPUT #1,pd_kugel$
  14565. '
  14566. LINE INPUT #1,lade$
  14567. LINE INPUT #1,sichere$
  14568. LINE INPUT #1,fuege_ein$
  14569. LINE INPUT #1,vektor$
  14570. LINE INPUT #1,macro$
  14571. LINE INPUT #1,daten$
  14572. LINE INPUT #1,zeichensatz$
  14573. LINE INPUT #1,kein$
  14574. LINE INPUT #1,keine$
  14575. LINE INPUT #1,ja_nein$
  14576. LINE INPUT #1,waehle$
  14577. LINE INPUT #1,fehler$
  14578. LINE INPUT #1,scannen$
  14579. LINE INPUT #1,pre_view$
  14580. LINE INPUT #1,ascii_importieren$
  14581. LINE INPUT #1,ascii_exportieren$
  14582. LINE INPUT #1,schriftblock$
  14583. LINE INPUT #1,radius_zu$
  14584. LINE INPUT #1,winkel_zu$
  14585. LINE INPUT #1,leider$
  14586. LINE INPUT #1,winkel_einstellen$
  14587. LINE INPUT #1,spiegelachse$
  14588. LINE INPUT #1,lupe_mal$
  14589. LINE INPUT #1,fensterbereich$
  14590. LINE INPUT #1,drehzentrum$
  14591. LINE INPUT #1,ordner_exist$
  14592. LINE INPUT #1,kein_leer$
  14593. LINE INPUT #1,suche_schnittpunkte$
  14594. LINE INPUT #1,gleiches_polygon$
  14595. LINE INPUT #1,bezugs$
  14596. LINE INPUT #1,zentriere$
  14597. LINE INPUT #1,huellkurve$
  14598. LINE INPUT #1,huellkurve1$
  14599. LINE INPUT #1,berechne$
  14600. LINE INPUT #1,rechte_taste$
  14601. LINE INPUT #1,endpunkt$
  14602. LINE INPUT #1,lot_an$
  14603. LINE INPUT #1,noname$
  14604. LINE INPUT #1,symbol$
  14605. LINE INPUT #1,orginal_fenster$
  14606. LINE INPUT #1,dmc_font$
  14607. LINE INPUT #1,bild_datei_zu$
  14608. LINE INPUT #1,stad_laden$
  14609. LINE INPUT #1,plotter_ist_off$
  14610. LINE INPUT #1,plot_datei$
  14611. LINE INPUT #1,kein_treiber$
  14612. LINE INPUT #1,schnittstelle_auf$
  14613. LINE INPUT #1,polygone_vereinen$
  14614. LINE INPUT #1,loesche_einzelne$
  14615. LINE INPUT #1,quelle$
  14616. LINE INPUT #1,ziel$
  14617. LINE INPUT #1,nivelliere$
  14618. LINE INPUT #1,alle_daten_l$
  14619. LINE INPUT #1,ganzer_zeichensatz$
  14620. LINE INPUT #1,font_daten_loeschen$
  14621. LINE INPUT #1,zeichen_matrix$
  14622. LINE INPUT #1,datei_existiert$
  14623. LINE INPUT #1,datei_ueberschreiben$
  14624. LINE INPUT #1,glaetten_mit$
  14625. LINE INPUT #1,gerade_bezier$
  14626. LINE INPUT #1,glaetten$
  14627. LINE INPUT #1,bereich$
  14628. LINE INPUT #1,path$
  14629. LINE INPUT #1,help_mittelpunkt$
  14630. LINE INPUT #1,help_radius$
  14631. LINE INPUT #1,help_position$
  14632. LINE INPUT #1,help_startwinkel$
  14633. LINE INPUT #1,help_endwinkel$
  14634. LINE INPUT #1,help_polygon$
  14635. LINE INPUT #1,help_punkt$
  14636. LINE INPUT #1,help_linie$
  14637. LINE INPUT #1,help_element$
  14638. LINE INPUT #1,help_verrund$
  14639. LINE INPUT #1,help_loesche$
  14640. LINE INPUT #1,help_trenn$
  14641. LINE INPUT #1,help_move$
  14642. LINE INPUT #1,help_sel$
  14643. LINE INPUT #1,help_move_window$
  14644. LINE INPUT #1,help_rahmen$
  14645. LINE INPUT #1,help_edit$
  14646. LINE INPUT #1,help_bezier$
  14647. LINE INPUT #1,help_status$
  14648. LINE INPUT #1,help_ortho$
  14649. LINE INPUT #1,help_grid$
  14650. LINE INPUT #1,help_free$
  14651. LINE INPUT #1,help_snap$
  14652. LINE INPUT #1,help_editor$
  14653. LINE INPUT #1,help_pfad$
  14654. CLOSE #1
  14655. ' ****************************************************************************
  14656. integer%=VARPTR(punkte_x%(1))-VARPTR(punkte_x%(0))  ! Länge in Bytes Integer
  14657. '
  14658. z_editor%(0)=2048                                   ! Top      Line   Y
  14659. z_editor%(1)=3072                                   ! Ascent   Line   Y
  14660. z_editor%(2)=6144                                   ! Half     Line   Y
  14661. z_editor%(3)=11264                                  ! Base     Line   Y
  14662. z_editor%(4)=13952                                  ! Descent  Line   Y
  14663. z_editor%(5)=14336                                  ! Bottom   Line   Y
  14664. '
  14665. z_editor%(6)=0                                      ! Matrix   links  X
  14666. z_editor%(7)=16384                                  ! Matrix   rechts X
  14667. z_editor%(8)=1280                                   ! Kerning  links  X
  14668. z_editor%(9)=1280                                   ! Kerning  links  X
  14669. z_editor%(10)=1280                                  ! Kerning  links  X
  14670. z_editor%(11)=1280                                  ! Kerning  links  X
  14671. z_editor%(12)=1280                                  ! Kerning  links  X
  14672. z_editor%(13)=1280                                  ! Kerning  links  X
  14673. z_editor%(14)=1280                                  ! Kerning  links  X
  14674. z_editor%(15)=1280                                  ! Kerning  links  X
  14675. z_editor%(16)=15104                                 ! Kerning  rechts X
  14676. z_editor%(17)=15104                                 ! Kerning  rechts X
  14677. z_editor%(18)=15104                                 ! Kerning  rechts X
  14678. z_editor%(19)=15104                                 ! Kerning  rechts X
  14679. z_editor%(20)=15104                                 ! Kerning  rechts X
  14680. z_editor%(21)=15104                                 ! Kerning  rechts X
  14681. z_editor%(22)=15104                                 ! Kerning  rechts X
  14682. z_editor%(23)=15104                                 ! Kerning  rechts X
  14683. z_editor%(24)=z_editor%(0)                          ! Kerning         Y
  14684. z_editor%(25)=(z_editor%(5)-z_editor%(0))/8         ! Kerning         Y
  14685. z_editor%(26)=z_editor%(24)+z_editor%(25)           ! Kerning         Y
  14686. z_editor%(27)=z_editor%(26)+z_editor%(25)           ! Kerning         Y
  14687. z_editor%(28)=z_editor%(27)+z_editor%(25)           ! Kerning         Y
  14688. z_editor%(29)=z_editor%(28)+z_editor%(25)           ! Kerning         Y
  14689. z_editor%(30)=z_editor%(29)+z_editor%(25)           ! Kerning         Y
  14690. z_editor%(31)=z_editor%(30)+z_editor%(25)           ! Kerning         Y
  14691. z_editor%(32)=0                                     ! Matrix oben     Y
  14692. '
  14693. ' ******************************************************************************
  14694. ' *                                                                            *
  14695. ' *                             MENU INITIALISIERUNG                           *
  14696. ' *                                                                            *
  14697. ' ******************************************************************************
  14698. '
  14699. BMOVE V:serien_nummer$,V:serien_nummer,8
  14700. BMOVE V:serien_nummer_vergleich$,V:serien_nummer_vergleich,8
  14701. regist_nr%=serien_nummer_vergleich
  14702. IF serien_nummer<>(serien_nummer_vergleich XOR magic%)
  14703.   PRINT "SORRY HACKER"
  14704.   PAUSE 300
  14705.   SYSTEM
  14706. ENDIF
  14707. INLINE zasm_ptr%,4136
  14708. INLINE pack_img%,958
  14709. INLINE calc_bezier%,1050
  14710. INLINE p_num%,360
  14711. INLINE find_line%,356
  14712. INLINE kontour%,216
  14713. INLINE staddec%,184
  14714. INLINE imgdec%,228
  14715. INLINE findexcept%,52
  14716. INLINE findpointexcept%,70
  14717. mfang$=MKI$(7)+MKI$(7)+MKI$(1)+MKI$(0)+MKI$(1)
  14718. mfang$=mfang$+MKI$(&X1111111111111110)
  14719. mfang$=mfang$+MKI$(&X1111111111111110)
  14720. mfang$=mfang$+MKI$(&X1100001110000110)
  14721. mfang$=mfang$+MKI$(&X1100001110000110)
  14722. mfang$=mfang$+MKI$(&X1100001110000110)
  14723. mfang$=mfang$+MKI$(&X1100001110000110)
  14724. mfang$=mfang$+MKI$(&X1111110001111110)
  14725. mfang$=mfang$+MKI$(&X1111110001111110)
  14726. mfang$=mfang$+MKI$(&X1111110001111110)
  14727. mfang$=mfang$+MKI$(&X1100001110000110)
  14728. mfang$=mfang$+MKI$(&X1100001110000110)
  14729. mfang$=mfang$+MKI$(&X1100001110000110)
  14730. mfang$=mfang$+MKI$(&X1100001110000110)
  14731. mfang$=mfang$+MKI$(&X1111111111111110)
  14732. mfang$=mfang$+MKI$(&X1111111111111110)
  14733. mfang$=mfang$+MKI$(&X0)
  14734. '
  14735. mfang$=mfang$+MKI$(&X1111111111111110)
  14736. mfang$=mfang$+MKI$(&X1000000100000010)
  14737. mfang$=mfang$+MKI$(&X1000000100000010)
  14738. mfang$=mfang$+MKI$(&X1000000100000010)
  14739. mfang$=mfang$+MKI$(&X1000000100000010)
  14740. mfang$=mfang$+MKI$(&X1000000100000010)
  14741. mfang$=mfang$+MKI$(&X1000000000000010)
  14742. mfang$=mfang$+MKI$(&X1111110001111110)
  14743. mfang$=mfang$+MKI$(&X1000000000000010)
  14744. mfang$=mfang$+MKI$(&X1000000100000010)
  14745. mfang$=mfang$+MKI$(&X1000000100000010)
  14746. mfang$=mfang$+MKI$(&X1000000100000010)
  14747. mfang$=mfang$+MKI$(&X1000000100000010)
  14748. mfang$=mfang$+MKI$(&X1000000100000010)
  14749. mfang$=mfang$+MKI$(&X1111111111111110)
  14750. mfang$=mfang$+MKI$(&X0)
  14751. '
  14752. mfang_klein$=MKI$(7)+MKI$(7)+MKI$(1)+MKI$(0)+MKI$(1)
  14753. mfang_klein$=mfang_klein$+MKI$(&X0)
  14754. mfang_klein$=mfang_klein$+MKI$(&X0)
  14755. mfang_klein$=mfang_klein$+MKI$(&X11111111111000)
  14756. mfang_klein$=mfang_klein$+MKI$(&X11111111111000)
  14757. mfang_klein$=mfang_klein$+MKI$(&X11001110011000)
  14758. mfang_klein$=mfang_klein$+MKI$(&X11001110011000)
  14759. mfang_klein$=mfang_klein$+MKI$(&X11110001111000)
  14760. mfang_klein$=mfang_klein$+MKI$(&X11110001111000)
  14761. mfang_klein$=mfang_klein$+MKI$(&X11110001111000)
  14762. mfang_klein$=mfang_klein$+MKI$(&X11001110011000)
  14763. mfang_klein$=mfang_klein$+MKI$(&X11001110011000)
  14764. mfang_klein$=mfang_klein$+MKI$(&X11111111111000)
  14765. mfang_klein$=mfang_klein$+MKI$(&X11111111111000)
  14766. mfang_klein$=mfang_klein$+MKI$(&X0)
  14767. mfang_klein$=mfang_klein$+MKI$(&X0)
  14768. mfang_klein$=mfang_klein$+MKI$(&X0)
  14769. '
  14770. mfang_klein$=mfang_klein$+MKI$(&X0)
  14771. mfang_klein$=mfang_klein$+MKI$(&X0)
  14772. mfang_klein$=mfang_klein$+MKI$(&X0)
  14773. mfang_klein$=mfang_klein$+MKI$(&X1111111110000)
  14774. mfang_klein$=mfang_klein$+MKI$(&X1000100010000)
  14775. mfang_klein$=mfang_klein$+MKI$(&X1000100010000)
  14776. mfang_klein$=mfang_klein$+MKI$(&X1000000010000)
  14777. mfang_klein$=mfang_klein$+MKI$(&X1110001110000)
  14778. mfang_klein$=mfang_klein$+MKI$(&X1000000010000)
  14779. mfang_klein$=mfang_klein$+MKI$(&X1000100010000)
  14780. mfang_klein$=mfang_klein$+MKI$(&X1000100010000)
  14781. mfang_klein$=mfang_klein$+MKI$(&X1111111110000)
  14782. mfang_klein$=mfang_klein$+MKI$(&X0)
  14783. mfang_klein$=mfang_klein$+MKI$(&X0)
  14784. mfang_klein$=mfang_klein$+MKI$(&X0)
  14785. mfang_klein$=mfang_klein$+MKI$(&X0)
  14786. '
  14787. mdaten$=MKI$(7)+MKI$(7)+MKI$(1)+MKI$(0)+MKI$(1)
  14788. mdaten$=mdaten$+MKI$(&X1110000000)
  14789. mdaten$=mdaten$+MKI$(&X1110000000)
  14790. mdaten$=mdaten$+MKI$(&X1110000000)
  14791. mdaten$=mdaten$+MKI$(&X1110000000)
  14792. mdaten$=mdaten$+MKI$(&X1110000000)
  14793. mdaten$=mdaten$+MKI$(&X1110000000)
  14794. mdaten$=mdaten$+MKI$(&X1111110001111110)
  14795. mdaten$=mdaten$+MKI$(&X1111110001111110)
  14796. mdaten$=mdaten$+MKI$(&X1111110001111110)
  14797. mdaten$=mdaten$+MKI$(&X1110000000)
  14798. mdaten$=mdaten$+MKI$(&X1110000000)
  14799. mdaten$=mdaten$+MKI$(&X1110000000)
  14800. mdaten$=mdaten$+MKI$(&X1110000000)
  14801. mdaten$=mdaten$+MKI$(&X1110000000)
  14802. mdaten$=mdaten$+MKI$(&X1110000000)
  14803. mdaten$=mdaten$+MKI$(&X0)
  14804. '
  14805. mdaten$=mdaten$+MKI$(&X100000000)
  14806. mdaten$=mdaten$+MKI$(&X100000000)
  14807. mdaten$=mdaten$+MKI$(&X100000000)
  14808. mdaten$=mdaten$+MKI$(&X100000000)
  14809. mdaten$=mdaten$+MKI$(&X100000000)
  14810. mdaten$=mdaten$+MKI$(&X100000000)
  14811. mdaten$=mdaten$+MKI$(&X0)
  14812. mdaten$=mdaten$+MKI$(&X1111110001111110)
  14813. mdaten$=mdaten$+MKI$(&X0)
  14814. mdaten$=mdaten$+MKI$(&X100000000)
  14815. mdaten$=mdaten$+MKI$(&X100000000)
  14816. mdaten$=mdaten$+MKI$(&X100000000)
  14817. mdaten$=mdaten$+MKI$(&X100000000)
  14818. mdaten$=mdaten$+MKI$(&X100000000)
  14819. mdaten$=mdaten$+MKI$(&X100000000)
  14820. mdaten$=mdaten$+MKI$(&X0)
  14821. '
  14822. schwer$=MKI$(7)+MKI$(7)+MKI$(-1)+MKI$(0)+MKI$(1)
  14823. schwer$=schwer$+MKI$(&X0)                     !
  14824. schwer$=schwer$+MKI$(&X0)
  14825. schwer$=schwer$+MKI$(&X11111000000)           !
  14826. schwer$=schwer$+MKI$(&X11111000000)
  14827. schwer$=schwer$+MKI$(&X1100111110000)         !
  14828. schwer$=schwer$+MKI$(&X1100111110000)
  14829. schwer$=schwer$+MKI$(&X10000111111000)        !
  14830. schwer$=schwer$+MKI$(&X10000111111000)
  14831. schwer$=schwer$+MKI$(&X10000111111000)        !
  14832. schwer$=schwer$+MKI$(&X10000111111000)
  14833. schwer$=schwer$+MKI$(&X100000111111100)       !
  14834. schwer$=schwer$+MKI$(&X100000111111100)
  14835. schwer$=schwer$+MKI$(&X100000111111100)       !
  14836. schwer$=schwer$+MKI$(&X100000111111100)
  14837. schwer$=schwer$+MKI$(&X111111011111100)       !!
  14838. schwer$=schwer$+MKI$(&X111111011111100)
  14839. schwer$=schwer$+MKI$(&X111111100000100)       !
  14840. schwer$=schwer$+MKI$(&X111111100000100)
  14841. schwer$=schwer$+MKI$(&X111111100000100)       !
  14842. schwer$=schwer$+MKI$(&X111111100000100)
  14843. schwer$=schwer$+MKI$(&X11111100001000)        !
  14844. schwer$=schwer$+MKI$(&X11111100001000)
  14845. schwer$=schwer$+MKI$(&X11111100001000)        !
  14846. schwer$=schwer$+MKI$(&X11111100001000)
  14847. schwer$=schwer$+MKI$(&X1111100110000)         !
  14848. schwer$=schwer$+MKI$(&X1111100110000)
  14849. schwer$=schwer$+MKI$(&X11111000000)           !
  14850. schwer$=schwer$+MKI$(&X11111000000)
  14851. schwer$=schwer$+MKI$(&X0)                     !
  14852. schwer$=schwer$+MKI$(&X0)
  14853. schwer$=schwer$+MKI$(&X0)                     !
  14854. schwer$=schwer$+MKI$(&X0)
  14855. pfad_read
  14856. reset
  14857. RESERVE -64*1024
  14858. DIM work%((FRE(0)-80*1024)/4)
  14859. daten_ptr%=V:work%(0)
  14860. work_space%=DIM?(work%())*4
  14861. KEYPAD 8
  14862. ~RSRC_LOAD("SYS\CUTOUT.RSC")
  14863. ~RSRC_GADDR(0,tree00&,tree0_adr%)
  14864. ~RSRC_GADDR(0,tree01&,tree1_adr%)
  14865. ~RSRC_GADDR(0,tree02&,tree2_adr%)
  14866. ~RSRC_GADDR(0,tree03&,tree3_adr%)
  14867. ~RSRC_GADDR(0,tree04&,tree4_adr%)
  14868. ~RSRC_GADDR(0,tree05&,tree5_adr%)
  14869. ~RSRC_GADDR(0,tree06&,tree6_adr%)
  14870. ~RSRC_GADDR(0,tree07&,tree7_adr%)
  14871. ~RSRC_GADDR(0,tree08&,tree8_adr%)
  14872. ~RSRC_GADDR(0,tree09&,tree9_adr%)
  14873. ~RSRC_GADDR(0,tree10&,tree10_adr%)
  14874. ~RSRC_GADDR(0,tree11&,tree11_adr%)
  14875. ~RSRC_GADDR(0,tree12&,tree12_adr%)
  14876. ~RSRC_GADDR(0,tree13&,tree13_adr%)
  14877. ~RSRC_GADDR(0,tree14&,tree14_adr%)
  14878. ~RSRC_GADDR(0,tree15&,tree15_adr%)
  14879. ~RSRC_GADDR(0,tree16&,tree16_adr%)
  14880. ~RSRC_GADDR(0,tree17&,tree17_adr%)
  14881. ~RSRC_GADDR(0,tree18&,tree18_adr%)
  14882. ~RSRC_GADDR(0,tree19&,tree19_adr%)
  14883. ~RSRC_GADDR(0,tree20&,tree20_adr%)
  14884. ~RSRC_GADDR(0,tree21&,tree21_adr%)
  14885. ~RSRC_GADDR(0,tree22&,tree22_adr%)
  14886. ~RSRC_GADDR(0,tree23&,tree23_adr%)
  14887. ~RSRC_GADDR(0,tree24&,tree24_adr%)
  14888. ~RSRC_GADDR(0,tree25&,tree25_adr%)
  14889. ~RSRC_GADDR(0,tree26&,tree26_adr%)
  14890. ~RSRC_GADDR(0,tree27&,tree27_adr%)
  14891. ~RSRC_GADDR(0,tree28&,tree28_adr%)
  14892. ~RSRC_GADDR(0,tree29&,tree29_adr%)
  14893. ~RSRC_GADDR(0,tree30&,tree30_adr%)
  14894. ~RSRC_GADDR(0,tree31&,tree31_adr%)
  14895. ~RSRC_GADDR(0,tree32&,tree32_adr%)
  14896. ~RSRC_GADDR(0,tree33&,tree33_adr%)
  14897. ~RSRC_GADDR(0,tree34&,tree34_adr%)
  14898. ~RSRC_GADDR(0,tree35&,tree35_adr%)
  14899. ~RSRC_GADDR(0,tree36&,tree36_adr%)
  14900. ~RSRC_GADDR(0,tree37&,tree37_adr%)
  14901. ~RSRC_GADDR(0,tree38&,tree38_adr%)
  14902. ~RSRC_GADDR(0,tree39&,tree39_adr%)
  14903. ~RSRC_GADDR(0,tree40&,tree40_adr%)
  14904. ~RSRC_GADDR(0,tree41&,tree41_adr%)
  14905. ~FORM_CENTER(tree6_adr%)
  14906. ~FORM_CENTER(tree7_adr%)
  14907. ~FORM_CENTER(tree8_adr%)
  14908. ~FORM_CENTER(tree10_adr%)
  14909. ~FORM_CENTER(tree11_adr%)
  14910. ~FORM_CENTER(tree12_adr%)
  14911. ~FORM_CENTER(tree13_adr%)
  14912. ~FORM_CENTER(tree14_adr%)
  14913. ~FORM_CENTER(tree15_adr%)
  14914. ~FORM_CENTER(tree16_adr%)
  14915. ~FORM_CENTER(tree17_adr%)
  14916. ~FORM_CENTER(tree18_adr%)
  14917. ~FORM_CENTER(tree19_adr%)
  14918. ~FORM_CENTER(tree20_adr%)
  14919. ~FORM_CENTER(tree21_adr%)
  14920. ~FORM_CENTER(tree22_adr%)
  14921. ~FORM_CENTER(tree23_adr%)
  14922. ~FORM_CENTER(tree24_adr%)
  14923. ~FORM_CENTER(tree26_adr%)
  14924. ~FORM_CENTER(tree27_adr%)
  14925. ~FORM_CENTER(tree28_adr%)
  14926. ~FORM_CENTER(tree29_adr%)
  14927. ~FORM_CENTER(tree30_adr%)
  14928. ~FORM_CENTER(tree31_adr%)
  14929. ~FORM_CENTER(tree32_adr%)
  14930. ~FORM_CENTER(tree33_adr%)
  14931. ~FORM_CENTER(tree35_adr%)
  14932. ~FORM_CENTER(tree36_adr%)
  14933. ~FORM_CENTER(tree37_adr%)
  14934. ~FORM_CENTER(tree38_adr%)
  14935. ~FORM_CENTER(tree39_adr%)
  14936. ~FORM_CENTER(tree40_adr%)
  14937. ~FORM_CENTER(tree41_adr%)
  14938. xt6&=DPEEK(tree6_adr%+16)
  14939. yt6&=DPEEK(tree6_adr%+18)
  14940. bt6&=DPEEK(tree6_adr%+20)
  14941. ht6&=DPEEK(tree6_adr%+22)
  14942. xt7&=DPEEK(tree7_adr%+16)
  14943. yt7&=DPEEK(tree7_adr%+18)
  14944. bt7&=DPEEK(tree7_adr%+20)
  14945. ht7&=DPEEK(tree7_adr%+22)
  14946. xt8&=DPEEK(tree8_adr%+16)
  14947. yt8&=DPEEK(tree8_adr%+18)
  14948. bt8&=DPEEK(tree8_adr%+20)
  14949. ht8&=DPEEK(tree8_adr%+22)
  14950. xt10&=DPEEK(tree10_adr%+16)
  14951. yt10&=DPEEK(tree10_adr%+18)
  14952. bt10&=DPEEK(tree10_adr%+20)
  14953. ht10&=DPEEK(tree10_adr%+22)
  14954. xt11&=DPEEK(tree11_adr%+16)
  14955. yt11&=DPEEK(tree11_adr%+18)
  14956. bt11&=DPEEK(tree11_adr%+20)
  14957. ht11&=DPEEK(tree11_adr%+22)
  14958. xt12&=DPEEK(tree12_adr%+16)
  14959. yt12&=DPEEK(tree12_adr%+18)
  14960. bt12&=DPEEK(tree12_adr%+20)
  14961. ht12&=DPEEK(tree12_adr%+22)
  14962. xt13&=DPEEK(tree13_adr%+16)
  14963. yt13&=DPEEK(tree13_adr%+18)
  14964. bt13&=DPEEK(tree13_adr%+20)
  14965. ht13&=DPEEK(tree13_adr%+22)
  14966. xt14&=DPEEK(tree14_adr%+16)
  14967. yt14&=DPEEK(tree14_adr%+18)
  14968. bt14&=DPEEK(tree14_adr%+20)
  14969. ht14&=DPEEK(tree14_adr%+22)
  14970. xt15&=DPEEK(tree15_adr%+16)
  14971. yt15&=DPEEK(tree15_adr%+18)
  14972. bt15&=DPEEK(tree15_adr%+20)
  14973. ht15&=DPEEK(tree15_adr%+22)
  14974. xt16&=DPEEK(tree16_adr%+16)
  14975. yt16&=DPEEK(tree16_adr%+18)
  14976. bt16&=DPEEK(tree16_adr%+20)
  14977. ht16&=DPEEK(tree16_adr%+22)
  14978. xt17&=DPEEK(tree17_adr%+16)
  14979. yt17&=DPEEK(tree17_adr%+18)
  14980. bt17&=DPEEK(tree17_adr%+20)
  14981. ht17&=DPEEK(tree17_adr%+22)
  14982. xt18&=DPEEK(tree18_adr%+16)
  14983. yt18&=DPEEK(tree18_adr%+18)
  14984. bt18&=DPEEK(tree18_adr%+20)
  14985. ht18&=DPEEK(tree18_adr%+22)
  14986. xt19&=DPEEK(tree19_adr%+16)
  14987. yt19&=DPEEK(tree19_adr%+18)
  14988. bt19&=DPEEK(tree19_adr%+20)
  14989. ht19&=DPEEK(tree19_adr%+22)
  14990. xt20&=DPEEK(tree20_adr%+16)
  14991. yt20&=DPEEK(tree20_adr%+18)
  14992. bt20&=DPEEK(tree20_adr%+20)
  14993. ht20&=DPEEK(tree20_adr%+22)
  14994. xt21&=DPEEK(tree21_adr%+16)
  14995. yt21&=DPEEK(tree21_adr%+18)
  14996. bt21&=DPEEK(tree21_adr%+20)
  14997. ht21&=DPEEK(tree21_adr%+22)
  14998. xt22&=DPEEK(tree22_adr%+16)
  14999. yt22&=DPEEK(tree22_adr%+18)
  15000. bt22&=DPEEK(tree22_adr%+20)
  15001. ht22&=DPEEK(tree22_adr%+22)
  15002. xt23&=DPEEK(tree23_adr%+16)
  15003. yt23&=DPEEK(tree23_adr%+18)
  15004. bt23&=DPEEK(tree23_adr%+20)
  15005. ht23&=DPEEK(tree23_adr%+22)
  15006. DPOKE tree24_adr%+16,DPEEK(tree24_adr%+16)+200
  15007. xt24&=DPEEK(tree24_adr%+16)
  15008. yt24&=DPEEK(tree24_adr%+18)
  15009. bt24&=DPEEK(tree24_adr%+20)
  15010. ht24&=DPEEK(tree24_adr%+22)
  15011. xt26&=DPEEK(tree26_adr%+16)
  15012. yt26&=DPEEK(tree26_adr%+18)
  15013. bt26&=DPEEK(tree26_adr%+20)
  15014. ht26&=DPEEK(tree26_adr%+22)
  15015. xt27&=DPEEK(tree27_adr%+16)
  15016. yt27&=DPEEK(tree27_adr%+18)
  15017. bt27&=DPEEK(tree27_adr%+20)
  15018. ht27&=DPEEK(tree27_adr%+22)
  15019. xt28&=DPEEK(tree28_adr%+16)
  15020. yt28&=DPEEK(tree28_adr%+18)
  15021. bt28&=DPEEK(tree28_adr%+20)
  15022. ht28&=DPEEK(tree28_adr%+22)
  15023. xt29&=DPEEK(tree29_adr%+16)
  15024. yt29&=DPEEK(tree29_adr%+18)
  15025. bt29&=DPEEK(tree29_adr%+20)
  15026. ht29&=DPEEK(tree29_adr%+22)
  15027. xt30&=DPEEK(tree30_adr%+16)
  15028. yt30&=DPEEK(tree30_adr%+18)
  15029. bt30&=DPEEK(tree30_adr%+20)
  15030. ht30&=DPEEK(tree30_adr%+22)
  15031. xt31&=DPEEK(tree31_adr%+16)
  15032. yt31&=DPEEK(tree31_adr%+18)
  15033. bt31&=DPEEK(tree31_adr%+20)
  15034. ht31&=DPEEK(tree31_adr%+22)
  15035. xt32&=DPEEK(tree32_adr%+16)
  15036. yt32&=DPEEK(tree32_adr%+18)
  15037. bt32&=DPEEK(tree32_adr%+20)
  15038. ht32&=DPEEK(tree32_adr%+22)
  15039. xt35&=DPEEK(tree35_adr%+16)
  15040. yt35&=DPEEK(tree35_adr%+18)
  15041. bt35&=DPEEK(tree35_adr%+20)
  15042. ht35&=DPEEK(tree35_adr%+22)
  15043. xt33&=DPEEK(tree33_adr%+16)
  15044. yt33&=DPEEK(tree33_adr%+18)
  15045. bt33&=DPEEK(tree33_adr%+20)
  15046. ht33&=DPEEK(tree33_adr%+22)
  15047. xt36&=DPEEK(tree36_adr%+16)
  15048. yt36&=DPEEK(tree36_adr%+18)
  15049. bt36&=DPEEK(tree36_adr%+20)
  15050. ht36&=DPEEK(tree36_adr%+22)
  15051. xt37&=DPEEK(tree37_adr%+16)
  15052. yt37&=DPEEK(tree37_adr%+18)
  15053. bt37&=DPEEK(tree37_adr%+20)
  15054. ht37&=DPEEK(tree37_adr%+22)
  15055. xt38&=DPEEK(tree38_adr%+16)
  15056. yt38&=DPEEK(tree38_adr%+18)
  15057. bt38&=DPEEK(tree38_adr%+20)
  15058. ht38&=DPEEK(tree38_adr%+22)
  15059. xt39&=DPEEK(tree39_adr%+16)
  15060. yt39&=DPEEK(tree39_adr%+18)
  15061. bt39&=DPEEK(tree39_adr%+20)
  15062. ht39&=DPEEK(tree39_adr%+22)
  15063. xt40&=DPEEK(tree40_adr%+16)
  15064. yt40&=DPEEK(tree40_adr%+18)
  15065. bt40&=DPEEK(tree40_adr%+20)
  15066. ht40&=DPEEK(tree40_adr%+22)
  15067. xt41&=DPEEK(tree41_adr%+16)
  15068. yt41&=DPEEK(tree41_adr%+18)
  15069. bt41&=DPEEK(tree41_adr%+20)
  15070. ht41&=DPEEK(tree41_adr%+22)
  15071. bt_output&=OB_W(tree40_adr%,pl100&)
  15072. CHAR{{OB_SPEC(tree6_adr%,t_hoehe&)}}=STR$(INT(zeichen_hoehe%/100))
  15073. CHAR{{OB_SPEC(tree7_adr%,zabs&)}}=STR$(INT(zeilen_abstand_prozent%))
  15074. CHAR{{OB_SPEC(tree9_adr%,z_char&)}}=CHR$(z_ascii_old%+32)
  15075. CHAR{{OB_SPEC(tree8_adr%,string_text&)}}=abc$
  15076. CHAR{{OB_SPEC(tree12_adr%,bstep&)}}=STR$(b_vari/100)
  15077. CHAR{{OB_SPEC(tree13_adr%,punkte&)}}=STR$(pointer%)
  15078. CHAR{{OB_SPEC(tree13_adr%,rest&)}}=STR$(p_max%-pointer%)
  15079. CHAR{{OB_SPEC(tree13_adr%,version&)}}=revision$
  15080. CHAR{{OB_SPEC(tree14_adr%,rx1&)}}=STR$(folie_x%)
  15081. CHAR{{OB_SPEC(tree14_adr%,ry1&)}}=STR$(folie_y%)
  15082. CHAR{{OB_SPEC(tree14_adr%,rx2&)}}=STR$(folie_x2%)
  15083. CHAR{{OB_SPEC(tree14_adr%,ry2&)}}=STR$(folie_y2%)
  15084. CHAR{{OB_SPEC(tree14_adr%,rx3&)}}=STR$(folie_x3%)
  15085. CHAR{{OB_SPEC(tree14_adr%,ry3&)}}=STR$(folie_y3%)
  15086. CHAR{{OB_SPEC(tree15_adr%,p_init1&)}}=p_init1$
  15087. CHAR{{OB_SPEC(tree15_adr%,p_init2&)}}=p_init2$
  15088. CHAR{{OB_SPEC(tree15_adr%,overcut&)}}=STR$(overcut|/10)
  15089. CHAR{{OB_SPEC(tree15_adr%,ma&)}}=ma$
  15090. CHAR{{OB_SPEC(tree15_adr%,da&)}}=da$
  15091. CHAR{{OB_SPEC(tree17_adr%,outl&)}}="3.0"
  15092. CHAR{{OB_SPEC(tree18_adr%,schraffd&)}}=STR$(schraff_dist/100)
  15093. CHAR{{OB_SPEC(tree18_adr%,schraffi&)}}=STR$(schraff_inc/100)
  15094. CHAR{{OB_SPEC(tree18_adr%,schraffw&)}}=STR$(schraff_winkel)
  15095. CHAR{{OB_SPEC(tree18_adr%,schrafix&)}}=STR$(schraff_fix_abst)
  15096. CHAR{{OB_SPEC(tree21_adr%,t_step&)}}=STR$(bit_count_max|)
  15097. CHAR{{OB_SPEC(tree21_adr%,t_gerade&)}}=STR$(geraden_fehler|)
  15098. CHAR{{OB_SPEC(tree21_adr%,t_schmutz&)}}=STR$(schmutz_filter%)
  15099. CHAR{{OB_SPEC(tree21_adr%,bschwelle&)}}=STR$(lange_gerade%/100)
  15100. CHAR{{OB_SPEC(tree21_adr%,knickwinkel&)}}=STR$(CINT(DEG(knick_winkel_max)))
  15101. CHAR{{OB_SPEC(tree21_adr%,bogen_max&)}}=STR$(CINT(DEG(bogen_max*2)))
  15102. CHAR{{OB_SPEC(tree21_adr%,abweichung_gerade&)}}=STR$(abweichung_gerade%/100)
  15103. CHAR{{OB_SPEC(tree22_adr%,scann_x&)}}="1664"
  15104. CHAR{{OB_SPEC(tree22_adr%,scann_y&)}}="800"
  15105. CHAR{{OB_SPEC(tree23_adr%,radius&)}}="10"
  15106. CHAR{{OB_SPEC(tree27_adr%,calamus_nr&)}}=STR$(calamus_nr%)
  15107. CHAR{{OB_SPEC(tree29_adr%,kostfak&)}}=STR$(kostfak)
  15108. CHAR{{OB_SPEC(tree31_adr%,anz_rot&)}}="3"
  15109. CHAR{{OB_SPEC(tree31_adr%,phi_rot&)}}="90"
  15110. OB_STATE(tree15_adr%,rs232&)=state_rs232&+16
  15111. OB_STATE(tree15_adr%,cent&)=state_rs232& XOR 1+16
  15112. OB_STATE(tree15_adr%,hp&)=state_hp&+16
  15113. OB_STATE(tree15_adr%,gp&)=state_hp& XOR 1+16
  15114. OB_STATE(tree26_adr%,absolut&)=absolut!+18
  15115. OB_STATE(tree26_adr%,relativ&)=absolut!+17
  15116. OB_STATE(tree26_adr%,polar&)=absolut!+17
  15117. IF gdu=1
  15118.   OB_STATE(tree15_adr%,gdu01&)=17
  15119. ELSE
  15120.   IF gdu=2.5
  15121.     OB_STATE(tree15_adr%,gdu025&)=17
  15122.   ELSE
  15123.     IF gdu=5
  15124.       OB_STATE(tree15_adr%,gdu05&)=17
  15125.     ELSE
  15126.       OB_STATE(tree15_adr%,gdu1&)=17
  15127.     ENDIF
  15128.   ENDIF
  15129. ENDIF
  15130. OB_STATE(tree1_adr%,lock&)=1
  15131. IF mimaki!
  15132.   OB_STATE(tree15_adr%,gdu05&)=17
  15133.   OB_STATE(tree15_adr%,gdu01&)=8
  15134.   OB_STATE(tree15_adr%,gdu025&)=8
  15135.   OB_STATE(tree15_adr%,gdu1&)=8
  15136.   OB_STATE(tree15_adr%,rs232&)=17
  15137.   OB_STATE(tree15_adr%,mgl&)=17
  15138.   OB_STATE(tree15_adr%,cent&)=16
  15139.   OB_STATE(tree15_adr%,hp&)=16
  15140.   OB_STATE(tree15_adr%,gp&)=16
  15141. ELSE
  15142.   OB_STATE(tree15_adr%,mgl&)=8
  15143. ENDIF
  15144. ~WIND_GET(0,4)                                   ! get desk size
  15145. BMOVE GINTOUT+2,tree0_adr%+16,8                  ! set into rsc
  15146. BMOVE GINTOUT+2,tree1_adr%+16,8                  ! set into rsc
  15147. BMOVE GINTOUT+2,tree2_adr%+16,8                  ! set into rsc
  15148. BMOVE GINTOUT+2,tree3_adr%+16,8                  ! set into rsc
  15149. BMOVE GINTOUT+2,tree4_adr%+16,8                  ! set into rsc
  15150. BMOVE GINTOUT+2,tree5_adr%+16,8                  ! set into rsc
  15151. BMOVE GINTOUT+2,tree9_adr%+16,8                  ! set into rsc
  15152. BMOVE GINTOUT+2,tree25_adr%+16,8                 ! set into rsc
  15153. BMOVE GINTOUT+2,tree34_adr%+16,8                 ! set into rsc
  15154. wind_newdesk(tree0_adr%,0)                       ! install  Datei Baum
  15155. IF default_font$<>""
  15156.   datei$=ein_space$
  15157.   IF EXIST(pfad_fnt$+"\"+default_font$)
  15158.     load_font(pfad_fnt$+"\"+default_font$)
  15159.     programm_font$=LEFT$(default_font$,LEN(default_font$)-4)
  15160.   ELSE
  15161.     make_new_font(-1)
  15162.   ENDIF
  15163. ELSE
  15164.   make_new_font(-1)
  15165. ENDIF
  15166. m$(0)=""
  15167. m$(1)="  CUTOUT"
  15168. m$(2)="--------------------"
  15169. m$(3)=CHR$(2)
  15170. m$(4)=CHR$(3)
  15171. m$(5)=CHR$(4)
  15172. m$(6)=CHR$(5)
  15173. m$(7)=CHR$(6)
  15174. m$(8)=CHR$(7)
  15175. m$(9)=CHR$(8)
  15176. m$(10)=""
  15177. m$(11)=pd_menu$
  15178. m$(12)=pd_datei$
  15179. m$(13)=pd_editieren$
  15180. m$(14)=pd_fenster$
  15181. m$(15)=pd_schnittpunkt$
  15182. m$(16)=pd_bogen$
  15183. m$(17)="----------------------"
  15184. m$(18)=pd_text$
  15185. m$(19)=pd_zeicheneditor$
  15186. m$(20)=m$(17)
  15187. m$(21)=pd_extra$
  15188. m$(22)=m$(17)
  15189. m$(23)=pd_quit$
  15190. m$(24)=""
  15191. m$(25)=pd_optionen$
  15192. m$(26)=pd_marker_anzeigen$
  15193. m$(27)=pd_tangenten_anzeigen$
  15194. m$(28)=pd_fangradius_klein$
  15195. m$(29)=pd_polygon_modus$
  15196. m$(30)=pd_schnittpunkt_genau$
  15197. m$(31)=pd_koordinaten$
  15198. m$(32)=pd_element_selektieren$
  15199. m$(33)=pd_polygon_selektieren$
  15200. m$(34)=pd_warnmeldungen$
  15201. m$(35)="---------------------------"
  15202. m$(36)=pd_skaliere_alles$
  15203. m$(37)=m$(35)
  15204. m$(38)=pd_punkte_nivellieren$
  15205. m$(39)=pd_tangente$
  15206. m$(40)=m$(35)
  15207. m$(41)=pd_plotflaeche$
  15208. m$(42)=pd_bezier_step_aendern$
  15209. m$(43)=pd_plotter_einstellung$
  15210. m$(44)=pd_kosten_faktor$
  15211. m$(45)=pd_pfad_sichern$
  15212. m$(46)=""
  15213. m$(47)=pd_figur$
  15214. m$(48)=pd_rechteck$
  15215. m$(49)=pd_n_eck$
  15216. m$(50)=pd_polygon_outline$
  15217. m$(51)=pd_aequidistante$
  15218. m$(52)=pd_frame$
  15219. m$(53)="---------------------------"
  15220. m$(54)=pd_polygone_ausrichten$
  15221. m$(55)=pd_polygone_zentrieren$
  15222. m$(56)=pd_polygone_vereinen$
  15223. m$(57)=pd_polygone_fuellen$
  15224. m$(58)=m$(53)
  15225. m$(59)=pd_einzelne_punkte_loeschen$
  15226. m$(60)=""
  15227. m$(61)=pd_linie$
  15228. m$(62)=pd_bezier_vektor$
  15229. m$(63)=pd_bezier_einfuegen$
  15230. m$(64)=pd_tausche_bezier_vektor$
  15231. m$(65)=m$(53)
  15232. m$(66)=pd_knacken$
  15233. m$(67)=pd_trimmen$
  15234. m$(68)=pd_lot$
  15235. m$(69)=pd_verlaengern$
  15236. m$(70)=pd_teilen$
  15237. m$(71)=pd_messen$
  15238. m$(72)=m$(53)
  15239. m$(73)=pd_schnittp_2er$
  15240. m$(74)=pd_schnittp_n$
  15241. m$(75)=""
  15242. m$(76)=pd_effekt$
  15243. m$(77)=pd_parameter_schraffur$
  15244. m$(78)=pd_polygon_schraffieren$
  15245. m$(79)=pd_alles_schraffieren$
  15246. m$(80)="------------------------"
  15247. m$(81)=pd_schatten$
  15248. m$(82)=pd_einpassen$
  15249. m$(83)=m$(80)
  15250. m$(84)=pd_kugel$
  15251. m$(85)=""
  15252. m$(86)=""
  15253. MENU m$()
  15254. IF fangklein!
  15255.   MENU 28,1
  15256. ENDIF
  15257. IF polygonmode!
  15258.   MENU 29,1
  15259. ENDIF
  15260. IF warn!
  15261.   MENU 34,1
  15262. ENDIF
  15263. CLIP 0,0,639,399 OFFSET 0,0
  15264. DEFTEXT 1,0,0,6
  15265. COLOR 1
  15266. TEXT 400,7,"Zoom X:"
  15267. TEXT 400,15,"Zoom Y:"
  15268. TEXT 540,7,"X:"
  15269. TEXT 540,15,"Y:"
  15270. DEFTEXT 1,0,0,4
  15271. TEXT 624,7,"mm"
  15272. TEXT 624,15,"mm"
  15273. LINE 536,0,536,20
  15274. LINE 396,0,396,20
  15275. '
  15276. ~FORM_DIAL(3,0,0,0,0,0,0,desk_breite&,desk_hoehe&)                !redraw all
  15277. '
  15278. layer!=FALSE
  15279. zoom=1
  15280. x_layer%=folie_x%
  15281. y_layer%=folie_y%
  15282. x_layero%=x_layer%
  15283. y_layero%=y_layer%
  15284. res_x%=x_layer%
  15285. res_y%=y_layer%
  15286. x_offset&=0
  15287. y_offset&=0
  15288. res_x_old%=x_layer%
  15289. res_y_old%=y_layer%
  15290. x_offset_old&=0
  15291. y_offset_old&=0
  15292. pointer%=0
  15293. get_desktop
  15294. scrb_old&=scrb&
  15295. scrh_old&=scrh&
  15296. CLOSEW 1
  15297. programm$=noname$
  15298. INT{WINDTAB+2}=&X111111000000
  15299. INT{WINDTAB+4}=scrx&
  15300. INT{WINDTAB+6}=scry&
  15301. INT{WINDTAB+8}=scrb&
  15302. INT{WINDTAB+10}=scrh&
  15303. help_titel
  15304. OPENW 1
  15305. calc_slid
  15306. ~WIND_GET(1,4,x_win&,y_win&,b_window&,h_window&)
  15307. neues_polygon!=TRUE
  15308. do_redraw
  15309. DEFMOUSE 3
  15310. p_zoom(zoom*100,zoom*100)
  15311. CHAR{{OB_SPEC(tree14_adr%,rx1&)}}=STR$(x_layer%)
  15312. CHAR{{OB_SPEC(tree14_adr%,ry1&)}}=STR$(y_layer%)
  15313. ' test_vollbild
  15314. '
  15315. ~OBJC_OFFSET(tree28_adr%,gtprewin&,gtxv&,gtyv&)
  15316. gtxv&=gtxv&-x_win&+1
  15317. gtyv&=gtyv&-y_win&+1
  15318. '
  15319. ON MENU MESSAGE GOSUB message
  15320. ON MENU BUTTON 1,1,1 GOSUB button
  15321. ON MENU GOSUB menu
  15322. ON MENU KEY GOSUB key
  15323. ' ON ERROR GOSUB fehler
  15324. '
  15325. '
  15326. REPEAT
  15327.   ON MENU
  15328. UNTIL end!
  15329. '
  15330. IF modified!
  15331.   IF pointer%>0
  15332.     ALERT 3,"| "+sichere$+daten$,1,ja_nein$,i%
  15333.     IF i%=1
  15334.       @save_vektor
  15335.     ENDIF
  15336.   ENDIF
  15337. ENDIF
  15338. '
  15339. ' Bei fertigen Programmen hier nur QUIT
  15340. '
  15341. reset
  15342. ~WIND_GET(0,10)
  15343. IF DPEEK(GINTOUT+2)
  15344.   ALERT 1,"Accessories",1,"Close|Quit",i%
  15345.   IF i%=2
  15346.     QUIT
  15347.   ENDIF
  15348.   REPEAT
  15349.     ~WIND_GET(0,10)
  15350.   UNTIL DPEEK(GINTOUT+2)=0
  15351. ENDIF
  15352. RESERVE                                ! XBIOS(2)-HIMEM+FRE(0)-16384
  15353. '
  15354. PROCEDURE fehler
  15355.   ALERT 1,fehler$,1,leider$,i%
  15356.   '  RESUME NEXT
  15357. RETURN
  15358. '
  15359. '
  15360. PROCEDURE get_undo
  15361.   LOCAL dp%
  15362.   dp%=daten_ptr%
  15363.   IF (pointer%*9+1<work_space%) AND (NOT layer_geladen!)
  15364.     LONG{dp%}=pointer%
  15365.     ADD dp%,4
  15366.     undo!=TRUE
  15367.     BMOVE VARPTR(punkte_x%(0)),dp%,pointer%*4
  15368.     ADD dp%,pointer%*4
  15369.     BMOVE VARPTR(punkte_y%(0)),dp%,pointer%*4
  15370.     ADD dp%,pointer%*4
  15371.     BMOVE VARPTR(punkte_def|(0)),dp%,pointer%
  15372.     undo!=TRUE
  15373.   ELSE
  15374.     undo!=FALSE
  15375.   ENDIF
  15376. RETURN
  15377. '
  15378. PROCEDURE put_undo
  15379.   LOCAL dp%
  15380.   IF undo!
  15381.     dp%=daten_ptr%
  15382.     pointer%=LONG{dp%}
  15383.     ADD dp%,4
  15384.     BMOVE dp%,VARPTR(punkte_x%(0)),pointer%*4
  15385.     ADD dp%,pointer%*4
  15386.     BMOVE dp%,VARPTR(punkte_y%(0)),pointer%*4
  15387.     ADD dp%,pointer%*4
  15388.     BMOVE dp%,VARPTR(punkte_def|(0)),pointer%
  15389.     undo!=FALSE
  15390.     do_redraw
  15391.   ENDIF
  15392. RETURN
  15393. '
  15394. PROCEDURE output_drucker
  15395.   LOCAL handle&,x_resi&,y_resi&,z_old
  15396.   IF GDOS?
  15397.     ERASE work%()
  15398.     IF FRE(0)>250000
  15399.       RESERVE -250000
  15400.       handle&=V_OPNWK(21)
  15401.       IF handle&<>0
  15402.         V~H=handle&
  15403.         x_resi&=INTOUT(0)
  15404.         y_resi&=INTOUT(1)
  15405.         ~V_CLRWK()
  15406.         z_old=zoom
  15407.         zoom=4
  15408.         redraw_ohne(0)
  15409.         ~V_UPDWK()
  15410.         ~V_CLSWK()
  15411.         zoom=z_old
  15412.       ELSE
  15413.       ENDIF
  15414.       RESERVE
  15415.     ELSE
  15416.     ENDIF
  15417.     DIM work%((FRE(0)-80*1024)/4)
  15418.     daten_ptr%=V:work%(0)
  15419.     work_space%=DIM?(work%())*4
  15420.   ELSE
  15421.   ENDIF
  15422. RETURN
  15423. '
  15424. '
  15425. PROCEDURE scan_a1
  15426.   ALERT 3,"| SCAN Hochformat: ",1,"A3|A2|A1",i%
  15427.   SELECT i%
  15428.   CASE 1
  15429.     scann_x%=INT(17*400/8)       !17
  15430.     scann_y%=INT(12*400)        !12
  15431.   CASE 2
  15432.     scann_x%=INT(25*400/8)
  15433.     scann_y%=INT(17*400)
  15434.   CASE 3
  15435.     scann_x%=INT(34*400/8)
  15436.     scann_y%=INT(25*400)
  15437.   ENDSELECT
  15438.   scan_graphtec(3,400,0,0,scann_x%,scann_y%)
  15439. RETURN
  15440. '
  15441. PROCEDURE scan_graphtec(device&,dpi&,x_0%,y_0%,bytes_x%,lines_y%)
  15442.   LOCAL command_bytes&,bytes_to_transfer%,transfer_dir&
  15443.   LOCAL y_offset%,block&,command_bytes&,bytes_to_transfer%
  15444.   ' IF FN test_unit_ready(device&)=0
  15445.   set_graphtec_window(device&,dpi&,x_0%,y_0%,bytes_x%,lines_y%)
  15446.   command_bytes&=10
  15447.   block&=&HFFFF DIV bytes_x% DIV 3
  15448.   bytes_to_transfer%=bytes_x%*block&*3
  15449.   transfer_dir&=0                               ! LESEN
  15450.   command|(0)=&H28
  15451.   command|(1)=0
  15452.   command|(2)=0
  15453.   command|(3)=0
  15454.   command|(4)=0
  15455.   command|(5)=0
  15456.   command|(6)=0
  15457.   command|(7)=0
  15458.   command|(8)=0
  15459.   command|(9)=0
  15460.   WORD{V:command|(7)}=block&
  15461.   '
  15462.   anzahl&=lines_y% DIV block&
  15463.   rest&=lines_y% MOD block&
  15464.   y_offset%=0
  15465.   FOR i%=1 TO anzahl&
  15466.     $c+
  15467.     fehler%=C:scsi%(device&,command_bytes&,bytes_to_transfer%,transfer_dir&,L:V:command|(0),L:daten_ptr%+y_offset%)
  15468.     $c-
  15469.     ADD y_offset%,block&*bytes_x%
  15470.   NEXT i%
  15471.   IF rest&<>0
  15472.     bytes_to_transfer%=bytes_x%*rest&*3
  15473.     WORD{V:command|(7)}=rest&
  15474.     $c+
  15475.     fehler%=C:scsi%(device&,command_bytes&,bytes_to_transfer%,transfer_dir&,L:V:command|(0),L:daten_ptr%+y_offset%)
  15476.     $c-
  15477.   ENDIF
  15478.   '  status&=AND(CARD(fehler%),&X11110)
  15479.   ' message&=CARD(SWAP(fehler%))
  15480.   layer!=TRUE
  15481.   layer_geladen!=TRUE
  15482.   voll_bild!=TRUE
  15483.   outlined!=FALSE
  15484.   do_change_aufloesung(bytes_x%*8,lines_y%,1)
  15485.   init_bit_blit
  15486.   p_zoom(zoom*100,zoom*100)
  15487.   do_redraw
  15488.   ' ENDIF
  15489. RETURN
  15490. '
  15491. PROCEDURE set_graphtec_window(device&,dpi&,x_0%,y_0%,bytes_x%,lines_y%)
  15492.   LOCAL command_bytes&,bytes_to_transfer%,transfer_dir&
  15493.   command_bytes&=10
  15494.   bytes_to_transfer%=53
  15495.   transfer_dir&=1                               ! LESEN (1=SCHREIBEN)
  15496.   command|(0)=&H24
  15497.   command|(1)=0
  15498.   command|(2)=0
  15499.   command|(3)=0
  15500.   command|(4)=0
  15501.   command|(5)=0
  15502.   command|(6)=0
  15503.   command|(7)=0
  15504.   command|(8)=bytes_to_transfer%
  15505.   command|(9)=0
  15506.   FOR i%=0 TO 6
  15507.     buffer|(i%)=0
  15508.   NEXT i%
  15509.   FOR i%=38 TO 47
  15510.     buffer|(i%)=0
  15511.   NEXT i%
  15512.   buffer|(7)=45                         ! Window Descriptor Block Length
  15513.   buffer|(8)=0                          ! Window ID
  15514.   buffer|(9)=0                          ! reserved
  15515.   WORD{V:buffer|(10)}=dpi&              ! X resolution
  15516.   WORD{V:buffer|(12)}=dpi&              ! Y resolution
  15517.   LONG{V:buffer|(14)}=x_0%*24           ! X Upper Left
  15518.   LONG{V:buffer|(18)}=y_0%*3            ! Y Upper Left
  15519.   LONG{V:buffer|(22)}=bytes_x%*24       ! Width
  15520.   LONG{V:buffer|(26)}=lines_y%*3        ! Length
  15521.   buffer|(30)=0                         ! reserved
  15522.   buffer|(31)=0                         ! Kontrast
  15523.   buffer|(32)=0                         ! reserved
  15524.   buffer|(33)=0                         ! Image composition
  15525.   buffer|(34)=1                         ! Bits per Pixel
  15526.   buffer|(35)=0                         ! reserved
  15527.   buffer|(36)=0                         ! reserved
  15528.   buffer|(37)=0                         ! Reverse Image
  15529.   buffer|(48)=2                         ! Cell length
  15530.   buffer|(49)=5                         ! Function Code
  15531.   buffer|(50)=1                         ! Fine Line
  15532.   buffer|(51)=2                         ! Cell length
  15533.   buffer|(52)=6                         ! Function Code
  15534.   buffer|(53)=1                         ! Scann Speed
  15535.   $c+
  15536.   fehler%=C:scsi%(device&,command_bytes&,bytes_to_transfer%,transfer_dir&,L:V:command|(0),L:V:buffer|(0))
  15537.   $c-
  15538. RETURN
  15539. '
  15540. FUNCTION test_unit_ready(device&)
  15541.   command_bytes&=6
  15542.   bytes_to_transfer%=1
  15543.   transfer_dir&=0                               ! LESEN (1=SCHREIBEN)
  15544.   command|(0)=0
  15545.   command|(1)=0
  15546.   command|(2)=0
  15547.   command|(3)=0
  15548.   command|(4)=bytes_to_transfer%
  15549.   command|(5)=0
  15550.   '
  15551.   $c+
  15552.   fehler%=C:scsi%(device&,command_bytes&,L:bytes_to_transfer%,transfer_dir&,L:V:command|(0),L:V:buffer|(0))
  15553.   $c-
  15554.   status&=AND(CARD(fehler%),&X11110)
  15555.   message&=CARD(SWAP(fehler%))
  15556.   '
  15557.   RETURN status&
  15558. ENDFUNC
  15559. '
  15560. '
  15561. PROCEDURE gt_info(i$)
  15562.   CHAR{{OB_SPEC(tree28_adr%,gtstate&)}}=i$
  15563.   ~OBJC_DRAW(tree28_adr%,gtstate&,8,xt28&,yt28&,bt28&,ht28&)
  15564. RETURN
  15565. '
  15566. PROCEDURE dpi_change(prex0&,prey0&,prex0_min&,prey0_min&)
  15567.   CHAR{{OB_SPEC(tree28_adr%,gtdpi&)}}=STR$(gtdpiv&)
  15568.   ~OBJC_DRAW(tree28_adr%,gtdpi&,8,xt28&,yt28&,bt28&,ht28&)
  15569.   CHAR{{OB_SPEC(tree28_adr%,gtb&)}}=STR$(AND(INT(gtbv&/25.4*gtdpiv&),&HFFF8))
  15570.   CHAR{{OB_SPEC(tree28_adr%,gth&)}}=STR$(AND(INT(gthv&/25.4*gtdpiv&),&HFFF8))
  15571.   ~OBJC_DRAW(tree28_adr%,gtb&,8,xt28&,yt28&,bt28&,ht28&)
  15572.   ~OBJC_DRAW(tree28_adr%,gth&,8,xt28&,yt28&,bt28&,ht28&)
  15573.   CHAR{{OB_SPEC(tree28_adr%,gtx&)}}=STR$(AND(INT((prex0&-prex0_min&)/25.4*gtdpiv&),&HFFF8))
  15574.   CHAR{{OB_SPEC(tree28_adr%,gty&)}}=STR$(AND(INT((prey0&-prey0_min&)/25.4*gtdpiv&),&HFFF8))
  15575.   ~OBJC_DRAW(tree28_adr%,gtx&,8,xt28&,yt28&,bt28&,ht28&)
  15576.   ~OBJC_DRAW(tree28_adr%,gty&,8,xt28&,yt28&,bt28&,ht28&)
  15577. RETURN
  15578. '
  15579. PROCEDURE gt_6000
  15580.   LOCAL prex0&,prey0&,prex0_min&,prey0_min&,x_changed&,y_changed&
  15581.   LOCAL prex&,prey&,gthalbton&
  15582.   DEFMOUSE 0
  15583.   SETMOUSE xt28&+240,yt28&+310,0
  15584.   CLIP 0,0,desk_breite&,desk_hoehe& OFFSET x_win&,y_win&
  15585.   ~OBJC_OFFSET(tree28_adr%,gtprewin&,prex&,prey&)
  15586.   gthalbton&=1
  15587.   prex0&=prex&-x_win&+1
  15588.   prey0&=prey&-y_win&+1
  15589.   prex0_min&=prex0&
  15590.   prey0_min&=prey0&
  15591.   prex0_max&=prex0&+217
  15592.   prey0_max&=prey0&+297
  15593.   prex0&=gtxv&
  15594.   prey0&=gtyv&
  15595.   '
  15596.   CHAR{{OB_SPEC(tree28_adr%,gtx&)}}=STR$(AND(INT((prex0&-prex0_min&)/25.4*gtdpiv&),&HFFF8))
  15597.   CHAR{{OB_SPEC(tree28_adr%,gty&)}}=STR$(AND(INT((prey0&-prey0_min&)/25.4*gtdpiv&),&HFFF8))
  15598.   CHAR{{OB_SPEC(tree28_adr%,gtb&)}}=STR$(AND(INT(gtbv&/25.4*gtdpiv&),&HFFF8))
  15599.   CHAR{{OB_SPEC(tree28_adr%,gth&)}}=STR$(AND(INT(gthv&/25.4*gtdpiv&),&HFFF8))
  15600.   CHAR{{OB_SPEC(tree28_adr%,gtdpi&)}}=STR$(gtdpiv&)
  15601.   CHAR{{OB_SPEC(tree28_adr%,gtstate&)}}=waehle$
  15602.   GET xt28&-4,yt28&-4,xt28&+bt28&+4,yt28&+ht28&+4,rette$
  15603.   ~OBJC_DRAW(tree28_adr%,0,8,xt28&,yt28&,bt28&,ht28&)
  15604.   smfdb%(0)=V:prebuf$
  15605.   smfdb%(1)=208
  15606.   smfdb%(2)=292
  15607.   smfdb%(3)=smfdb%(1)/16
  15608.   smfdb%(5)=1
  15609.   dmfdb%(0)=XBIOS(3)
  15610.   dmfdb%(1)=desk_breite&
  15611.   dmfdb%(2)=desk_hoehe&
  15612.   dmfdb%(3)=dmfdb%(1)/16
  15613.   dmfdb%(5)=1
  15614.   p%(0)=0
  15615.   p%(1)=0
  15616.   p%(2)=207
  15617.   p%(3)=291
  15618.   p%(4)=prex&+1
  15619.   p%(5)=prey&+1
  15620.   p%(6)=p%(4)+207
  15621.   p%(7)=p%(5)+291
  15622.   p%(8)=3
  15623.   BITBLT smfdb%(),dmfdb%(),p%()
  15624.   DEFFILL 1,1,1
  15625.   GRAPHMODE 3
  15626.   BOX prex0&,prey0&,prex0&+gtbv&,prey0&+gthv&
  15627.   PBOX prex0&+gtbv&-8,prey0&+gthv&-8,prex0&+gtbv&,prey0&+gthv&
  15628.   REPEAT
  15629.     DO
  15630.       ~FORM_DO(tree28_adr%,0)
  15631.       IF INT{GINTOUT}>0 AND INT{GINTOUT}<100
  15632.         exit_button&=DPEEK(GINTOUT)
  15633.         OB_STATE(tree28_adr%,exit_button&)=0
  15634.         IF exit_button&<>gtprewin&
  15635.           ~OBJC_DRAW(tree28_adr%,exit_button&,8,xt28&,yt28&,bt28&,ht28&)
  15636.         ENDIF
  15637.       ENDIF
  15638.       SELECT exit_button&
  15639.       CASE gtdpimin&
  15640.         IF gtdpiv&>100
  15641.           IF gtdpiv&=480
  15642.             gtdpiv&=400
  15643.           ELSE
  15644.             IF gtdpiv&=600
  15645.               gtdpiv&=480
  15646.             ELSE
  15647.               SUB gtdpiv&,100
  15648.             ENDIF
  15649.           ENDIF
  15650.           dpi_change(prex0&,prey0&,prex0_min&,prey0_min&)
  15651.         ENDIF
  15652.       CASE gtdpiplu&
  15653.         IF gtdpiv&<600
  15654.           IF gtdpiv&=400
  15655.             gtdpiv&=480
  15656.           ELSE
  15657.             IF gtdpiv&=480
  15658.               gtdpiv&=600
  15659.             ELSE
  15660.               ADD gtdpiv&,100
  15661.             ENDIF
  15662.           ENDIF
  15663.           dpi_change(prex0&,prey0&,prex0_min&,prey0_min&)
  15664.         ENDIF
  15665.       CASE gtprewin&
  15666.         MOUSE x_mouse%,y_mouse%,taste|
  15667.         IF x_mouse%>prex0&+gtbv&-8 AND x_mouse%<prex0&+gtbv& AND y_mouse%>prey0&+gthv&-8 AND y_mouse%<prey0&+gthv&
  15668.           DEFMOUSE 3
  15669.           REPEAT
  15670.             MOUSE x_mouse%,y_mouse%,taste|
  15671.             IF x_mouse%<>x_mouse_old% OR y_mouse%<>y_mouse_old%
  15672.               BOX prex0&,prey0&,prex0&+gtbv&,prey0&+gthv&
  15673.               PBOX prex0&+gtbv&-8,prey0&+gthv&-8,prex0&+gtbv&,prey0&+gthv&
  15674.               IF x_mouse%-prex0_min&<217 AND x_mouse%-prex0&>16
  15675.                 gtbv&=x_mouse%-prex0&
  15676.                 i%=AND(INT(gtbv&/25.4*gtdpiv&),&HFFF0)
  15677.                 gtbv&=CINT(i%*25.4/gtdpiv&)
  15678.               ENDIF
  15679.               IF y_mouse%-prey0_min&<298 AND y_mouse%-prey0&>16
  15680.                 gthv&=y_mouse%-prey0&
  15681.               ENDIF
  15682.               BOX prex0&,prey0&,prex0&+gtbv&,prey0&+gthv&
  15683.               PBOX prex0&+gtbv&-8,prey0&+gthv&-8,prex0&+gtbv&,prey0&+gthv&
  15684.               SHOWM
  15685.               x_mouse_old%=x_mouse%
  15686.               y_mouse_old%=y_mouse%
  15687.               CHAR{{OB_SPEC(tree28_adr%,gtb&)}}=STR$(AND(INT(gtbv&/25.4*gtdpiv&),&HFFF0))
  15688.               CHAR{{OB_SPEC(tree28_adr%,gth&)}}=STR$(INT(gthv&/25.4*gtdpiv&))
  15689.               ~OBJC_DRAW(tree28_adr%,gtb&,8,xt28&,yt28&,bt28&,ht28&)
  15690.               ~OBJC_DRAW(tree28_adr%,gth&,8,xt28&,yt28&,bt28&,ht28&)
  15691.             ENDIF
  15692.           UNTIL taste|=0
  15693.           DEFMOUSE 0
  15694.         ELSE
  15695.           IF x_mouse%>prex0& AND x_mouse%<prex0&+gtbv& AND y_mouse%>prey0& AND y_mouse%<prey0&+gthv&
  15696.             x_mouse_old%=x_mouse%
  15697.             y_mouse_old%=y_mouse%
  15698.             DEFMOUSE 3
  15699.             REPEAT
  15700.               MOUSE x_mouse%,y_mouse%,taste|
  15701.               IF x_mouse%<>x_mouse_old% OR y_mouse%<>y_mouse_old%
  15702.                 x_changed&=x_mouse%-x_mouse_old%
  15703.                 y_changed&=y_mouse%-y_mouse_old%
  15704.                 BOX prex0&,prey0&,prex0&+gtbv&,prey0&+gthv&
  15705.                 PBOX prex0&+gtbv&-8,prey0&+gthv&-8,prex0&+gtbv&,prey0&+gthv&
  15706.                 IF prex0&+x_changed&>=prex0_min& AND prex0&+x_changed&+gtbv&<prex0_max&
  15707.                   ADD prex0&,x_changed&
  15708.                 ENDIF
  15709.                 IF prey0&+y_changed&>=prey0_min& AND prey0&+y_changed&+gthv&<prey0_max&
  15710.                   ADD prey0&,y_changed&
  15711.                 ENDIF
  15712.                 BOX prex0&,prey0&,prex0&+gtbv&,prey0&+gthv&
  15713.                 PBOX prex0&+gtbv&-8,prey0&+gthv&-8,prex0&+gtbv&,prey0&+gthv&
  15714.                 SHOWM
  15715.                 x_mouse_old%=x_mouse%
  15716.                 y_mouse_old%=y_mouse%
  15717.                 CHAR{{OB_SPEC(tree28_adr%,gtx&)}}=STR$(AND(INT((prex0&-prex0_min&)/25.4*gtdpiv&),&HFFF8))
  15718.                 CHAR{{OB_SPEC(tree28_adr%,gty&)}}=STR$(AND(INT((prey0&-prey0_min&)/25.4*gtdpiv&),&HFFF8))
  15719.                 ~OBJC_DRAW(tree28_adr%,gtx&,8,xt28&,yt28&,bt28&,ht28&)
  15720.                 ~OBJC_DRAW(tree28_adr%,gty&,8,xt28&,yt28&,bt28&,ht28&)
  15721.               ENDIF
  15722.             UNTIL taste|=0
  15723.             DEFMOUSE 0
  15724.           ENDIF
  15725.         ENDIF
  15726.       CASE gtpresca&
  15727.         gt_info(scannen$+pre_view$)
  15728.         HIDEM
  15729.         gt6000%=VARPTR(gt6000$)
  15730.         $C+
  15731.         VOID C:gt6000%(1,50,3,3,gthalbton&,0,0,26,292,L:V:prebuf$,L:V:prebuf$+8000)
  15732.         $C-
  15733.         OUT (2),13
  15734.         trigger_0
  15735.         DEFMOUSE 3
  15736.         SHOWM
  15737.         BOX prex0&,prey0&,prex0&+gtbv&,prey0&+gthv&
  15738.         PBOX prex0&+gtbv&-8,prey0&+gthv&-8,prex0&+gtbv&,prey0&+gthv&
  15739.         smfdb%(0)=V:prebuf$
  15740.         BITBLT smfdb%(),dmfdb%(),p%()
  15741.         BOX prex0&,prey0&,prex0&+gtbv&,prey0&+gthv&
  15742.         PBOX prex0&+gtbv&-8,prey0&+gthv&-8,prex0&+gtbv&,prey0&+gthv&
  15743.         gt_info(waehle$)
  15744.       ENDSELECT
  15745.       EXIT IF exit_button&=gtcancel&
  15746.       EXIT IF exit_button&=gtscan&
  15747.     LOOP
  15748.     IF exit_button&=gtcancel&
  15749.       PUT xt28&-4,yt28&-4,rette$
  15750.       ok!=TRUE
  15751.     ENDIF
  15752.     IF exit_button&=gtscan&
  15753.       IF OB_STATE(tree28_adr%,gthart&)=1
  15754.         gthalbton&=0
  15755.       ELSE
  15756.         IF OB_STATE(tree28_adr%,gtweich&)=1
  15757.           gthalbton&=16
  15758.         ELSE
  15759.           IF OB_STATE(tree28_adr%,gtraster&)=1
  15760.             gthalbton&=32
  15761.           ELSE
  15762.             gthalbton&=1
  15763.           ENDIF
  15764.         ENDIF
  15765.       ENDIF
  15766.       IF OB_STATE(tree28_adr%,gtrot&)=1
  15767.         gtfarbev&=0
  15768.       ELSE
  15769.         IF OB_STATE(tree28_adr%,gtgruen&)=1
  15770.           gtfarbev&=1
  15771.         ELSE
  15772.           IF OB_STATE(tree28_adr%,gtblau&)=1
  15773.             gtfarbev&=2
  15774.           ELSE
  15775.             gtfarbev&=3
  15776.           ENDIF
  15777.         ENDIF
  15778.       ENDIF
  15779.       IF OB_STATE(tree28_adr%,k0&)=1
  15780.         gtkontrav&=0
  15781.       ELSE
  15782.         IF OB_STATE(tree28_adr%,k1&)=1
  15783.           gtkontrav&=1
  15784.         ELSE
  15785.           IF OB_STATE(tree28_adr%,k2&)=1
  15786.             gtkontrav&=2
  15787.           ELSE
  15788.             IF OB_STATE(tree28_adr%,k3&)=1
  15789.               gtkontrav&=3
  15790.             ELSE
  15791.               IF OB_STATE(tree28_adr%,k4&)=1
  15792.                 gtkontrav&=4
  15793.               ELSE
  15794.                 IF OB_STATE(tree28_adr%,k5&)=1
  15795.                   gtkontrav&=5
  15796.                 ELSE
  15797.                   gtkontrav&=6
  15798.                 ENDIF
  15799.               ENDIF
  15800.             ENDIF
  15801.           ENDIF
  15802.         ENDIF
  15803.       ENDIF
  15804.       gt_info(scannen$+bereich$)
  15805.       gtxorig&=CINT(AND(INT((prex0&+2-prex0_min&)/25.4*gtdpiv&),&HFFF8)/8)
  15806.       gtyorig&=CINT((prey0&+2-prey0_min&)/25.4*gtdpiv&)
  15807.       gtxbytes&=CINT(AND(INT(gtbv&/25.4*gtdpiv&),&HFFF0)/8)
  15808.       gtyzeilen&=CINT(gthv&/25.4*gtdpiv&)
  15809.       IF gtxbytes&*(gtyzeilen&+1)<work_space%
  15810.         HIDEM
  15811.         gt6000%=VARPTR(gt6000$)
  15812.         $C+
  15813.         i%=C:gt6000%(0,gtdpiv&,gtfarbev&,gtkontrav&,gthalbton&,gtxorig&,gtyorig&,gtxbytes&,gtyzeilen&,L:daten_ptr%,L:daten_ptr%+work_space%)
  15814.         $C-
  15815.         OUT (2),13
  15816.         trigger_0
  15817.         DEFMOUSE 3
  15818.         SHOWM
  15819.       ELSE
  15820.         i%=-1
  15821.       ENDIF
  15822.       IF i%>=0
  15823.         gt_info(waehle$)
  15824.         PUT xt28&-4,yt28&-4,rette$
  15825.         layer!=TRUE
  15826.         layer_geladen!=TRUE
  15827.         voll_bild!=TRUE
  15828.         outlined!=FALSE
  15829.         do_change_aufloesung(AND(INT(gtbv&/25.4*gtdpiv&),&HFFF0),INT(gthv&/25.4*gtdpiv&),1)
  15830.         init_bit_blit
  15831.         p_zoom(zoom*100,zoom*100)
  15832.         do_redraw
  15833.         ok!=TRUE
  15834.       ELSE
  15835.         FOR i%=1 TO 5
  15836.           gt_info(fehler$)
  15837.           PAUSE 15
  15838.           gt_info("      ")
  15839.           PAUSE 15
  15840.         NEXT i%
  15841.         gt_info(waehle$)
  15842.         ok!=FALSE
  15843.       ENDIF
  15844.     ENDIF
  15845.   UNTIL ok!
  15846.   gtxv&=prex0&
  15847.   gtyv&=prey0&
  15848.   ~WIND_GET(1,4)
  15849.   clip(x_window&,y_window&,b_window&,h_window&,INT{GINTOUT+2},INT{GINTOUT+4})
  15850.   set_clip_offset
  15851.   GRAPHMODE 1
  15852.   DEFFILL 0,0
  15853.   DEFMOUSE 3
  15854.   init_bit_blit
  15855. RETURN
  15856. '
  15857. PROCEDURE set_clip_offset
  15858.   INT{WINDTAB+64}=INT{WINDTAB+64}-x_offset&
  15859.   INT{WINDTAB+66}=INT{WINDTAB+66}-y_offset&
  15860. RETURN
  15861. '
  15862. PROCEDURE helpo(help$)
  15863.   TITLEW #1,ein_space$+help$+ein_space$
  15864.   set_clip_offset
  15865. RETURN
  15866. '
  15867. PROCEDURE help(help$)
  15868.   TITLEW #1,ein_space$+waehle$+help$+ein_space$
  15869.   set_clip_offset
  15870. RETURN
  15871. '
  15872. PROCEDURE help_titel
  15873.   TITLEW #1,ein_space$+pfad_vek$+"\"+programm$+".VEK "
  15874.   set_clip_offset
  15875.   DEFMOUSE 3
  15876.   DEFLINE 1
  15877.   COLOR 1
  15878.   GRAPHMODE 1
  15879.   p_xy_info("X:","Y:",0)
  15880.   SHOWM
  15881.   trigger_0
  15882.   zeit%=TIMER
  15883. RETURN
  15884. '
  15885. PROCEDURE polygon_fill
  15886.   REPEAT
  15887.     DEFMOUSE 0
  15888.     GET xt20&-4,yt20&-4,xt20&+bt20&+4,yt20&+ht20&+4,rette$
  15889.     SETMOUSE xt20&+bt20&/2,yt20&+160,0
  15890.     ~OBJC_DRAW(tree20_adr%,0,8,xt20&,yt20&,bt20&,ht20&)
  15891.     ~FORM_DO(tree20_adr%,0)
  15892.     exit_button&=DPEEK(GINTOUT)
  15893.     OB_STATE(tree20_adr%,exit_button&)=0
  15894.     PUT xt20&-4,yt20&-4,rette$
  15895.     IF OB_STATE(tree20_adr%,fill1&)=1
  15896.       DEFFILL 1,2,1
  15897.     ELSE IF OB_STATE(tree20_adr%,fill2&)=1
  15898.       DEFFILL 1,2,2
  15899.     ELSE IF OB_STATE(tree20_adr%,fill3&)=1
  15900.       DEFFILL 1,2,3
  15901.     ELSE IF OB_STATE(tree20_adr%,fill4&)=1
  15902.       DEFFILL 1,2,4
  15903.     ELSE IF OB_STATE(tree20_adr%,fill5&)=1
  15904.       DEFFILL 1,2,5
  15905.     ELSE IF OB_STATE(tree20_adr%,fill6&)=1
  15906.       DEFFILL 1,2,6
  15907.     ELSE IF OB_STATE(tree20_adr%,fill7&)=1
  15908.       DEFFILL 1,2,8
  15909.     ENDIF
  15910.     DEFMOUSE mdaten$
  15911.     help(help_polygon$)
  15912.     IF exit_button&<>fillcancel&
  15913.       REPEAT
  15914.         trigger_0
  15915.         wait_taste
  15916.         IF taste|<>2
  15917.           FILL x_mouse%,y_mouse%
  15918.         ENDIF
  15919.       UNTIL taste|=2
  15920.     ENDIF
  15921.   UNTIL exit_button&=fillcancel&
  15922.   ~FRE(0)
  15923.   DEFFILL 1,1
  15924.   help_titel
  15925. RETURN
  15926. '
  15927. ' *****************************************************************************
  15928. ' *                            TANGENTE NIVELLIEREN                           *
  15929. ' *                                                                           *
  15930. ' *  VERÄNDERT VAR: Punkte_X%(), Punkte_Y%()                                  *
  15931. ' *                                                                           *
  15932. ' *****************************************************************************
  15933. '
  15934. PROCEDURE do_niv_tangente(found_quelle%,von%,bis%,dreh_x%,dreh_y%)
  15935.   LOCAL phi,strecke
  15936.   dx=SUB(dreh_x%,punkte_x%(found%))
  15937.   dy=SUB(dreh_y%,punkte_y%(found%))
  15938.   strecke=SQR(dx*dx+dy*dy)
  15939.   get_phi(dreh_x%,dreh_y%,punkte_x%(found_quelle%),punkte_y%(found_quelle%),phi)
  15940.   redraw_von_bis(von%,bis%,0)
  15941.   punkte_x%(found%)=CINT(dreh_x%-strecke*COS(phi))
  15942.   punkte_y%(found%)=CINT(dreh_y%-strecke*SIN(phi))
  15943.   redraw_von_bis(von%,bis%,1)
  15944. RETURN
  15945. '
  15946. PROCEDURE tangente_nivellieren
  15947.   LOCAL found_quelle%,quelle_def|
  15948.   LOCAL von%,bis%,f%,dreh_x%,dreh_y%
  15949.   IF pointer%>1
  15950.     show_cursor_fang
  15951.     REPEAT
  15952.       trigger_0
  15953.       GRAPHMODE 1
  15954.       REPEAT
  15955.         wait_taste
  15956.         EXIT IF taste|=2
  15957.         find(x_mouse%*100/zoom,y_mouse%*100/zoom)
  15958.         quelle_def|=punkte_def|(found%)
  15959.       UNTIL (quelle_def|>da| AND quelle_def|<b3|)
  15960.       IF taste|<>2
  15961.         found_quelle%=found%
  15962.         IF quelle_def|=b1|
  15963.           IF punkte_def|(found_quelle%-1)=b3|
  15964.             found%=found_quelle%-2
  15965.             von%=found_quelle%-4
  15966.             bis%=von%+3
  15967.             dreh_x%=punkte_x%(found_quelle%-1)
  15968.             dreh_y%=punkte_y%(found_quelle%-1)
  15969.             do_niv_tangente(found_quelle%,von%,bis%,dreh_x%,dreh_y%)
  15970.           ELSE
  15971.             IF punkte_def|(found_quelle%-1)=da|
  15972.               found%=found_quelle%
  15973.               found_quelle%=found%-2
  15974.               von%=found%-1
  15975.               bis%=von%+3
  15976.               dreh_x%=punkte_x%(found%-1)
  15977.               dreh_y%=punkte_y%(found%-1)
  15978.               do_niv_tangente(found_quelle%,von%,bis%,dreh_x%,dreh_y%)
  15979.             ELSE
  15980.               IF punkte_def|(found_quelle%-1)=ma|
  15981.                 found%=found_quelle%
  15982.                 REPEAT
  15983.                   INC found%
  15984.                 UNTIL punkte_def|(found%)=ma|
  15985.                 DEC found%
  15986.                 IF punkte_def|(found%)=b3|
  15987.                   DEC found%
  15988.                   von%=found%-2
  15989.                   bis%=von%+3
  15990.                   dreh_x%=punkte_x%(found_quelle%-1)
  15991.                   dreh_y%=punkte_y%(found_quelle%-1)
  15992.                   do_niv_tangente(found_quelle%,von%,bis%,dreh_x%,dreh_y%)
  15993.                 ELSE
  15994.                   IF punkte_def|(found%)=da|
  15995.                     f%=found_quelle%
  15996.                     found_quelle%=found%-1
  15997.                     found%=f%
  15998.                     von%=found%-1
  15999.                     bis%=von%+3
  16000.                     dreh_x%=punkte_x%(found_quelle%+1)
  16001.                     dreh_y%=punkte_y%(found_quelle%+1)
  16002.                     do_niv_tangente(found_quelle%,von%,bis%,dreh_x%,dreh_y%)
  16003.                   ENDIF
  16004.                 ENDIF
  16005.               ENDIF
  16006.             ENDIF
  16007.           ENDIF
  16008.         ELSE
  16009.           IF quelle_def|=b2|
  16010.             IF punkte_def|(found_quelle%+2)=b1|
  16011.               found%=found_quelle%+2
  16012.               von%=found_quelle%+1
  16013.               bis%=von%+3
  16014.               dreh_x%=punkte_x%(found_quelle%+1)
  16015.               dreh_y%=punkte_y%(found_quelle%+1)
  16016.               do_niv_tangente(found_quelle%,von%,bis%,dreh_x%,dreh_y%)
  16017.             ELSE
  16018.               IF punkte_def|(found_quelle%+2)=da|
  16019.                 found%=found_quelle%
  16020.                 found_quelle%=found%+2
  16021.                 von%=found%-2
  16022.                 bis%=von%+3
  16023.                 dreh_x%=punkte_x%(found%+1)
  16024.                 dreh_y%=punkte_y%(found%+1)
  16025.                 do_niv_tangente(found_quelle%,von%,bis%,dreh_x%,dreh_y%)
  16026.               ELSE
  16027.                 IF punkte_def|(found_quelle%+2)=ma|
  16028.                   found%=found_quelle%
  16029.                   REPEAT
  16030.                     DEC found%
  16031.                   UNTIL punkte_def|(found%)=ma|
  16032.                   INC found%
  16033.                   IF punkte_def|(found%)=b1|
  16034.                     von%=found%-1
  16035.                     bis%=von%+3
  16036.                     dreh_x%=punkte_x%(found_quelle%+1)
  16037.                     dreh_y%=punkte_y%(found_quelle%+1)
  16038.                     do_niv_tangente(found_quelle%,von%,bis%,dreh_x%,dreh_y%)
  16039.                   ELSE
  16040.                     IF punkte_def|(found%)=da|
  16041.                       f%=found_quelle%
  16042.                       found_quelle%=found%
  16043.                       found%=f%
  16044.                       von%=found%-2
  16045.                       bis%=von%+3
  16046.                       dreh_x%=punkte_x%(found_quelle%-1)
  16047.                       dreh_y%=punkte_y%(found_quelle%-1)
  16048.                       do_niv_tangente(found_quelle%,von%,bis%,dreh_x%,dreh_y%)
  16049.                     ENDIF
  16050.                   ENDIF
  16051.                 ENDIF
  16052.               ENDIF
  16053.             ENDIF
  16054.           ENDIF
  16055.         ENDIF
  16056.       ENDIF
  16057.     UNTIL taste|=2
  16058.     DEFMOUSE 3
  16059.   ENDIF
  16060. RETURN
  16061. '
  16062. ' *****************************************************************************
  16063. ' *                               ASCII Editor                                *
  16064. ' *                                                                           *
  16065. ' *                                                                           *
  16066. ' *                                                                          ' ******************************************************************************
  16067. ' *                                                                            *
  16068. ' *                                   CUTOUT                                   *
  16069. ' *                                                                            *
  16070. ' *                                 27.02.1992                                 *
  16071. ' *                                                                            *
  16072. ' ******************************************************************************
  16073. '
  16074. '
  16075. $B+
  16076. $I-
  16077. INLINE scsi%,933
  16078. DIM buffer|(512*2)
  16079. DIM command|(12)
  16080. ' VAR:
  16081. ' apl_id&=APPL_INIT()
  16082. magic%=14031952
  16083. '
  16084. ' serien_nummer$="REGIST00"
  16085. ' serien_nummer_vergleich$="REGIST11"
  16086. serien_nummer$=MKD$(101)
  16087. serien_nummer_vergleich$=MKD$(101 XOR magic%)
  16088. '
  16089. fang_schnittpunkt|=4
  16090. buffer%=0
  16091. buffer_max%=0
  16092. poly_len%=0
  16093. bits%=0
  16094. punkt_eintrag&=0
  16095. x_start&=0
  16096. y_start&=0
  16097. edi_max&=0
  16098. m=0
  16099. m_neu=0
  16100. bit_count|=0
  16101. pixel!=FALSE
  16102. '
  16103. regist_nr%=0
  16104. revision$="1.59"
  16105. zeit%=TIMER
  16106. calamus_nr%=0
  16107. ortho|=45
  16108. ortho=RAD(ortho|)
  16109. ortho2=ortho/2
  16110. x_win&=0                                         ! Window X pos  aktuell
  16111. y_win&=0                                         ! Window Y pos  aktuell
  16112. x_window&=0                                      ! Window X pos  aktuell
  16113. y_window&=0                                      ! Window Y pos  aktuell
  16114. b_window&=0                                      ! Window Breite aktuell
  16115. h_window&=0                                      ! Window Höhe   aktuell
  16116. ~WIND_GET(0,4,scrx&,scry&,scrb&,scrh&)           ! maximaler Desktop
  16117. wmx%=scrb&-62
  16118. wmy%=scrh&-57+scry&
  16119. desk_breite&=scrb&
  16120. desk_hoehe&=scrh&+scry&
  16121. gross_bildschirm!=FALSE
  16122. IF desk_breite&>640 OR desk_hoehe&>400
  16123.   gross_bildschirm!=TRUE
  16124. ENDIF
  16125. ADD scrx&,42                                     ! Position Window X+Menuleiste
  16126. SUB scrb&,42                                     ! Breite   Window
  16127. scrb_old&=scrb&
  16128. scrh_old&=scrh&
  16129. res_x%=0                                         ! Auflösung x in mm
  16130. res_y%=0                                         ! Auflösung y in mm
  16131. res_x_old%=0
  16132. res_y_old%=0
  16133. x_layer%=0
  16134. y_layer%=0
  16135. x_layero%=0
  16136. y_layero%=0
  16137. x_offset&=0                                      ! Nullpunkt x im Fenster
  16138. y_offset&=0                                      ! Nullpunkt y im Fenster
  16139. x_offset_old&=0
  16140. y_offset_old&=0
  16141. x_mouse%=0
  16142. y_mouse%=0
  16143. x_mouse_old%=0
  16144. y_mouse_old%=0
  16145. x_mouse_0%=0
  16146. y_mouse_0%=0
  16147. objectbox_x0%=0
  16148. objectbox_y0%=0
  16149. objectbox_x1%=0
  16150. objectbox_y1%=0
  16151. grid%=10                                        ! raster mm
  16152. schraff_dist=201
  16153. schraff_inc=0
  16154. schraff_fix_abst=0
  16155. schraff_winkel=0
  16156. schraff_start%=0
  16157. schraff_y_min%=0
  16158. bit_count_max|=6
  16159. geraden_fehler|=1
  16160. lange_gerade%=4000
  16161. schmutz_filter%=20
  16162. knick_winkel_max=RAD(140)
  16163. bogen_max=PI/2/2
  16164. abweichung_gerade%=0.5*100
  16165. last_poly_s%=-1
  16166. last_poly_e%=-1
  16167. taste|=0
  16168. zoom=1
  16169. zoom_old=1
  16170. zoom_100=1
  16171. pointer%=0                                       ! Zeiger auf Punkteliste
  16172. found%=0                                         ! gefundener Punkt bei SNAP
  16173. found_t%=0                                       ! gefundener Kurvenparameter
  16174. schnittpunkt_genau%=16                           ! Zerlegung Bezier in Teile
  16175. anz_schnittpunkte%=0                             ! Anzahl Schnittpunkte
  16176. b_vari=100
  16177. i%=0                                             ! allgemeiner Schleifenzähler
  16178. ii%=0
  16179. iii%=0
  16180. d0%=0
  16181. dx%=0
  16182. dy%=0
  16183. dx=0
  16184. dy=0
  16185. schnitt_laenge=0
  16186. kostfak=1
  16187. gkosten=0
  16188. px0%=0
  16189. py0%=0
  16190. px1%=0
  16191. py1%=0
  16192. px2%=0
  16193. py2%=0
  16194. px3%=0
  16195. py3%=0
  16196. m_square_breite&=&H3000
  16197. m_square_hoehe&=&H3000
  16198. kerning_256|=m_square_breite& DIV 256
  16199. len_pair_daten&=0
  16200. z_hoehe_def%=16384                               ! Höhe des definierten Zsatzes
  16201. z_breite_def%=16384                              ! Breite     "
  16202. zeichen_hoehe%=3000                              ! gewünschte Höhe in 1/100 mm
  16203. versal_def%=0                                    ! Versal     Höhe in 1/100 mm
  16204. z_ascii_scale=zeichen_hoehe%/z_hoehe_def%        ! Scaling
  16205. z_ascii_scale_old=z_ascii_scale                  ! save Scaling
  16206. global_kerning%=1280                             ! globales Kerning
  16207. zeilen_abstand_prozent%=125                      ! relativer Zeilen Abstand
  16208. zeilen_abstand%=zeichen_hoehe%*zeilen_abstand_prozent%/100-zeichen_hoehe%
  16209. z_cursor_x_spalte%=0                             ! Start String
  16210. z_cursor_x%=0                                    ! ASCII Zeichen Cursor X
  16211. z_cursor_y%=0                                    ! ASCII Zeichen Cursor y
  16212. z_cursor_x_old%=0                                ! letztes Zeichen Cursor X
  16213. z_cursor_y_old%=0                                ! letztes Zeichen Cursor y
  16214. z_ascii_old%=0                                   ! letztes Zeichen ASCII+32
  16215. z_satz_pointer%=0                                ! Pointer auf Zeichensatz
  16216. state_rs232&=0                                   ! Centronics aktiv
  16217. state_hp&=0                                      ! HPGL aktiv
  16218. folie_x%=1188                                    ! Folien Grö₧e
  16219. folie_y%=840
  16220. plotter_x_min%=0
  16221. plotter_y_min%=0
  16222. gdu=0                                            ! 100*Plottereinheit
  16223. sel_start%=0
  16224. sel_end%=0
  16225. gtxv&=0
  16226. gtyv&=0
  16227. gtbv&=216
  16228. gthv&=297
  16229. gtdpiv&=300
  16230. gtfarbev&=3
  16231. gtkontrav&=3
  16232. exit_button&=0
  16233. cursor_x&=0
  16234. cursor_y&=0
  16235. ofn_ver|=0
  16236. overcut|=0
  16237. geschlossen%=0
  16238. '
  16239. phi_x_3d=0
  16240. phi_y_3d=0
  16241. a2_3d=0
  16242. '
  16243. daten_ptr%=0
  16244. work_space%=0
  16245. '
  16246. ' CONST:
  16247. '
  16248. IF FRE(0)>4000000
  16249.   p_max%=99999
  16250. ELSE
  16251.   p_max%=60000
  16252. ENDIF
  16253. ma|=0
  16254. da|=1
  16255. b1|=2
  16256. b2|=3
  16257. b3|=4
  16258. ein_drittel=1/3
  16259. fmin=2.225073858507E-307
  16260. fmin1=0.005
  16261. max1=0.995
  16262. pimal2=PI*2
  16263. pihalbe=PI/2
  16264. pidrittel=PI/3
  16265. fang_rad%=8*100                                  ! FANGRADIUS
  16266. p_at%=XBIOS(3)+76                                ! PRINT AT FÜR X,Y
  16267. p_at_zoom%=p_at%-12                              ! PRINT AT FÜR ZOOM
  16268. x_bytes%=(scrb&+42)/8                            ! BYTES IN X RICHTUNG DESKTOP
  16269. '
  16270. ' CONST: Menuleiste
  16271. '
  16272. tree00&=0
  16273. tree0_adr%=0
  16274. datei&=3
  16275. eintrag&=4
  16276. mfenster&=10
  16277. mtext&=5
  16278. mzedi&=6
  16279. spezial&=7
  16280. all_clear&=8
  16281. bbogen&=9
  16282. mschnitt&=11
  16283. '
  16284. tree01&=1
  16285. tree1_adr%=0
  16286. back_main&=3
  16287. fwd_main&=4
  16288. gerade&=5
  16289. kurve&=6
  16290. schliess&=7
  16291. verrunde&=8
  16292. loeschen&=9
  16293. lock&=10
  16294. snap&=11
  16295. bild&=12
  16296. zircel&=13
  16297. bezier4&=14
  16298. schere&=15
  16299. ' fenster&=15
  16300. '
  16301. tree02&=2
  16302. tree2_adr%=0
  16303. back_datei&=3
  16304. fwd_datei&=4
  16305. l_vek&=5
  16306. l_merge&=6
  16307. r_macro&=7
  16308. r_cvg&=8
  16309. l_img&=9
  16310. l_pic&=10
  16311. ordner&=11
  16312. s_vek&=12
  16313. s_plt&=13
  16314. a_plotter&=14
  16315. '
  16316. tree03&=3
  16317. tree3_adr%=0
  16318. back_fenster&=3
  16319. fwd_fenster&=4
  16320. fmove&=5
  16321. blitz&=6
  16322. fcopy&=7
  16323. fzoom&=8
  16324. fzoomp&=9
  16325. fdreh&=10
  16326. fspiegel&=11
  16327. fkursiv&=12
  16328. dreh3d&=13
  16329. drehxp&=14
  16330. drehxm&=15
  16331. drehym&=16
  16332. drehyp&=17
  16333. floesch&=18
  16334. fzoom1&=19
  16335. '
  16336. tree04&=4
  16337. tree4_adr%=0
  16338. back_spezial&=3
  16339. gtepson&=4
  16340. handy&=5
  16341. kontour&=6
  16342. filter&=7
  16343. trace&=8
  16344. smooth&=9
  16345. simag&=10
  16346. '
  16347. tree05&=5
  16348. tree5_adr%=0
  16349. back_text&=3
  16350. fwd_text&=4
  16351. z_edit&=5
  16352. z_editor&=6
  16353. z_string&=7
  16354. z_t_hoehe&=8
  16355. z_t_abstand&=9
  16356. z_g_kerning&=10
  16357. z_read_ascii&=11
  16358. l_font&=12
  16359. s_font&=14
  16360. c_font&=13
  16361. '
  16362. tree06&=6
  16363. tree6_adr%=0
  16364. t_hoehe&=1
  16365. '
  16366. tree07&=7
  16367. tree7_adr%=0
  16368. zabs&=1
  16369. '
  16370. tree08&=8                                         ! String Text
  16371. tree8_adr%=0
  16372. string_text&=1
  16373. breite&=3
  16374. string_breite&=4
  16375. versal&=5
  16376. string_versal&=6
  16377. pfad&=7
  16378. do_kerning&=8
  16379. string_kreis&=9
  16380. string_kreis_von&=10
  16381. string_kreis_bis&=11
  16382. fontname&=13
  16383. c_text&=14
  16384. icon_pair&=15
  16385. icon_trep&=16
  16386. '
  16387. tree09&=9                                         ! Zeichen Editor
  16388. tree9_adr%=0
  16389. back_editor&=3
  16390. m_matrix&=4
  16391. z_matrix&=5
  16392. move_matrix&=6
  16393. kerning_links&=7
  16394. kerning_rechts&=8
  16395. kerning_auto&=9
  16396. z_get&=10
  16397. z_muell&=11
  16398. z_up&=13
  16399. z_down&=14
  16400. z_char&=15
  16401. '
  16402. tree10&=10
  16403. tree10_adr%=0
  16404. b_kerning&=2
  16405. g_kerning&=3
  16406. '
  16407. tree11&=11                                       ! Optimier
  16408. tree11_adr%=0
  16409. del_ma&=4
  16410. del_ge&=6
  16411. del_el&=8
  16412. '
  16413. tree12&=12
  16414. tree12_adr%=0
  16415. bstep&=1
  16416. '
  16417. tree13&=13                                       ! Info
  16418. tree13_adr%=0
  16419. vernr&=7
  16420. version&=4
  16421. firma&=4
  16422. strasse&=7
  16423. stadt&=10
  16424. punkte&=15
  16425. rest&=17
  16426. '
  16427. tree14&=14                                       ! Auflösung
  16428. tree14_adr%=0
  16429. rx1&=8
  16430. ry1&=10
  16431. rx2&=12
  16432. ry2&=13
  16433. rx3&=16
  16434. ry3&=17
  16435. get_pf&=19
  16436. r1&=4
  16437. r2&=5
  16438. r3&=6
  16439. '
  16440. tree15&=15                                       ! Plotter INIT
  16441. tree15_adr%=0
  16442. p_init1&=3
  16443. p_init2&=4
  16444. gdu01&=9
  16445. gdu025&=10
  16446. gdu05&=11
  16447. gdu1&=12
  16448. overcut&=16
  16449. cent&=18
  16450. rs232&=20
  16451. hp&=23
  16452. gp&=24
  16453. mgl&=25
  16454. ma&=29
  16455. da&=30
  16456. '
  16457. tree16&=16                                       ! Pfade und Parameter
  16458. tree16_adr%=0
  16459. pv&=5
  16460. pp&=7
  16461. pfi&=9
  16462. pg&=11
  16463. pf&=13
  16464. df&=15
  16465. p1&=17
  16466. p2&=19
  16467. schnitt&=21
  16468. gdu&=23
  16469. foliex&=25
  16470. foliey&=27
  16471. warn&=29
  16472. cancel&=31
  16473. '
  16474. tree17&=17
  16475. tree17_adr%=0
  16476. outl&=1
  16477. outl_anz&=2
  16478. '
  16479. tree18&=18
  16480. tree18_adr%=0
  16481. schraffd&=1
  16482. schraffi&=2
  16483. schrafix&=3
  16484. schraffw&=4
  16485. schraffa&=7
  16486. schrafff&=8
  16487. '
  16488. tree19&=19
  16489. tree19_adr%=0
  16490. necka&=1
  16491. neckp&=2
  16492. '
  16493. tree20&=20                                      ! Füll
  16494. tree20_adr%=0
  16495. fill1&=3
  16496. fill2&=5
  16497. fill3&=7
  16498. fill4&=9
  16499. fill5&=11
  16500. fill6&=13
  16501. fill7&=15
  16502. fillcancel&=17
  16503. '
  16504. tree21&=21                                      ! Trace
  16505. tree21_adr%=0
  16506. t_step&=7
  16507. t_gerade&=8
  16508. t_schmutz&=9
  16509. bschwelle&=21
  16510. knickwinkel&=22
  16511. bogen_max&=23
  16512. abweichung_gerade&=24
  16513. nur_gerade&=13
  16514. trace_cancel&=14
  16515. gerade_bezier&=30
  16516. '
  16517. tree22&=22
  16518. tree22_adr%=0
  16519. scann_x&=1
  16520. scann_y&=2
  16521. '
  16522. tree23&=23
  16523. tree23_adr%=0
  16524. radius&=1
  16525. '
  16526. tree24&=24
  16527. tree24_adr%=0
  16528. grau&=6
  16529. stark&=7
  16530. selgrau0&=4
  16531. selgrau&=5
  16532. sellinie&=8
  16533. alle&=9
  16534. auswahl&=10
  16535. '
  16536. tree25&=25                               ! Bogen
  16537. tree25_adr%=0
  16538. backboge&=3
  16539. vkreis&=4
  16540. kreis3&=5
  16541. kreisbog&=6
  16542. bogen3&=7
  16543. bogen2&=8
  16544. ellipse&=9
  16545. elbogen&=10
  16546. eckrund&=11
  16547. '
  16548. tree26&=26                               ! Koordinaten
  16549. tree26_adr%=0
  16550. absolut&=2
  16551. relativ&=3
  16552. polar&=4
  16553. '
  16554. tree27&=27                               ! Calamus Versions Nr.
  16555. tree27_adr%=0
  16556. calamus_nr&=1
  16557. '
  16558. tree28&=28                               ! GT 6000
  16559. tree28_adr%=0
  16560. gtscan&=47
  16561. gtx&=38
  16562. gty&=44
  16563. gtb&=42
  16564. gth&=43
  16565. gtcancel&=46
  16566. gtpresca&=45
  16567. gtdpi&=35
  16568. gtdpimin&=33
  16569. gtdpiplu&=34
  16570. gtprewin&=1
  16571. gtstate&=5
  16572. gtkeiner&=9
  16573. gtraster&=10
  16574. gtweich&=11
  16575. gthart&=12
  16576. gtkeine&=15
  16577. gtrot&=18
  16578. gtgruen&=17
  16579. gtblau&=16
  16580. k0&=22
  16581. k1&=23
  16582. k2&=24
  16583. k3&=25
  16584. k4&=26
  16585. k5&=27
  16586. k6&=28
  16587. '
  16588. tree29&=29                               ! Kosten
  16589. tree29_adr%=0
  16590. kostfak&=1
  16591. sl&=2
  16592. gkosten&=4
  16593. '
  16594. tree30&=30                               ! Select Filter
  16595. tree30_adr%=0
  16596. abs_filter&=1
  16597. '
  16598. tree31&=31                               ! Select Fenster
  16599. tree31_adr%=0
  16600. ohnecopy&=1
  16601. mitcopy&=6
  16602. anz_rot&=3
  16603. phi_rot&=4
  16604. numohne&=5
  16605. ausricht_vector&=7
  16606. '
  16607. tree32&=32                               ! Select Spiegel
  16608. tree32_adr%=0
  16609. anbox&=2
  16610. anachse&=1
  16611. '
  16612. tree33&=33
  16613. tree33_adr%=0
  16614. teil&=1
  16615. '
  16616. tree34&=34                               ! Schnittpunkt
  16617. tree34_adr%=0
  16618. backschn&=3
  16619. fwdschn&=4
  16620. trimm&=5
  16621. knack&=6
  16622. lot&=7
  16623. teilen&=8
  16624. lang&=9
  16625. schnitt2&=10
  16626. schnittn&=11
  16627. delseg&=12
  16628. delel&=13
  16629. schmelz&=14
  16630. '
  16631. tree35&=35                              ! Select Copy
  16632. tree35_adr%=0
  16633. copysing&=1
  16634. copymul&=2
  16635. cx&=4
  16636. cy&=5
  16637. canz&=6
  16638. cdist&=7
  16639. '
  16640. tree36&=36                              ! Ausrichten
  16641. tree36_adr%=0
  16642. a_olinks&=1
  16643. a_oben&=2
  16644. a_orechts&=3
  16645. a_links&=4
  16646. a_mitte&=5
  16647. a_rechts&=6
  16648. a_ulinks&=7
  16649. a_unten&=8
  16650. a_urechts&=9
  16651. '
  16652. tree37&=37                              ! Scalieren
  16653. tree37_adr%=0
  16654. scale_interactiv&=1
  16655. scale_numerisch&=2
  16656. scale_breite&=4
  16657. scale_hoehe&=5
  16658. '
  16659. tree38&=38                              ! Ordner
  16660. tree38_adr%=0
  16661. ordnert&=1
  16662. ordnerok&=2
  16663. ordnerca&=3
  16664. '
  16665. tree39&=39                              ! Kerning
  16666. tree39_adr%=0
  16667. kerning_box&=1
  16668. kerning_minus&=3
  16669. kerning_plus&=4
  16670. kerning_last&=2
  16671. kerning_next&=5
  16672. kerning_exit&=6
  16673. kerning_minus2&=9
  16674. kerning_plus2&=10
  16675. kerning_last2&=8
  16676. kerning_next2&=11
  16677. kerning_clear&=7
  16678. kerning_info&=13
  16679. kerning_pair&=15
  16680. '
  16681. tree40&=40                              ! Plotter OUTPUT
  16682. tree40_adr%=0
  16683. pl100&=3
  16684. plschieber&=4
  16685. plschere&=7
  16686. plschereauf&=5
  16687. plscherezu&=6
  16688. plschere&=7
  16689. '
  16690. tree41&=41                              ! Select Neigen
  16691. tree41_adr%=0
  16692. neige_grad&=2
  16693. neige_vertical&=3
  16694. neige_horizontal&=4
  16695. neige_interaktiv&=5
  16696. '
  16697. ' FLAG:
  16698. '
  16699. undo!=FALSE
  16700. geschlossen!=FALSE
  16701. ok!=FALSE                                        ! allgemein
  16702. layer_geladen!=FALSE                             ! ist  Layer geladen
  16703. layer!=FALSE                                     ! soll Layer gezeigt werden
  16704. window_fulled!=TRUE                              ! ist  Fenster schon gro₧
  16705. voll_bild!=FALSE                                 ! ist  Fenster komplett auf Crt
  16706. eintragen!=FALSE                                 ! ist  eintragen aktiv
  16707. bogen!=FALSE
  16708. mtext!=FALSE
  16709. meditor!=FALSE
  16710. datei!=FALSE
  16711. fenster!=FALSE
  16712. schnittpunktm!=FALSE
  16713. loeschen!=FALSE                                  ! ist  loeschen aktiv
  16714. neues_polygon!=TRUE                              ! erster Punkt im Polygon
  16715. found!=FALSE                                     ! gefunden bei Fangradius
  16716. marker!=FALSE                                    ! sollen Marker gezeigt werden
  16717. marker_select!=FALSE                             ! soll   Marker selectiert
  16718. modified!=FALSE                                  ! wurde Vektorbild geändert
  16719. font_geladen!=FALSE                              ! ist ein Font geladen
  16720. outlined!=FALSE                                  ! wurde Bitmap schon outlined
  16721. auto_schraff!=TRUE
  16722. schraff_fix_abst!=FALSE
  16723. einpassen!=FALSE
  16724. tangente!=FALSE
  16725. tangenten_lock!=TRUE
  16726. warn!=FALSE
  16727. gp_gl!=FALSE                                     ! HPGL oder GPGL
  16728. tasten_rep!=FALSE
  16729. absolut!=TRUE
  16730. relativ!=FALSE
  16731. polar!=FALSE
  16732. absolut_old!=FALSE
  16733. polar_old!=FALSE
  16734. fangklein!=FALSE                                 ! Fangradius gro₧
  16735. fadenkreuz!=FALSE
  16736. polygonmode!=TRUE                                ! Polygonmodus
  16737. ortho!=FALSE
  16738. grid!=FALSE
  16739. scrolled!=FALSE
  16740. move!=FALSE
  16741. drei_d!=FALSE
  16742. status_wechsel!=FALSE
  16743. grid_wechsel!=FALSE
  16744. swap!=FALSE
  16745. '
  16746. ' ARRAY:
  16747. '
  16748. DIM smfdb%(8),dmfdb%(8),p%(8)
  16749. DIM z_smfdb%(8),z_dmfdb%(8),z_p%(8),q_dmfdb%(8)
  16750. DIM punkte_x%(p_max%),punkte_y%(p_max%),punkte_def|(p_max%),buffer%(p_max%/2)
  16751. DIM x_meta%(127),y_meta%(127),punkte_def1|(32)
  16752. ARRAYFILL punkte_def1|(),1
  16753. DIM bezier_x&(33),bezier_y&(33)
  16754. DIM m$(87)
  16755. DIM mk%(60,2)
  16756. DIM m_square%(5)
  16757. DIM z_editor%(32)
  16758. DIM z_ascii%(224),z_kerning&(224*16),z_daten&(224*280),z_pair&(224),z_pair|(224),z_pair_daten|(2000)
  16759. DIM sx1%(9),sy1%(9),sx2%(9),sy2%(9),sp1(9),sp2(9)
  16760. DIM zeilen_buffer$(60)
  16761. rette$=SPACE$(32000)
  16762. pfad$=SPACE$(80)
  16763. kerning_string$=SPACE$(60)
  16764. pfad_pic$=SPACE$(80)
  16765. pfad_img$=SPACE$(80)
  16766. pfad_vek$=SPACE$(80)
  16767. pfad_vek_root$=SPACE$(80)
  16768. pfad_cvg$=SPACE$(80)
  16769. pfad_fnt$=SPACE$(80)
  16770. pfad_cfn$=SPACE$(80)
  16771. default_font$=SPACE$(10)
  16772. programm$=SPACE$(10)
  16773. programm_font$=SPACE$(10)
  16774. test_datei$=SPACE$(10)
  16775. object$=SPACE$(80)
  16776. p_init1$=SPACE$(40)
  16777. p_init2$=SPACE$(40)
  16778. abc$="CutOut Test"
  16779. ma$="M"
  16780. da$="D"
  16781. cutout_font$="CUTOUTOFN"
  16782. calamus_font_grafik$=MKI$(159)+MKI$(15)+MKI$(1)+SPACE$(320)
  16783. ok$="OK"
  16784. ein_space$=" "
  16785. x_y$="X|Y"
  16786. erster$="1. "
  16787. zweiter$="2. "
  16788. help_on$="ON "
  16789. help_off$="OFF"
  16790. vek$="VEK"
  16791. cvg$="CVG"
  16792. img$="IMG"
  16793. plt$="PLT"
  16794. calamus$="CALAMUS"
  16795. cutout$="CutOut"
  16796. ' ****************************************************************************
  16797. OPEN "I",#1,"SYS\LANGUAGE.DRV"
  16798. LINE INPUT #1,pd_menu$
  16799. LINE INPUT #1,pd_datei$
  16800. LINE INPUT #1,pd_editieren$
  16801. LINE INPUT #1,pd_fenster$
  16802. LINE INPUT #1,pd_schnittpunkt$
  16803. LINE INPUT #1,pd_bogen$
  16804. LINE INPUT #1,pd_text$
  16805. LINE INPUT #1,pd_zeicheneditor$
  16806. LINE INPUT #1,pd_extra$
  16807. LINE INPUT #1,pd_quit$
  16808. '
  16809. LINE INPUT #1,pd_optionen$
  16810. LINE INPUT #1,pd_marker_anzeigen$
  16811. LINE INPUT #1,pd_tangenten_anzeigen$
  16812. LINE INPUT #1,pd_fangradius_klein$
  16813. LINE INPUT #1,pd_polygon_modus$
  16814. LINE INPUT #1,pd_schnittpunkt_genau$
  16815. LINE INPUT #1,pd_koordinaten$
  16816. LINE INPUT #1,pd_element_selektieren$
  16817. LINE INPUT #1,pd_polygon_selektieren$
  16818. LINE INPUT #1,pd_warnmeldungen$
  16819. LINE INPUT #1,pd_skaliere_alles$
  16820. LINE INPUT #1,pd_punkte_nivellieren$
  16821. LINE INPUT #1,pd_tangente$
  16822. LINE INPUT #1,pd_plotflaeche$
  16823. LINE INPUT #1,pd_bezier_step_aendern$
  16824. LINE INPUT #1,pd_plotter_einstellung$
  16825. LINE INPUT #1,pd_kosten_faktor$
  16826. LINE INPUT #1,pd_pfad_sichern$
  16827. '
  16828. LINE INPUT #1,pd_figur$
  16829. LINE INPUT #1,pd_rechteck$
  16830. LINE INPUT #1,pd_n_eck$
  16831. LINE INPUT #1,pd_polygon_outline$
  16832. LINE INPUT #1,pd_aequidistante$
  16833. LINE INPUT #1,pd_frame$
  16834. LINE INPUT #1,pd_polygone_ausrichten$
  16835. LINE INPUT #1,pd_polygone_zentrieren$
  16836. LINE INPUT #1,pd_polygone_vereinen$
  16837. LINE INPUT #1,pd_polygone_fuellen$
  16838. LINE INPUT #1,pd_einzelne_punkte_loeschen$
  16839. '
  16840. LINE INPUT #1,pd_linie$
  16841. LINE INPUT #1,pd_bezier_vektor$
  16842. LINE INPUT #1,pd_bezier_einfuegen$
  16843. LINE INPUT #1,pd_tausche_bezier_vektor$
  16844. LINE INPUT #1,pd_knacken$
  16845. LINE INPUT #1,pd_trimmen$
  16846. LINE INPUT #1,pd_lot$
  16847. LINE INPUT #1,pd_verlaengern$
  16848. LINE INPUT #1,pd_teilen$
  16849. LINE INPUT #1,pd_messen$
  16850. LINE INPUT #1,pd_schnittp_2er$
  16851. LINE INPUT #1,pd_schnittp_n$
  16852. '
  16853. LINE INPUT #1,pd_effekt$
  16854. LINE INPUT #1,pd_parameter_schraffur$
  16855. LINE INPUT #1,pd_polygon_schraffieren$
  16856. LINE INPUT #1,pd_alles_schraffieren$
  16857. LINE INPUT #1,pd_schatten$
  16858. LINE INPUT #1,pd_einpassen$
  16859. LINE INPUT #1,pd_kugel$
  16860. '
  16861. LINE INPUT #1,lade$
  16862. LINE INPUT #1,sichere$
  16863. LINE INPUT #1,fuege_ein$
  16864. LINE INPUT #1,vektor$
  16865. LINE INPUT #1,macro$
  16866. LINE INPUT #1,daten$
  16867. LINE INPUT #1,zeichensatz$
  16868. LINE INPUT #1,kein$
  16869. LINE INPUT #1,keine$
  16870. LINE INPUT #1,ja_nein$
  16871. LINE INPUT #1,waehle$
  16872. LINE INPUT #1,fehler$
  16873. LINE INPUT #1,scannen$
  16874. LINE INPUT #1,pre_view$
  16875. LINE INPUT #1,ascii_importieren$
  16876. LINE INPUT #1,ascii_exportieren$
  16877. LINE INPUT #1,schriftblock$
  16878. LINE INPUT #1,radius_zu$
  16879. LINE INPUT #1,winkel_zu$
  16880. LINE INPUT #1,leider$
  16881. LINE INPUT #1,winkel_einstellen$
  16882. LINE INPUT #1,spiegelachse$
  16883. LINE INPUT #1,lupe_mal$
  16884. LINE INPUT #1,fensterbereich$
  16885. LINE INPUT #1,drehzentrum$
  16886. LINE INPUT #1,ordner_exist$
  16887. LINE INPUT #1,kein_leer$
  16888. LINE INPUT #1,suche_schnittpunkte$
  16889. LINE INPUT #1,gleiches_polygon$
  16890. LINE INPUT #1,bezugs$
  16891. LINE INPUT #1,zentriere$
  16892. LINE INPUT #1,huellkurve$
  16893. LINE INPUT #1,huellkurve1$
  16894. LINE INPUT #1,berechne$
  16895. LINE INPUT #1,rechte_taste$
  16896. LINE INPUT #1,endpunkt$
  16897. LINE INPUT #1,lot_an$
  16898. LINE INPUT #1,noname$
  16899. LINE INPUT #1,symbol$
  16900. LINE INPUT #1,orginal_fenster$
  16901. LINE INPUT #1,dmc_font$
  16902. LINE INPUT #1,bild_datei_zu$
  16903. LINE INPUT #1,stad_laden$
  16904. LINE INPUT #1,plotter_ist_off$
  16905. LINE INPUT #1,plot_datei$
  16906. LINE INPUT #1,kein_treiber$
  16907. LINE INPUT #1,schnittstelle_auf$
  16908. LINE INPUT #1,polygone_vereinen$
  16909. LINE INPUT #1,loesche_einzelne$
  16910. LINE INPUT #1,quelle$
  16911. LINE INPUT #1,ziel$
  16912. LINE INPUT #1,nivelliere$
  16913. LINE INPUT #1,alle_daten_l$
  16914. LINE INPUT #1,ganzer_zeichensatz$
  16915. LINE INPUT #1,font_daten_loeschen$
  16916. LINE INPUT #1,zeichen_matrix$
  16917. LINE INPUT #1,datei_existiert$
  16918. LINE INPUT #1,datei_ueberschreiben$
  16919. LINE INPUT #1,glaetten_mit$
  16920. LINE INPUT #1,gerade_bezier$
  16921. LINE INPUT #1,glaetten$
  16922. LINE INPUT #1,bereich$
  16923. LINE INPUT #1,path$
  16924. LINE INPUT #1,help_mittelpunkt$
  16925. LINE INPUT #1,help_radius$
  16926. LINE INPUT #1,help_position$
  16927. LINE INPUT #1,help_startwinkel$
  16928. LINE INPUT #1,help_endwinkel$
  16929. LINE INPUT #1,help_polygon$
  16930. LINE INPUT #1,help_punkt$
  16931. LINE INPUT #1,help_linie$
  16932. LINE INPUT #1,help_element$
  16933. LINE INPUT #1,help_verrund$
  16934. LINE INPUT #1,help_loesche$
  16935. LINE INPUT #1,help_trenn$
  16936. LINE INPUT #1,help_move$
  16937. LINE INPUT #1,help_sel$
  16938. LINE INPUT #1,help_move_window$
  16939. LINE INPUT #1,help_rahmen$
  16940. LINE INPUT #1,help_edit$
  16941. LINE INPUT #1,help_bezier$
  16942. LINE INPUT #1,help_status$
  16943. LINE INPUT #1,help_ortho$
  16944. LINE INPUT #1,help_grid$
  16945. LINE INPUT #1,help_free$
  16946. LINE INPUT #1,help_snap$
  16947. LINE INPUT #1,help_editor$
  16948. LINE INPUT #1,help_pfad$
  16949. CLOSE #1
  16950. ' ****************************************************************************
  16951. integer%=VARPTR(punkte_x%(1))-VARPTR(punkte_x%(0))  ! Länge in Bytes Integer
  16952. '
  16953. z_editor%(0)=2048                                   ! Top      Line   Y
  16954. z_editor%(1)=3072                                   ! Ascent   Line   Y
  16955. z_editor%(2)=6144                                   ! Half     Line   Y
  16956. z_editor%(3)=11264                                  ! Base     Line   Y
  16957. z_editor%(4)=13952                                  ! Descent  Line   Y
  16958. z_editor%(5)=14336                                  ! Bottom   Line   Y
  16959. '
  16960. z_editor%(6)=0                                      ! Matrix   links  X
  16961. z_editor%(7)=16384                                  ! Matrix   rechts X
  16962. z_editor%(8)=1280                                   ! Kerning  links  X
  16963. z_editor%(9)=1280                                   ! Kerning  links  X
  16964. z_editor%(10)=1280                                  ! Kerning  links  X
  16965. z_editor%(11)=1280                                  ! Kerning  links  X
  16966. z_editor%(12)=1280                                  ! Kerning  links  X
  16967. z_editor%(13)=1280                                  ! Kerning  links  X
  16968. z_editor%(14)=1280                                  ! Kerning  links  X
  16969. z_editor%(15)=1280                                  ! Kerning  links  X
  16970. z_editor%(16)=15104                                 ! Kerning  rechts X
  16971. z_editor%(17)=15104                                 ! Kerning  rechts X
  16972. z_editor%(18)=15104                                 ! Kerning  rechts X
  16973. z_editor%(19)=15104                                 ! Kerning  rechts X
  16974. z_editor%(20)=15104                                 ! Kerning  rechts X
  16975. z_editor%(21)=15104                                 ! Kerning  rechts X
  16976. z_editor%(22)=15104                                 ! Kerning  rechts X
  16977. z_editor%(23)=15104                                 ! Kerning  rechts X
  16978. z_editor%(24)=z_editor%(0)                          ! Kerning         Y
  16979. z_editor%(25)=(z_editor%(5)-z_editor%(0))/8         ! Kerning         Y
  16980. z_editor%(26)=z_editor%(24)+z_editor%(25)           ! Kerning         Y
  16981. z_editor%(27)=z_editor%(26)+z_editor%(25)           ! Kerning         Y
  16982. z_editor%(28)=z_editor%(27)+z_editor%(25)           ! Kerning         Y
  16983. z_editor%(29)=z_editor%(28)+z_editor%(25)           ! Kerning         Y
  16984. z_editor%(30)=z_editor%(29)+z_editor%(25)           ! Kerning         Y
  16985. z_editor%(31)=z_editor%(30)+z_editor%(25)           ! Kerning         Y
  16986. z_editor%(32)=0                                     ! Matrix oben     Y
  16987. '
  16988. ' ******************************************************************************
  16989. ' *                                                                            *
  16990. ' *                             MENU INITIALISIERUNG                           *
  16991. ' *                                                                            *
  16992. ' ******************************************************************************
  16993. '
  16994. BMOVE V:serien_nummer$,V:serien_nummer,8
  16995. BMOVE V:serien_nummer_vergleich$,V:serien_nummer_vergleich,8
  16996. regist_nr%=serien_nummer_vergleich
  16997. IF serien_nummer<>(serien_nummer_vergleich XOR magic%)
  16998.   PRINT "SORRY HACKER"
  16999.   PAUSE 300
  17000.   SYSTEM
  17001. ENDIF
  17002. INLINE zasm_ptr%,4136
  17003. INLINE pack_img%,958
  17004. INLINE calc_bezier%,1050
  17005. INLINE p_num%,360
  17006. INLINE find_line%,356
  17007. INLINE kontour%,216
  17008. INLINE staddec%,184
  17009. INLINE imgdec%,228
  17010. INLINE findexcept%,52
  17011. INLINE findpointexcept%,70
  17012. mfang$=MKI$(7)+MKI$(7)+MKI$(1)+MKI$(0)+MKI$(1)
  17013. mfang$=mfang$+MKI$(&X1111111111111110)
  17014. mfang$=mfang$+MKI$(&X1111111111111110)
  17015. mfang$=mfang$+MKI$(&X1100001110000110)
  17016. mfang$=mfang$+MKI$(&X1100001110000110)
  17017. mfang$=mfang$+MKI$(&X1100001110000110)
  17018. mfang$=mfang$+MKI$(&X1100001110000110)
  17019. mfang$=mfang$+MKI$(&X1111110001111110)
  17020. mfang$=mfang$+MKI$(&X1111110001111110)
  17021. mfang$=mfang$+MKI$(&X1111110001111110)
  17022. mfang$=mfang$+MKI$(&X1100001110000110)
  17023. mfang$=mfang$+MKI$(&X1100001110000110)
  17024. mfang$=mfang$+MKI$(&X1100001110000110)
  17025. mfang$=mfang$+MKI$(&X1100001110000110)
  17026. mfang$=mfang$+MKI$(&X1111111111111110)
  17027. mfang$=mfang$+MKI$(&X1111111111111110)
  17028. mfang$=mfang$+MKI$(&X0)
  17029. '
  17030. mfang$=mfang$+MKI$(&X1111111111111110)
  17031. mfang$=mfang$+MKI$(&X1000000100000010)
  17032. mfang$=mfang$+MKI$(&X1000000100000010)
  17033. mfang$=mfang$+MKI$(&X1000000100000010)
  17034. mfang$=mfang$+MKI$(&X1000000100000010)
  17035. mfang$=mfang$+MKI$(&X1000000100000010)
  17036. mfang$=mfang$+MKI$(&X1000000000000010)
  17037. mfang$=mfang$+MKI$(&X1111110001111110)
  17038. mfang$=mfang$+MKI$(&X1000000000000010)
  17039. mfang$=mfang$+MKI$(&X1000000100000010)
  17040. mfang$=mfang$+MKI$(&X1000000100000010)
  17041. mfang$=mfang$+MKI$(&X1000000100000010)
  17042. mfang$=mfang$+MKI$(&X1000000100000010)
  17043. mfang$=mfang$+MKI$(&X1000000100000010)
  17044. mfang$=mfang$+MKI$(&X1111111111111110)
  17045. mfang$=mfang$+MKI$(&X0)
  17046. '
  17047. mfang_klein$=MKI$(7)+MKI$(7)+MKI$(1)+MKI$(0)+MKI$(1)
  17048. mfang_klein$=mfang_klein$+MKI$(&X0)
  17049. mfang_klein$=mfang_klein$+MKI$(&X0)
  17050. mfang_klein$=mfang_klein$+MKI$(&X11111111111000)
  17051. mfang_klein$=mfang_klein$+MKI$(&X11111111111000)
  17052. mfang_klein$=mfang_klein$+MKI$(&X11001110011000)
  17053. mfang_klein$=mfang_klein$+MKI$(&X11001110011000)
  17054. mfang_klein$=mfang_klein$+MKI$(&X11110001111000)
  17055. mfang_klein$=mfang_klein$+MKI$(&X11110001111000)
  17056. mfang_klein$=mfang_klein$+MKI$(&X11110001111000)
  17057. mfang_klein$=mfang_klein$+MKI$(&X11001110011000)
  17058. mfang_klein$=mfang_klein$+MKI$(&X11001110011000)
  17059. mfang_klein$=mfang_klein$+MKI$(&X11111111111000)
  17060. mfang_klein$=mfang_klein$+MKI$(&X11111111111000)
  17061. mfang_klein$=mfang_klein$+MKI$(&X0)
  17062. mfang_klein$=mfang_klein$+MKI$(&X0)
  17063. mfang_klein$=mfang_klein$+MKI$(&X0)
  17064. '
  17065. mfang_klein$=mfang_klein$+MKI$(&X0)
  17066. mfang_klein$=mfang_klein$+MKI$(&X0)
  17067. mfang_klein$=mfang_klein$+MKI$(&X0)
  17068. mfang_klein$=mfang_klein$+MKI$(&X1111111110000)
  17069. mfang_klein$=mfang_klein$+MKI$(&X1000100010000)
  17070. mfang_klein$=mfang_klein$+MKI$(&X1000100010000)
  17071. mfang_klein$=mfang_klein$+MKI$(&X1000000010000)
  17072. mfang_klein$=mfang_klein$+MKI$(&X1110001110000)
  17073. mfang_klein$=mfang_klein$+MKI$(&X1000000010000)
  17074. mfang_klein$=mfang_klein$+MKI$(&X1000100010000)
  17075. mfang_klein$=mfang_klein$+MKI$(&X1000100010000)
  17076. mfang_klein$=mfang_klein$+MKI$(&X1111111110000)
  17077. mfang_klein$=mfang_klein$+MKI$(&X0)
  17078. mfang_klein$=mfang_klein$+MKI$(&X0)
  17079. mfang_klein$=mfang_klein$+MKI$(&X0)
  17080. mfang_klein$=mfang_klein$+MKI$(&X0)
  17081. '
  17082. mdaten$=MKI$(7)+MKI$(7)+MKI$(1)+MKI$(0)+MKI$(1)
  17083. mdaten$=mdaten$+MKI$(&X1110000000)
  17084. mdaten$=mdaten$+MKI$(&X1110000000)
  17085. mdaten$=mdaten$+MKI$(&X1110000000)
  17086. mdaten$=mdaten$+MKI$(&X1110000000)
  17087. mdaten$=mdaten$+MKI$(&X1110000000)
  17088. mdaten$=mdaten$+MKI$(&X1110000000)
  17089. mdaten$=mdaten$+MKI$(&X1111110001111110)
  17090. mdaten$=mdaten$+MKI$(&X1111110001111110)
  17091. mdaten$=mdaten$+MKI$(&X1111110001111110)
  17092. mdaten$=mdaten$+MKI$(&X1110000000)
  17093. mdaten$=mdaten$+MKI$(&X1110000000)
  17094. mdaten$=mdaten$+MKI$(&X1110000000)
  17095. mdaten$=mdaten$+MKI$(&X1110000000)
  17096. mdaten$=mdaten$+MKI$(&X1110000000)
  17097. mdaten$=mdaten$+MKI$(&X1110000000)
  17098. mdaten$=mdaten$+MKI$(&X0)
  17099. '
  17100. mdaten$=mdaten$+MKI$(&X100000000)
  17101. mdaten$=mdaten$+MKI$(&X100000000)
  17102. mdaten$=mdaten$+MKI$(&X100000000)
  17103. mdaten$=mdaten$+MKI$(&X100000000)
  17104. mdaten$=mdaten$+MKI$(&X100000000)
  17105. mdaten$=mdaten$+MKI$(&X100000000)
  17106. mdaten$=mdaten$+MKI$(&X0)
  17107. mdaten$=mdaten$+MKI$(&X1111110001111110)
  17108. mdaten$=mdaten$+MKI$(&X0)
  17109. mdaten$=mdaten$+MKI$(&X100000000)
  17110. mdaten$=mdaten$+MKI$(&X100000000)
  17111. mdaten$=mdaten$+MKI$(&X100000000)
  17112. mdaten$=mdaten$+MKI$(&X100000000)
  17113. mdaten$=mdaten$+MKI$(&X100000000)
  17114. mdaten$=mdaten$+MKI$(&X100000000)
  17115. mdaten$=mdaten$+MKI$(&X0)
  17116. '
  17117. schwer$=MKI$(7)+MKI$(7)+MKI$(-1)+MKI$(0)+MKI$(1)
  17118. schwer$=schwer$+MKI$(&X0)                     !
  17119. schwer$=schwer$+MKI$(&X0)
  17120. schwer$=schwer$+MKI$(&X11111000000)           !
  17121. schwer$=schwer$+MKI$(&X11111000000)
  17122. schwer$=schwer$+MKI$(&X1100111110000)         !
  17123. schwer$=schwer$+MKI$(&X1100111110000)
  17124. schwer$=schwer$+MKI$(&X10000111111000)        !
  17125. schwer$=schwer$+MKI$(&X10000111111000)
  17126. schwer$=schwer$+MKI$(&X10000111111000)        !
  17127. schwer$=schwer$+MKI$(&X10000111111000)
  17128. schwer$=schwer$+MKI$(&X100000111111100)       !
  17129. schwer$=schwer$+MKI$(&X100000111111100)
  17130. schwer$=schwer$+MKI$(&X100000111111100)       !
  17131. schwer$=schwer$+MKI$(&X100000111111100)
  17132. schwer$=schwer$+MKI$(&X111111011111100)       !!
  17133. schwer$=schwer$+MKI$(&X111111011111100)
  17134. schwer$=schwer$+MKI$(&X111111100000100)       !
  17135. schwer$=schwer$+MKI$(&X111111100000100)
  17136. schwer$=schwer$+MKI$(&X111111100000100)       !
  17137. schwer$=schwer$+MKI$(&X111111100000100)
  17138. schwer$=schwer$+MKI$(&X11111100001000)        !
  17139. schwer$=schwer$+MKI$(&X11111100001000)
  17140. schwer$=schwer$+MKI$(&X11111100001000)        !
  17141. schwer$=schwer$+MKI$(&X11111100001000)
  17142. schwer$=schwer$+MKI$(&X1111100110000)         !
  17143. schwer$=schwer$+MKI$(&X1111100110000)
  17144. schwer$=schwer$+MKI$(&X11111000000)           !
  17145. schwer$=schwer$+MKI$(&X11111000000)
  17146. schwer$=schwer$+MKI$(&X0)                     !
  17147. schwer$=schwer$+MKI$(&X0)
  17148. schwer$=schwer$+MKI$(&X0)                     !
  17149. schwer$=schwer$+MKI$(&X0)
  17150. pfad_read
  17151. reset
  17152. RESERVE -64*1024
  17153. DIM work%((FRE(0)-80*1024)/4)
  17154. daten_ptr%=V:work%(0)
  17155. work_space%=DIM?(work%())*4
  17156. KEYPAD 8
  17157. ~RSRC_LOAD("SYS\CUTOUT.RSC")
  17158. ~RSRC_GADDR(0,tree00&,tree0_adr%)
  17159. ~RSRC_GADDR(0,tree01&,tree1_adr%)
  17160. ~RSRC_GADDR(0,tree02&,tree2_adr%)
  17161. ~RSRC_GADDR(0,tree03&,tree3_adr%)
  17162. ~RSRC_GADDR(0,tree04&,tree4_adr%)
  17163. ~RSRC_GADDR(0,tree05&,tree5_adr%)
  17164. ~RSRC_GADDR(0,tree06&,tree6_adr%)
  17165. ~RSRC_GADDR(0,tree07&,tree7_adr%)
  17166. ~RSRC_GADDR(0,tree08&,tree8_adr%)
  17167. ~RSRC_GADDR(0,tree09&,tree9_adr%)
  17168. ~RSRC_GADDR(0,tree10&,tree10_adr%)
  17169. ~RSRC_GADDR(0,tree11&,tree11_adr%)
  17170. ~RSRC_GADDR(0,tree12&,tree12_adr%)
  17171. ~RSRC_GADDR(0,tree13&,tree13_adr%)
  17172. ~RSRC_GADDR(0,tree14&,tree14_adr%)
  17173. ~RSRC_GADDR(0,tree15&,tree15_adr%)
  17174. ~RSRC_GADDR(0,tree16&,tree16_adr%)
  17175. ~RSRC_GADDR(0,tree17&,tree17_adr%)
  17176. ~RSRC_GADDR(0,tree18&,tree18_adr%)
  17177. ~RSRC_GADDR(0,tree19&,tree19_adr%)
  17178. ~RSRC_GADDR(0,tree20&,tree20_adr%)
  17179. ~RSRC_GADDR(0,tree21&,tree21_adr%)
  17180. ~RSRC_GADDR(0,tree22&,tree22_adr%)
  17181. ~RSRC_GADDR(0,tree23&,tree23_adr%)
  17182. ~RSRC_GADDR(0,tree24&,tree24_adr%)
  17183. ~RSRC_GADDR(0,tree25&,tree25_adr%)
  17184. ~RSRC_GADDR(0,tree26&,tree26_adr%)
  17185. ~RSRC_GADDR(0,tree27&,tree27_adr%)
  17186. ~RSRC_GADDR(0,tree28&,tree28_adr%)
  17187. ~RSRC_GADDR(0,tree29&,tree29_adr%)
  17188. ~RSRC_GADDR(0,tree30&,tree30_adr%)
  17189. ~RSRC_GADDR(0,tree31&,tree31_adr%)
  17190. ~RSRC_GADDR(0,tree32&,tree32_adr%)
  17191. ~RSRC_GADDR(0,tree33&,tree33_adr%)
  17192. ~RSRC_GADDR(0,tree34&,tree34_adr%)
  17193. ~RSRC_GADDR(0,tree35&,tree35_adr%)
  17194. ~RSRC_GADDR(0,tree36&,tree36_adr%)
  17195. ~RSRC_GADDR(0,tree37&,tree37_adr%)
  17196. ~RSRC_GADDR(0,tree38&,tree38_adr%)
  17197. ~RSRC_GADDR(0,tree39&,tree39_adr%)
  17198. ~RSRC_GADDR(0,tree40&,tree40_adr%)
  17199. ~RSRC_GADDR(0,tree41&,tree41_adr%)
  17200. ~FORM_CENTER(tree6_adr%)
  17201. ~FORM_CENTER(tree7_adr%)
  17202. ~FORM_CENTER(tree8_adr%)
  17203. ~FORM_CENTER(tree10_adr%)
  17204. ~FORM_CENTER(tree11_adr%)
  17205. ~FORM_CENTER(tree12_adr%)
  17206. ~FORM_CENTER(tree13_adr%)
  17207. ~FORM_CENTER(tree14_adr%)
  17208. ~FORM_CENTER(tree15_adr%)
  17209. ~FORM_CENTER(tree16_adr%)
  17210. ~FORM_CENTER(tree17_adr%)
  17211. ~FORM_CENTER(tree18_adr%)
  17212. ~FORM_CENTER(tree19_adr%)
  17213. ~FORM_CENTER(tree20_adr%)
  17214. ~FORM_CENTER(tree21_adr%)
  17215. ~FORM_CENTER(tree22_adr%)
  17216. ~FORM_CENTER(tree23_adr%)
  17217. ~FORM_CENTER(tree24_adr%)
  17218. ~FORM_CENTER(tree26_adr%)
  17219. ~FORM_CENTER(tree27_adr%)
  17220. ~FORM_CENTER(tree28_adr%)
  17221. ~FORM_CENTER(tree29_adr%)
  17222. ~FORM_CENTER(tree30_adr%)
  17223. ~FORM_CENTER(tree31_adr%)
  17224. ~FORM_CENTER(tree32_adr%)
  17225. ~FORM_CENTER(tree33_adr%)
  17226. ~FORM_CENTER(tree35_adr%)
  17227. ~FORM_CENTER(tree36_adr%)
  17228. ~FORM_CENTER(tree37_adr%)
  17229. ~FORM_CENTER(tree38_adr%)
  17230. ~FORM_CENTER(tree39_adr%)
  17231. ~FORM_CENTER(tree40_adr%)
  17232. ~FORM_CENTER(tree41_adr%)
  17233. xt6&=DPEEK(tree6_adr%+16)
  17234. yt6&=DPEEK(tree6_adr%+18)
  17235. bt6&=DPEEK(tree6_adr%+20)
  17236. ht6&=DPEEK(tree6_adr%+22)
  17237. xt7&=DPEEK(tree7_adr%+16)
  17238. yt7&=DPEEK(tree7_adr%+18)
  17239. bt7&=DPEEK(tree7_adr%+20)
  17240. ht7&=DPEEK(tree7_adr%+22)
  17241. xt8&=DPEEK(tree8_adr%+16)
  17242. yt8&=DPEEK(tree8_adr%+18)
  17243. bt8&=DPEEK(tree8_adr%+20)
  17244. ht8&=DPEEK(tree8_adr%+22)
  17245. xt10&=DPEEK(tree10_adr%+16)
  17246. yt10&=DPEEK(tree10_adr%+18)
  17247. bt10&=DPEEK(tree10_adr%+20)
  17248. ht10&=DPEEK(tree10_adr%+22)
  17249. xt11&=DPEEK(tree11_adr%+16)
  17250. yt11&=DPEEK(tree11_adr%+18)
  17251. bt11&=DPEEK(tree11_adr%+20)
  17252. ht11&=DPEEK(tree11_adr%+22)
  17253. xt12&=DPEEK(tree12_adr%+16)
  17254. yt12&=DPEEK(tree12_adr%+18)
  17255. bt12&=DPEEK(tree12_adr%+20)
  17256. ht12&=DPEEK(tree12_adr%+22)
  17257. xt13&=DPEEK(tree13_adr%+16)
  17258. yt13&=DPEEK(tree13_adr%+18)
  17259. bt13&=DPEEK(tree13_adr%+20)
  17260. ht13&=DPEEK(tree13_adr%+22)
  17261. xt14&=DPEEK(tree14_adr%+16)
  17262. yt14&=DPEEK(tree14_adr%+18)
  17263. bt14&=DPEEK(tree14_adr%+20)
  17264. ht14&=DPEEK(tree14_adr%+22)
  17265. xt15&=DPEEK(tree15_adr%+16)
  17266. yt15&=DPEEK(tree15_adr%+18)
  17267. bt15&=DPEEK(tree15_adr%+20)
  17268. ht15&=DPEEK(tree15_adr%+22)
  17269. xt16&=DPEEK(tree16_adr%+16)
  17270. yt16&=DPEEK(tree16_adr%+18)
  17271. bt16&=DPEEK(tree16_adr%+20)
  17272. ht16&=DPEEK(tree16_adr%+22)
  17273. xt17&=DPEEK(tree17_adr%+16)
  17274. yt17&=DPEEK(tree17_adr%+18)
  17275. bt17&=DPEEK(tree17_adr%+20)
  17276. ht17&=DPEEK(tree17_adr%+22)
  17277. xt18&=DPEEK(tree18_adr%+16)
  17278. yt18&=DPEEK(tree18_adr%+18)
  17279. bt18&=DPEEK(tree18_adr%+20)
  17280. ht18&=DPEEK(tree18_adr%+22)
  17281. xt19&=DPEEK(tree19_adr%+16)
  17282. yt19&=DPEEK(tree19_adr%+18)
  17283. bt19&=DPEEK(tree19_adr%+20)
  17284. ht19&=DPEEK(tree19_adr%+22)
  17285. xt20&=DPEEK(tree20_adr%+16)
  17286. yt20&=DPEEK(tree20_adr%+18)
  17287. bt20&=DPEEK(tree20_adr%+20)
  17288. ht20&=DPEEK(tree20_adr%+22)
  17289. xt21&=DPEEK(tree21_adr%+16)
  17290. yt21&=DPEEK(tree21_adr%+18)
  17291. bt21&=DPEEK(tree21_adr%+20)
  17292. ht21&=DPEEK(tree21_adr%+22)
  17293. xt22&=DPEEK(tree22_adr%+16)
  17294. yt22&=DPEEK(tree22_adr%+18)
  17295. bt22&=DPEEK(tree22_adr%+20)
  17296. ht22&=DPEEK(tree22_adr%+22)
  17297. xt23&=DPEEK(tree23_adr%+16)
  17298. yt23&=DPEEK(tree23_adr%+18)
  17299. bt23&=DPEEK(tree23_adr%+20)
  17300. ht23&=DPEEK(tree23_adr%+22)
  17301. DPOKE tree24_adr%+16,DPEEK(tree24_adr%+16)+200
  17302. xt24&=DPEEK(tree24_adr%+16)
  17303. yt24&=DPEEK(tree24_adr%+18)
  17304. bt24&=DPEEK(tree24_adr%+20)
  17305. ht24&=DPEEK(tree24_adr%+22)
  17306. xt26&=DPEEK(tree26_adr%+16)
  17307. yt26&=DPEEK(tree26_adr%+18)
  17308. bt26&=DPEEK(tree26_adr%+20)
  17309. ht26&=DPEEK(tree26_adr%+22)
  17310. xt27&=DPEEK(tree27_adr%+16)
  17311. yt27&=DPEEK(tree27_adr%+18)
  17312. bt27&=DPEEK(tree27_adr%+20)
  17313. ht27&=DPEEK(tree27_adr%+22)
  17314. xt28&=DPEEK(tree28_adr%+16)
  17315. yt28&=DPEEK(tree28_adr%+18)
  17316. bt28&=DPEEK(tree28_adr%+20)
  17317. ht28&=DPEEK(tree28_adr%+22)
  17318. xt29&=DPEEK(tree29_adr%+16)
  17319. yt29&=DPEEK(tree29_adr%+18)
  17320. bt29&=DPEEK(tree29_adr%+20)
  17321. ht29&=DPEEK(tree29_adr%+22)
  17322. xt30&=DPEEK(tree30_adr%+16)
  17323. yt30&=DPEEK(tree30_adr%+18)
  17324. bt30&=DPEEK(tree30_adr%+20)
  17325. ht30&=DPEEK(tree30_adr%+22)
  17326. xt31&=DPEEK(tree31_adr%+16)
  17327. yt31&=DPEEK(tree31_adr%+18)
  17328. bt31&=DPEEK(tree31_adr%+20)
  17329. ht31&=DPEEK(tree31_adr%+22)
  17330. xt32&=DPEEK(tree32_adr%+16)
  17331. yt32&=DPEEK(tree32_adr%+18)
  17332. bt32&=DPEEK(tree32_adr%+20)
  17333. ht32&=DPEEK(tree32_adr%+22)
  17334. xt35&=DPEEK(tree35_adr%+16)
  17335. yt35&=DPEEK(tree35_adr%+18)
  17336. bt35&=DPEEK(tree35_adr%+20)
  17337. ht35&=DPEEK(tree35_adr%+22)
  17338. xt33&=DPEEK(tree33_adr%+16)
  17339. yt33&=DPEEK(tree33_adr%+18)
  17340. bt33&=DPEEK(tree33_adr%+20)
  17341. ht33&=DPEEK(tree33_adr%+22)
  17342. xt36&=DPEEK(tree36_adr%+16)
  17343. yt36&=DPEEK(tree36_adr%+18)
  17344. bt36&=DPEEK(tree36_adr%+20)
  17345. ht36&=DPEEK(tree36_adr%+22)
  17346. xt37&=DPEEK(tree37_adr%+16)
  17347. yt37&=DPEEK(tree37_adr%+18)
  17348. bt37&=DPEEK(tree37_adr%+20)
  17349. ht37&=DPEEK(tree37_adr%+22)
  17350. xt38&=DPEEK(tree38_adr%+16)
  17351. yt38&=DPEEK(tree38_adr%+18)
  17352. bt38&=DPEEK(tree38_adr%+20)
  17353. ht38&=DPEEK(tree38_adr%+22)
  17354. xt39&=DPEEK(tree39_adr%+16)
  17355. yt39&=DPEEK(tree39_adr%+18)
  17356. bt39&=DPEEK(tree39_adr%+20)
  17357. ht39&=DPEEK(tree39_adr%+22)
  17358. xt40&=DPEEK(tree40_adr%+16)
  17359. yt40&=DPEEK(tree40_adr%+18)
  17360. bt40&=DPEEK(tree40_adr%+20)
  17361. ht40&=DPEEK(tree40_adr%+22)
  17362. xt41&=DPEEK(tree41_adr%+16)
  17363. yt41&=DPEEK(tree41_adr%+18)
  17364. bt41&=DPEEK(tree41_adr%+20)
  17365. ht41&=DPEEK(tree41_adr%+22)
  17366. bt_output&=OB_W(tree40_adr%,pl100&)
  17367. CHAR{{OB_SPEC(tree6_adr%,t_hoehe&)}}=STR$(INT(zeichen_hoehe%/100))
  17368. CHAR{{OB_SPEC(tree7_adr%,zabs&)}}=STR$(INT(zeilen_abstand_prozent%))
  17369. CHAR{{OB_SPEC(tree9_adr%,z_char&)}}=CHR$(z_ascii_old%+32)
  17370. CHAR{{OB_SPEC(tree8_adr%,string_text&)}}=abc$
  17371. CHAR{{OB_SPEC(tree12_adr%,bstep&)}}=STR$(b_vari/100)
  17372. CHAR{{OB_SPEC(tree13_adr%,punkte&)}}=STR$(pointer%)
  17373. CHAR{{OB_SPEC(tree13_adr%,rest&)}}=STR$(p_max%-pointer%)
  17374. CHAR{{OB_SPEC(tree13_adr%,version&)}}=revision$
  17375. CHAR{{OB_SPEC(tree14_adr%,rx1&)}}=STR$(folie_x%)
  17376. CHAR{{OB_SPEC(tree14_adr%,ry1&)}}=STR$(folie_y%)
  17377. CHAR{{OB_SPEC(tree14_adr%,rx2&)}}=STR$(folie_x2%)
  17378. CHAR{{OB_SPEC(tree14_adr%,ry2&)}}=STR$(folie_y2%)
  17379. CHAR{{OB_SPEC(tree14_adr%,rx3&)}}=STR$(folie_x3%)
  17380. CHAR{{OB_SPEC(tree14_adr%,ry3&)}}=STR$(folie_y3%)
  17381. CHAR{{OB_SPEC(tree15_adr%,p_init1&)}}=p_init1$
  17382. CHAR{{OB_SPEC(tree15_adr%,p_init2&)}}=p_init2$
  17383. CHAR{{OB_SPEC(tree15_adr%,overcut&)}}=STR$(overcut|/10)
  17384. CHAR{{OB_SPEC(tree15_adr%,ma&)}}=ma$
  17385. CHAR{{OB_SPEC(tree15_adr%,da&)}}=da$
  17386. CHAR{{OB_SPEC(tree17_adr%,outl&)}}="3.0"
  17387. CHAR{{OB_SPEC(tree18_adr%,schraffd&)}}=STR$(schraff_dist/100)
  17388. CHAR{{OB_SPEC(tree18_adr%,schraffi&)}}=STR$(schraff_inc/100)
  17389. CHAR{{OB_SPEC(tree18_adr%,schraffw&)}}=STR$(schraff_winkel)
  17390. CHAR{{OB_SPEC(tree18_adr%,schrafix&)}}=STR$(schraff_fix_abst)
  17391. CHAR{{OB_SPEC(tree21_adr%,t_step&)}}=STR$(bit_count_max|)
  17392. CHAR{{OB_SPEC(tree21_adr%,t_gerade&)}}=STR$(geraden_fehler|)
  17393. CHAR{{OB_SPEC(tree21_adr%,t_schmutz&)}}=STR$(schmutz_filter%)
  17394. CHAR{{OB_SPEC(tree21_adr%,bschwelle&)}}=STR$(lange_gerade%/100)
  17395. CHAR{{OB_SPEC(tree21_adr%,knickwinkel&)}}=STR$(CINT(DEG(knick_winkel_max)))
  17396. CHAR{{OB_SPEC(tree21_adr%,bogen_max&)}}=STR$(CINT(DEG(bogen_max*2)))
  17397. CHAR{{OB_SPEC(tree21_adr%,abweichung_gerade&)}}=STR$(abweichung_gerade%/100)
  17398. CHAR{{OB_SPEC(tree22_adr%,scann_x&)}}="1664"
  17399. CHAR{{OB_SPEC(tree22_adr%,scann_y&)}}="800"
  17400. CHAR{{OB_SPEC(tree23_adr%,radius&)}}="10"
  17401. CHAR{{OB_SPEC(tree27_adr%,calamus_nr&)}}=STR$(calamus_nr%)
  17402. CHAR{{OB_SPEC(tree29_adr%,kostfak&)}}=STR$(kostfak)
  17403. CHAR{{OB_SPEC(tree31_adr%,anz_rot&)}}="3"
  17404. CHAR{{OB_SPEC(tree31_adr%,phi_rot&)}}="90"
  17405. OB_STATE(tree15_adr%,rs232&)=state_rs232&+16
  17406. OB_STATE(tree15_adr%,cent&)=state_rs232& XOR 1+16
  17407. OB_STATE(tree15_adr%,hp&)=state_hp&+16
  17408. OB_STATE(tree15_adr%,gp&)=state_hp& XOR 1+16
  17409. OB_STATE(tree26_adr%,absolut&)=absolut!+18
  17410. OB_STATE(tree26_adr%,relativ&)=absolut!+17
  17411. OB_STATE(tree26_adr%,polar&)=absolut!+17
  17412. IF gdu=1
  17413.   OB_STATE(tree15_adr%,gdu01&)=17
  17414. ELSE
  17415.   IF gdu=2.5
  17416.     OB_STATE(tree15_adr%,gdu025&)=17
  17417.   ELSE
  17418.     IF gdu=5
  17419.       OB_STATE(tree15_adr%,gdu05&)=17
  17420.     ELSE
  17421.       OB_STATE(tree15_adr%,gdu1&)=17
  17422.     ENDIF
  17423.   ENDIF
  17424. ENDIF
  17425. OB_STATE(tree1_adr%,lock&)=1
  17426. IF mimaki!
  17427.   OB_STATE(tree15_adr%,gdu05&)=17
  17428.   OB_STATE(tree15_adr%,gdu01&)=8
  17429.   OB_STATE(tree15_adr%,gdu025&)=8
  17430.   OB_STATE(tree15_adr%,gdu1&)=8
  17431.   OB_STATE(tree15_adr%,rs232&)=17
  17432.   OB_STATE(tree15_adr%,mgl&)=17
  17433.   OB_STATE(tree15_adr%,cent&)=16
  17434.   OB_STATE(tree15_adr%,hp&)=16
  17435.   OB_STATE(tree15_adr%,gp&)=16
  17436. ELSE
  17437.   OB_STATE(tree15_adr%,mgl&)=8
  17438. ENDIF
  17439. ~WIND_GET(0,4)                                   ! get desk size
  17440. BMOVE GINTOUT+2,tree0_adr%+16,8                  ! set into rsc
  17441. BMOVE GINTOUT+2,tree1_adr%+16,8                  ! set into rsc
  17442. BMOVE GINTOUT+2,tree2_adr%+16,8                  ! set into rsc
  17443. BMOVE GINTOUT+2,tree3_adr%+16,8                  ! set into rsc
  17444. BMOVE GINTOUT+2,tree4_adr%+16,8                  ! set into rsc
  17445. BMOVE GINTOUT+2,tree5_adr%+16,8                  ! set into rsc
  17446. BMOVE GINTOUT+2,tree9_adr%+16,8                  ! set into rsc
  17447. BMOVE GINTOUT+2,tree25_adr%+16,8                 ! set into rsc
  17448. BMOVE GINTOUT+2,tree34_adr%+16,8                 ! set into rsc
  17449. wind_newdesk(tree0_adr%,0)                       ! install  Datei Baum
  17450. IF default_font$<>""
  17451.   datei$=ein_space$
  17452.   IF EXIST(pfad_fnt$+"\"+default_font$)
  17453.     load_font(pfad_fnt$+"\"+default_font$)
  17454.     programm_font$=LEFT$(default_font$,LEN(default_font$)-4)
  17455.   ELSE
  17456.     make_new_font(-1)
  17457.   ENDIF
  17458. ELSE
  17459.   make_new_font(-1)
  17460. ENDIF
  17461. m$(0)=""
  17462. m$(1)="  CUTOUT"
  17463. m$(2)="--------------------"
  17464. m$(3)=CHR$(2)
  17465. m$(4)=CHR$(3)
  17466. m$(5)=CHR$(4)
  17467. m$(6)=CHR$(5)
  17468. m$(7)=CHR$(6)
  17469. m$(8)=CHR$(7)
  17470. m$(9)=CHR$(8)
  17471. m$(10)=""
  17472. m$(11)=pd_menu$
  17473. m$(12)=pd_datei$
  17474. m$(13)=pd_editieren$
  17475. m$(14)=pd_fenster$
  17476. m$(15)=pd_schnittpunkt$
  17477. m$(16)=pd_bogen$
  17478. m$(17)="----------------------"
  17479. m$(18)=pd_text$
  17480. m$(19)=pd_zeicheneditor$
  17481. m$(20)=m$(17)
  17482. m$(21)=pd_extra$
  17483. m$(22)=m$(17)
  17484. m$(23)=pd_quit$
  17485. m$(24)=""
  17486. m$(25)=pd_optionen$
  17487. m$(26)=pd_marker_anzeigen$
  17488. m$(27)=pd_tangenten_anzeigen$
  17489. m$(28)=pd_fangradius_klein$
  17490. m$(29)=pd_polygon_modus$
  17491. m$(30)=pd_schnittpunkt_genau$
  17492. m$(31)=pd_koordinaten$
  17493. m$(32)=pd_element_selektieren$
  17494. m$(33)=pd_polygon_selektieren$
  17495. m$(34)=pd_warnmeldungen$
  17496. m$(35)="---------------------------"
  17497. m$(36)=pd_skaliere_alles$
  17498. m$(37)=m$(35)
  17499. m$(38)=pd_punkte_nivellieren$
  17500. m$(39)=pd_tangente$
  17501. m$(40)=m$(35)
  17502. m$(41)=pd_plotflaeche$
  17503. m$(42)=pd_bezier_step_aendern$
  17504. m$(43)=pd_plotter_einstellung$
  17505. m$(44)=pd_kosten_faktor$
  17506. m$(45)=pd_pfad_sichern$
  17507. m$(46)=""
  17508. m$(47)=pd_figur$
  17509. m$(48)=pd_rechteck$
  17510. m$(49)=pd_n_eck$
  17511. m$(50)=pd_polygon_outline$
  17512. m$(51)=pd_aequidistante$
  17513. m$(52)=pd_frame$
  17514. m$(53)="---------------------------"
  17515. m$(54)=pd_polygone_ausrichten$
  17516. m$(55)=pd_polygone_zentrieren$
  17517. m$(56)=pd_polygone_vereinen$
  17518. m$(57)=pd_polygone_fuellen$
  17519. m$(58)=m$(53)
  17520. m$(59)=pd_einzelne_punkte_loeschen$
  17521. m$(60)=""
  17522. m$(61)=pd_linie$
  17523. m$(62)=pd_bezier_vektor$
  17524. m$(63)=pd_bezier_einfuegen$
  17525. m$(64)=pd_tausche_bezier_vektor$
  17526. m$(65)=m$(53)
  17527. m$(66)=pd_knacken$
  17528. m$(67)=pd_trimmen$
  17529. m$(68)=pd_lot$
  17530. m$(69)=pd_verlaengern$
  17531. m$(70)=pd_teilen$
  17532. m$(71)=pd_messen$
  17533. m$(72)=m$(53)
  17534. m$(73)=pd_schnittp_2er$
  17535. m$(74)=pd_schnittp_n$
  17536. m$(75)=""
  17537. m$(76)=pd_effekt$
  17538. m$(77)=pd_parameter_schraffur$
  17539. m$(78)=pd_polygon_schraffieren$
  17540. m$(79)=pd_alles_schraffieren$
  17541. m$(80)="------------------------"
  17542. m$(81)=pd_schatten$
  17543. m$(82)=pd_einpassen$
  17544. m$(83)=m$(80)
  17545. m$(84)=pd_kugel$
  17546. m$(85)=""
  17547. m$(86)=""
  17548. MENU m$()
  17549. IF fangklein!
  17550.   MENU 28,1
  17551. ENDIF
  17552. IF polygonmode!
  17553.   MENU 29,1
  17554. ENDIF
  17555. IF warn!
  17556.   MENU 34,1
  17557. ENDIF
  17558. CLIP 0,0,639,399 OFFSET 0,0
  17559. DEFTEXT 1,0,0,6
  17560. COLOR 1
  17561. TEXT 400,7,"Zoom X:"
  17562. TEXT 400,15,"Zoom Y:"
  17563. TEXT 540,7,"X:"
  17564. TEXT 540,15,"Y:"
  17565. DEFTEXT 1,0,0,4
  17566. TEXT 624,7,"mm"
  17567. TEXT 624,15,"mm"
  17568. LINE 536,0,536,20
  17569. LINE 396,0,396,20
  17570. '
  17571. ~FORM_DIAL(3,0,0,0,0,0,0,desk_breite&,desk_hoehe&)                !redraw all
  17572. '
  17573. layer!=FALSE
  17574. zoom=1
  17575. x_layer%=folie_x%
  17576. y_layer%=folie_y%
  17577. x_layero%=x_layer%
  17578. y_layero%=y_layer%
  17579. res_x%=x_layer%
  17580. res_y%=y_layer%
  17581. x_offset&=0
  17582. y_offset&=0
  17583. res_x_old%=x_layer%
  17584. res_y_old%=y_layer%
  17585. x_offset_old&=0
  17586. y_offset_old&=0
  17587. pointer%=0
  17588. get_desktop
  17589. scrb_old&=scrb&
  17590. scrh_old&=scrh&
  17591. CLOSEW 1
  17592. programm$=noname$
  17593. INT{WINDTAB+2}=&X111111000000
  17594. INT{WINDTAB+4}=scrx&
  17595. INT{WINDTAB+6}=scry&
  17596. INT{WINDTAB+8}=scrb&
  17597. INT{WINDTAB+10}=scrh&
  17598. help_titel
  17599. OPENW 1
  17600. calc_slid
  17601. ~WIND_GET(1,4,x_win&,y_win&,b_window&,h_window&)
  17602. neues_polygon!=TRUE
  17603. do_redraw
  17604. DEFMOUSE 3
  17605. p_zoom(zoom*100,zoom*100)
  17606. CHAR{{OB_SPEC(tree14_adr%,rx1&)}}=STR$(x_layer%)
  17607. CHAR{{OB_SPEC(tree14_adr%,ry1&)}}=STR$(y_layer%)
  17608. ' test_vollbild
  17609. '
  17610. ~OBJC_OFFSET(tree28_adr%,gtprewin&,gtxv&,gtyv&)
  17611. gtxv&=gtxv&-x_win&+1
  17612. gtyv&=gtyv&-y_win&+1
  17613. '
  17614. ON MENU MESSAGE GOSUB message
  17615. ON MENU BUTTON 1,1,1 GOSUB button
  17616. ON MENU GOSUB menu
  17617. ON MENU KEY GOSUB key
  17618. ' ON ERROR GOSUB fehler
  17619. '
  17620. '
  17621. REPEAT
  17622.   ON MENU
  17623. UNTIL end!
  17624. '
  17625. IF modified!
  17626.   IF pointer%>0
  17627.     ALERT 3,"| "+sichere$+daten$,1,ja_nein$,i%
  17628.     IF i%=1
  17629.       @save_vektor
  17630.     ENDIF
  17631.   ENDIF
  17632. ENDIF
  17633. '
  17634. ' Bei fertigen Programmen hier nur QUIT
  17635. '
  17636. reset
  17637. ~WIND_GET(0,10)
  17638. IF DPEEK(GINTOUT+2)
  17639.   ALERT 1,"Accessories",1,"Close|Quit",i%
  17640.   IF i%=2
  17641.     QUIT
  17642.   ENDIF
  17643.   REPEAT
  17644.     ~WIND_GET(0,10)
  17645.   UNTIL DPEEK(GINTOUT+2)=0
  17646. ENDIF
  17647. RESERVE                                ! XBIOS(2)-HIMEM+FRE(0)-16384
  17648. '
  17649. PROCEDURE fehler
  17650.   ALERT 1,fehler$,1,leider$,i%
  17651.   '  RESUME NEXT
  17652. RETURN
  17653. '
  17654. '
  17655. PROCEDURE get_undo
  17656.   LOCAL dp%
  17657.   dp%=daten_ptr%
  17658.   IF (pointer%*9+1<work_space%) AND (NOT layer_geladen!)
  17659.     LONG{dp%}=pointer%
  17660.     ADD dp%,4
  17661.     undo!=TRUE
  17662.     BMOVE VARPTR(punkte_x%(0)),dp%,pointer%*4
  17663.     ADD dp%,pointer%*4
  17664.     BMOVE VARPTR(punkte_y%(0)),dp%,pointer%*4
  17665.     ADD dp%,pointer%*4
  17666.     BMOVE VARPTR(punkte_def|(0)),dp%,pointer%
  17667.     undo!=TRUE
  17668.   ELSE
  17669.     undo!=FALSE
  17670.   ENDIF
  17671. RETURN
  17672. '
  17673. PROCEDURE put_undo
  17674.   LOCAL dp%
  17675.   IF undo!
  17676.     dp%=daten_ptr%
  17677.     pointer%=LONG{dp%}
  17678.     ADD dp%,4
  17679.     BMOVE dp%,VARPTR(punkte_x%(0)),pointer%*4
  17680.     ADD dp%,pointer%*4
  17681.     BMOVE dp%,VARPTR(punkte_y%(0)),pointer%*4
  17682.     ADD dp%,pointer%*4
  17683.     BMOVE dp%,VARPTR(punkte_def|(0)),pointer%
  17684.     undo!=FALSE
  17685.     do_redraw
  17686.   ENDIF
  17687. RETURN
  17688. '
  17689. PROCEDURE output_drucker
  17690.   LOCAL handle&,x_resi&,y_resi&,z_old
  17691.   IF GDOS?
  17692.     ERASE work%()
  17693.     IF FRE(0)>250000
  17694.       RESERVE -250000
  17695.       handle&=V_OPNWK(21)
  17696.       IF handle&<>0
  17697.         V~H=handle&
  17698.         x_resi&=INTOUT(0)
  17699.         y_resi&=INTOUT(1)
  17700.         ~V_CLRWK()
  17701.         z_old=zoom
  17702.         zoom=4
  17703.         redraw_ohne(0)
  17704.         ~V_UPDWK()
  17705.         ~V_CLSWK()
  17706.         zoom=z_old
  17707.       ELSE
  17708.       ENDIF
  17709.       RESERVE
  17710.     ELSE
  17711.     ENDIF
  17712.     DIM work%((FRE(0)-80*1024)/4)
  17713.     daten_ptr%=V:work%(0)
  17714.     work_space%=DIM?(work%())*4
  17715.   ELSE
  17716.   ENDIF
  17717. RETURN
  17718. '
  17719. '
  17720. PROCEDURE scan_a1
  17721.   ALERT 3,"| SCAN Hochformat: ",1,"A3|A2|A1",i%
  17722.   SELECT i%
  17723.   CASE 1
  17724.     scann_x%=INT(17*400/8)       !17
  17725.     scann_y%=INT(12*400)        !12
  17726.   CASE 2
  17727.     scann_x%=INT(25*400/8)
  17728.     scann_y%=INT(17*400)
  17729.   CASE 3
  17730.     scann_x%=INT(34*400/8)
  17731.     scann_y%=INT(25*400)
  17732.   ENDSELECT
  17733.   scan_graphtec(3,400,0,0,scann_x%,scann_y%)
  17734. RETURN
  17735. '
  17736. PROCEDURE scan_graphtec(device&,dpi&,x_0%,y_0%,bytes_x%,lines_y%)
  17737.   LOCAL command_bytes&,bytes_to_transfer%,transfer_dir&
  17738.   LOCAL y_offset%,block&,command_bytes&,bytes_to_transfer%
  17739.   ' IF FN test_unit_ready(device&)=0
  17740.   set_graphtec_window(device&,dpi&,x_0%,y_0%,bytes_x%,lines_y%)
  17741.   command_bytes&=10
  17742.   block&=&HFFFF DIV bytes_x% DIV 3
  17743.   bytes_to_transfer%=bytes_x%*block&*3
  17744.   transfer_dir&=0                               ! LESEN
  17745.   command|(0)=&H28
  17746.   command|(1)=0
  17747.   command|(2)=0
  17748.   command|(3)=0
  17749.   command|(4)=0
  17750.   command|(5)=0
  17751.   command|(6)=0
  17752.   command|(7)=0
  17753.   command|(8)=0
  17754.   command|(9)=0
  17755.   WORD{V:command|(7)}=block&
  17756.   '
  17757.   anzahl&=lines_y% DIV block&
  17758.   rest&=lines_y% MOD block&
  17759.   y_offset%=0
  17760.   FOR i%=1 TO anzahl&
  17761.     $c+
  17762.     fehler%=C:scsi%(device&,command_bytes&,bytes_to_transfer%,transfer_dir&,L:V:command|(0),L:daten_ptr%+y_offset%)
  17763.     $c-
  17764.     ADD y_offset%,block&*bytes_x%
  17765.   NEXT i%
  17766.   IF rest&<>0
  17767.     bytes_to_transfer%=bytes_x%*rest&*3
  17768.     WORD{V:command|(7)}=rest&
  17769.     $c+
  17770.     fehler%=C:scsi%(device&,command_bytes&,bytes_to_transfer%,transfer_dir&,L:V:command|(0),L:daten_ptr%+y_offset%)
  17771.     $c-
  17772.   ENDIF
  17773.   '  status&=AND(CARD(fehler%),&X11110)
  17774.   ' message&=CARD(SWAP(fehler%))
  17775.   layer!=TRUE
  17776.   layer_geladen!=TRUE
  17777.   voll_bild!=TRUE
  17778.   outlined!=FALSE
  17779.   do_change_aufloesung(bytes_x%*8,lines_y%,1)
  17780.   init_bit_blit
  17781.   p_zoom(zoom*100,zoom*100)
  17782.   do_redraw
  17783.   ' ENDIF
  17784. RETURN
  17785. '
  17786. PROCEDURE set_graphtec_window(device&,dpi&,x_0%,y_0%,bytes_x%,lines_y%)
  17787.   LOCAL command_bytes&,bytes_to_transfer%,transfer_dir&
  17788.   command_bytes&=10
  17789.   bytes_to_transfer%=53
  17790.   transfer_dir&=1                               ! LESEN (1=SCHREIBEN)
  17791.   command|(0)=&H24
  17792.   command|(1)=0
  17793.   command|(2)=0
  17794.   command|(3)=0
  17795.   command|(4)=0
  17796.   command|(5)=0
  17797.   command|(6)=0
  17798.   command|(7)=0
  17799.   command|(8)=bytes_to_transfer%
  17800.   command|(9)=0
  17801.   FOR i%=0 TO 6
  17802.     buffer|(i%)=0
  17803.   NEXT i%
  17804.   FOR i%=38 TO 47
  17805.     buffer|(i%)=0
  17806.   NEXT i%
  17807.   buffer|(7)=45                         ! Window Descriptor Block Length
  17808.   buffer|(8)=0                          ! Window ID
  17809.   buffer|(9)=0                          ! reserved
  17810.   WORD{V:buffer|(10)}=dpi&              ! X resolution
  17811.   WORD{V:buffer|(12)}=dpi&              ! Y resolution
  17812.   LONG{V:buffer|(14)}=x_0%*24           ! X Upper Left
  17813.   LONG{V:buffer|(18)}=y_0%*3            ! Y Upper Left
  17814.   LONG{V:buffer|(22)}=bytes_x%*24       ! Width
  17815.   LONG{V:buffer|(26)}=lines_y%*3        ! Length
  17816.   buffer|(30)=0                         ! reserved
  17817.   buffer|(31)=0                         ! Kontrast
  17818.   buffer|(32)=0                         ! reserved
  17819.   buffer|(33)=0                         ! Image composition
  17820.   buffer|(34)=1                         ! Bits per Pixel
  17821.   buffer|(35)=0                         ! reserved
  17822.   buffer|(36)=0                         ! reserved
  17823.   buffer|(37)=0                         ! Reverse Image
  17824.   buffer|(48)=2                         ! Cell length
  17825.   buffer|(49)=5                         ! Function Code
  17826.   buffer|(50)=1                         ! Fine Line
  17827.   buffer|(51)=2                         ! Cell length
  17828.   buffer|(52)=6                         ! Function Code
  17829.   buffer|(53)=1                         ! Scann Speed
  17830.   $c+
  17831.   fehler%=C:scsi%(device&,command_bytes&,bytes_to_transfer%,transfer_dir&,L:V:command|(0),L:V:buffer|(0))
  17832.   $c-
  17833. RETURN
  17834. '
  17835. FUNCTION test_unit_ready(device&)
  17836.   command_bytes&=6
  17837.   bytes_to_transfer%=1
  17838.   transfer_dir&=0                               ! LESEN (1=SCHREIBEN)
  17839.   command|(0)=0
  17840.   command|(1)=0
  17841.   command|(2)=0
  17842.   command|(3)=0
  17843.   command|(4)=bytes_to_transfer%
  17844.   command|(5)=0
  17845.   '
  17846.   $c+
  17847.   fehler%=C:scsi%(device&,command_bytes&,L:bytes_to_transfer%,transfer_dir&,L:V:command|(0),L:V:buffer|(0))
  17848.   $c-
  17849.   status&=AND(CARD(fehler%),&X11110)
  17850.   message&=CARD(SWAP(fehler%))
  17851.   '
  17852.   RETURN status&
  17853. ENDFUNC
  17854. '
  17855. '
  17856. PROCEDURE gt_info(i$)
  17857.   CHAR{{OB_SPEC(tree28_adr%,gtstate&)}}=i$
  17858.   ~OBJC_DRAW(tree28_adr%,gtstate&,8,xt28&,yt28&,bt28&,ht28&)
  17859. RETURN
  17860. '
  17861. PROCEDURE dpi_change(prex0&,prey0&,prex0_min&,prey0_min&)
  17862.   CHAR{{OB_SPEC(tree28_adr%,gtdpi&)}}=STR$(gtdpiv&)
  17863.   ~OBJC_DRAW(tree28_adr%,gtdpi&,8,xt28&,yt28&,bt28&,ht28&)
  17864.   CHAR{{OB_SPEC(tree28_adr%,gtb&)}}=STR$(AND(INT(gtbv&/25.4*gtdpiv&),&HFFF8))
  17865.   CHAR{{OB_SPEC(tree28_adr%,gth&)}}=STR$(AND(INT(gthv&/25.4*gtdpiv&),&HFFF8))
  17866.   ~OBJC_DRAW(tree28_adr%,gtb&,8,xt28&,yt28&,bt28&,ht28&)
  17867.   ~OBJC_DRAW(tree28_adr%,gth&,8,xt28&,yt28&,bt28&,ht28&)
  17868.   CHAR{{OB_SPEC(tree28_adr%,gtx&)}}=STR$(AND(INT((prex0&-prex0_min&)/25.4*gtdpiv&),&HFFF8))
  17869.   CHAR{{OB_SPEC(tree28_adr%,gty&)}}=STR$(AND(INT((prey0&-prey0_min&)/25.4*gtdpiv&),&HFFF8))
  17870.   ~OBJC_DRAW(tree28_adr%,gtx&,8,xt28&,yt28&,bt28&,ht28&)
  17871.   ~OBJC_DRAW(tree28_adr%,gty&,8,xt28&,yt28&,bt28&,ht28&)
  17872. RETURN
  17873. '
  17874. PROCEDURE gt_6000
  17875.   LOCAL prex0&,prey0&,prex0_min&,prey0_min&,x_changed&,y_changed&
  17876.   LOCAL prex&,prey&,gthalbton&
  17877.   DEFMOUSE 0
  17878.   SETMOUSE xt28&+240,yt28&+310,0
  17879.   CLIP 0,0,desk_breite&,desk_hoehe& OFFSET x_win&,y_win&
  17880.   ~OBJC_OFFSET(tree28_adr%,gtprewin&,prex&,prey&)
  17881.   gthalbton&=1
  17882.   prex0&=prex&-x_win&+1
  17883.   prey0&=prey&-y_win&+1
  17884.   prex0_min&=prex0&
  17885.   prey0_min&=prey0&
  17886.   prex0_max&=prex0&+217
  17887.   prey0_max&=prey0&+297
  17888.   prex0&=gtxv&
  17889.   prey0&=gtyv&
  17890.   '
  17891.   CHAR{{OB_SPEC(tree28_adr%,gtx&)}}=STR$(AND(INT((prex0&-prex0_min&)/25.4*gtdpiv&),&HFFF8))
  17892.   CHAR{{OB_SPEC(tree28_adr%,gty&)}}=STR$(AND(INT((prey0&-prey0_min&)/25.4*gtdpiv&),&HFFF8))
  17893.   CHAR{{OB_SPEC(tree28_adr%,gtb&)}}=STR$(AND(INT(gtbv&/25.4*gtdpiv&),&HFFF8))
  17894.   CHAR{{OB_SPEC(tree28_adr%,gth&)}}=STR$(AND(INT(gthv&/25.4*gtdpiv&),&HFFF8))
  17895.   CHAR{{OB_SPEC(tree28_adr%,gtdpi&)}}=STR$(gtdpiv&)
  17896.   CHAR{{OB_SPEC(tree28_adr%,gtstate&)}}=waehle$
  17897.   GET xt28&-4,yt28&-4,xt28&+bt28&+4,yt28&+ht28&+4,rette$
  17898.   ~OBJC_DRAW(tree28_adr%,0,8,xt28&,yt28&,bt28&,ht28&)
  17899.   smfdb%(0)=V:prebuf$
  17900.   smfdb%(1)=208
  17901.   smfdb%(2)=292
  17902.   smfdb%(3)=smfdb%(1)/16
  17903.   smfdb%(5)=1
  17904.   dmfdb%(0)=XBIOS(3)
  17905.   dmfdb%(1)=desk_breite&
  17906.   dmfdb%(2)=desk_hoehe&
  17907.   dmfdb%(3)=dmfdb%(1)/16
  17908.   dmfdb%(5)=1
  17909.   p%(0)=0
  17910.   p%(1)=0
  17911.   p%(2)=207
  17912.   p%(3)=291
  17913.   p%(4)=prex&+1
  17914.   p%(5)=prey&+1
  17915.   p%(6)=p%(4)+207
  17916.   p%(7)=p%(5)+291
  17917.   p%(8)=3
  17918.   BITBLT smfdb%(),dmfdb%(),p%()
  17919.   DEFFILL 1,1,1
  17920.   GRAPHMODE 3
  17921.   BOX prex0&,prey0&,prex0&+gtbv&,prey0&+gthv&
  17922.   PBOX prex0&+gtbv&-8,prey0&+gthv&-8,prex0&+gtbv&,prey0&+gthv&
  17923.   REPEAT
  17924.     DO
  17925.       ~FORM_DO(tree28_adr%,0)
  17926.       IF INT{GINTOUT}>0 AND INT{GINTOUT}<100
  17927.         exit_button&=DPEEK(GINTOUT)
  17928.         OB_STATE(tree28_adr%,exit_button&)=0
  17929.         IF exit_button&<>gtprewin&
  17930.           ~OBJC_DRAW(tree28_adr%,exit_button&,8,xt28&,yt28&,bt28&,ht28&)
  17931.         ENDIF
  17932.       ENDIF
  17933.       SELECT exit_button&
  17934.       CASE gtdpimin&
  17935.         IF gtdpiv&>100
  17936.           IF gtdpiv&=480
  17937.             gtdpiv&=400
  17938.           ELSE
  17939.             IF gtdpiv&=600
  17940.               gtdpiv&=480
  17941.             ELSE
  17942.               SUB gtdpiv&,100
  17943.             ENDIF
  17944.           ENDIF
  17945.           dpi_change(prex0&,prey0&,prex0_min&,prey0_min&)
  17946.         ENDIF
  17947.       CASE gtdpiplu&
  17948.         IF gtdpiv&<600
  17949.           IF gtdpiv&=400
  17950.             gtdpiv&=480
  17951.           ELSE
  17952.             IF gtdpiv&=480
  17953.               gtdpiv&=600
  17954.             ELSE
  17955.               ADD gtdpiv&,100
  17956.             ENDIF
  17957.           ENDIF
  17958.           dpi_change(prex0&,prey0&,prex0_min&,prey0_min&)
  17959.         ENDIF
  17960.       CASE gtprewin&
  17961.         MOUSE x_mouse%,y_mouse%,taste|
  17962.         IF x_mouse%>prex0&+gtbv&-8 AND x_mouse%<prex0&+gtbv& AND y_mouse%>prey0&+gthv&-8 AND y_mouse%<prey0&+gthv&
  17963.           DEFMOUSE 3
  17964.           REPEAT
  17965.             MOUSE x_mouse%,y_mouse%,taste|
  17966.             IF x_mouse%<>x_mouse_old% OR y_mouse%<>y_mouse_old%
  17967.               BOX prex0&,prey0&,prex0&+gtbv&,prey0&+gthv&
  17968.               PBOX prex0&+gtbv&-8,prey0&+gthv&-8,prex0&+gtbv&,prey0&+gthv&
  17969.               IF x_mouse%-prex0_min&<217 AND x_mouse%-prex0&>16
  17970.                 gtbv&=x_mouse%-prex0&
  17971.                 i%=AND(INT(gtbv&/25.4*gtdpiv&),&HFFF0)
  17972.                 gtbv&=CINT(i%*25.4/gtdpiv&)
  17973.               ENDIF
  17974.               IF y_mouse%-prey0_min&<298 AND y_mouse%-prey0&>16
  17975.                 gthv&=y_mouse%-prey0&
  17976.               ENDIF
  17977.               BOX prex0&,prey0&,prex0&+gtbv&,prey0&+gthv&
  17978.               PBOX prex0&+gtbv&-8,prey0&+gthv&-8,prex0&+gtbv&,prey0&+gthv&
  17979.               SHOWM
  17980.               x_mouse_old%=x_mouse%
  17981.               y_mouse_old%=y_mouse%
  17982.               CHAR{{OB_SPEC(tree28_adr%,gtb&)}}=STR$(AND(INT(gtbv&/25.4*gtdpiv&),&HFFF0))
  17983.               CHAR{{OB_SPEC(tree28_adr%,gth&)}}=STR$(INT(gthv&/25.4*gtdpiv&))
  17984.               ~OBJC_DRAW(tree28_adr%,gtb&,8,xt28&,yt28&,bt28&,ht28&)
  17985.               ~OBJC_DRAW(tree28_adr%,gth&,8,xt28&,yt28&,bt28&,ht28&)
  17986.             ENDIF
  17987.           UNTIL taste|=0
  17988.           DEFMOUSE 0
  17989.         ELSE
  17990.           IF x_mouse%>prex0& AND x_mouse%<prex0&+gtbv& AND y_mouse%>prey0& AND y_mouse%<prey0&+gthv&
  17991.             x_mouse_old%=x_mouse%
  17992.             y_mouse_old%=y_mouse%
  17993.             DEFMOUSE 3
  17994.             REPEAT
  17995.               MOUSE x_mouse%,y_mouse%,taste|
  17996.               IF x_mouse%<>x_mouse_old% OR y_mouse%<>y_mouse_old%
  17997.                 x_changed&=x_mouse%-x_mouse_old%
  17998.                 y_changed&=y_mouse%-y_mouse_old%
  17999.                 BOX prex0&,prey0&,prex0&+gtbv&,prey0&+gthv&
  18000.                 PBOX prex0&+gtbv&-8,prey0&+gthv&-8,prex0&+gtbv&,prey0&+gthv&
  18001.                 IF prex0&+x_changed&>=prex0_min& AND prex0&+x_changed&+gtbv&<prex0_max&
  18002.                   ADD prex0&,x_changed&
  18003.                 ENDIF
  18004.                 IF prey0&+y_changed&>=prey0_min& AND prey0&+y_changed&+gthv&<prey0_max&
  18005.                   ADD prey0&,y_changed&
  18006.                 ENDIF
  18007.                 BOX prex0&,prey0&,prex0&+gtbv&,prey0&+gthv&
  18008.                 PBOX prex0&+gtbv&-8,prey0&+gthv&-8,prex0&+gtbv&,prey0&+gthv&
  18009.                 SHOWM
  18010.                 x_mouse_old%=x_mouse%
  18011.                 y_mouse_old%=y_mouse%
  18012.                 CHAR{{OB_SPEC(tree28_adr%,gtx&)}}=STR$(AND(INT((prex0&-prex0_min&)/25.4*gtdpiv&),&HFFF8))
  18013.                 CHAR{{OB_SPEC(tree28_adr%,gty&)}}=STR$(AND(INT((prey0&-prey0_min&)/25.4*gtdpiv&),&HFFF8))
  18014.                 ~OBJC_DRAW(tree28_adr%,gtx&,8,xt28&,yt28&,bt28&,ht28&)
  18015.                 ~OBJC_DRAW(tree28_adr%,gty&,8,xt28&,yt28&,bt28&,ht28&)
  18016.               ENDIF
  18017.             UNTIL taste|=0
  18018.             DEFMOUSE 0
  18019.           ENDIF
  18020.         ENDIF
  18021.       CASE gtpresca&
  18022.         gt_info(scannen$+pre_view$)
  18023.         HIDEM
  18024.         gt6000%=VARPTR(gt6000$)
  18025.         $C+
  18026.         VOID C:gt6000%(1,50,3,3,gthalbton&,0,0,26,292,L:V:prebuf$,L:V:prebuf$+8000)
  18027.         $C-
  18028.         OUT (2),13
  18029.         trigger_0
  18030.         DEFMOUSE 3
  18031.         SHOWM
  18032.         BOX prex0&,prey0&,prex0&+gtbv&,prey0&+gthv&
  18033.         PBOX prex0&+gtbv&-8,prey0&+gthv&-8,prex0&+gtbv&,prey0&+gthv&
  18034.         smfdb%(0)=V:prebuf$
  18035.         BITBLT smfdb%(),dmfdb%(),p%()
  18036.         BOX prex0&,prey0&,prex0&+gtbv&,prey0&+gthv&
  18037.         PBOX prex0&+gtbv&-8,prey0&+gthv&-8,prex0&+gtbv&,prey0&+gthv&
  18038.         gt_info(waehle$)
  18039.       ENDSELECT
  18040.       EXIT IF exit_button&=gtcancel&
  18041.       EXIT IF exit_button&=gtscan&
  18042.     LOOP
  18043.     IF exit_button&=gtcancel&
  18044.       PUT xt28&-4,yt28&-4,rette$
  18045.       ok!=TRUE
  18046.     ENDIF
  18047.     IF exit_button&=gtscan&
  18048.       IF OB_STATE(tree28_adr%,gthart&)=1
  18049.         gthalbton&=0
  18050.       ELSE
  18051.         IF OB_STATE(tree28_adr%,gtweich&)=1
  18052.           gthalbton&=16
  18053.         ELSE
  18054.           IF OB_STATE(tree28_adr%,gtraster&)=1
  18055.             gthalbton&=32
  18056.           ELSE
  18057.             gthalbton&=1
  18058.           ENDIF
  18059.         ENDIF
  18060.       ENDIF
  18061.       IF OB_STATE(tree28_adr%,gtrot&)=1
  18062.         gtfarbev&=0
  18063.       ELSE
  18064.         IF OB_STATE(tree28_adr%,gtgruen&)=1
  18065.           gtfarbev&=1
  18066.         ELSE
  18067.           IF OB_STATE(tree28_adr%,gtblau&)=1
  18068.             gtfarbev&=2
  18069.           ELSE
  18070.             gtfarbev&=3
  18071.           ENDIF
  18072.         ENDIF
  18073.       ENDIF
  18074.       IF OB_STATE(tree28_adr%,k0&)=1
  18075.         gtkontrav&=0
  18076.       ELSE
  18077.         IF OB_STATE(tree28_adr%,k1&)=1
  18078.           gtkontrav&=1
  18079.         ELSE
  18080.           IF OB_STATE(tree28_adr%,k2&)=1
  18081.             gtkontrav&=2
  18082.           ELSE
  18083.             IF OB_STATE(tree28_adr%,k3&)=1
  18084.               gtkontrav&=3
  18085.             ELSE
  18086.               IF OB_STATE(tree28_adr%,k4&)=1
  18087.                 gtkontrav&=4
  18088.               ELSE
  18089.                 IF OB_STATE(tree28_adr%,k5&)=1
  18090.                   gtkontrav&=5
  18091.                 ELSE
  18092.                   gtkontrav&=6
  18093.                 ENDIF
  18094.               ENDIF
  18095.             ENDIF
  18096.           ENDIF
  18097.         ENDIF
  18098.       ENDIF
  18099.       gt_info(scannen$+bereich$)
  18100.       gtxorig&=CINT(AND(INT((prex0&+2-prex0_min&)/25.4*gtdpiv&),&HFFF8)/8)
  18101.       gtyorig&=CINT((prey0&+2-prey0_min&)/25.4*gtdpiv&)
  18102.       gtxbytes&=CINT(AND(INT(gtbv&/25.4*gtdpiv&),&HFFF0)/8)
  18103.       gtyzeilen&=CINT(gthv&/25.4*gtdpiv&)
  18104.       IF gtxbytes&*(gtyzeilen&+1)<work_space%
  18105.         HIDEM
  18106.         gt6000%=VARPTR(gt6000$)
  18107.         $C+
  18108.         i%=C:gt6000%(0,gtdpiv&,gtfarbev&,gtkontrav&,gthalbton&,gtxorig&,gtyorig&,gtxbytes&,gtyzeilen&,L:daten_ptr%,L:daten_ptr%+work_space%)
  18109.         $C-
  18110.         OUT (2),13
  18111.         trigger_0
  18112.         DEFMOUSE 3
  18113.         SHOWM
  18114.       ELSE
  18115.         i%=-1
  18116.       ENDIF
  18117.       IF i%>=0
  18118.         gt_info(waehle$)
  18119.         PUT xt28&-4,yt28&-4,rette$
  18120.         layer!=TRUE
  18121.         layer_geladen!=TRUE
  18122.         voll_bild!=TRUE
  18123.         outlined!=FALSE
  18124.         do_change_aufloesung(AND(INT(gtbv&/25.4*gtdpiv&),&HFFF0),INT(gthv&/25.4*gtdpiv&),1)
  18125.         init_bit_blit
  18126.         p_zoom(zoom*100,zoom*100)
  18127.         do_redraw
  18128.         ok!=TRUE
  18129.       ELSE
  18130.         FOR i%=1 TO 5
  18131.           gt_info(fehler$)
  18132.           PAUSE 15
  18133.           gt_info("      ")
  18134.           PAUSE 15
  18135.         NEXT i%
  18136.         gt_info(waehle$)
  18137.         ok!=FALSE
  18138.       ENDIF
  18139.     ENDIF
  18140.   UNTIL ok!
  18141.   gtxv&=prex0&
  18142.   gtyv&=prey0&
  18143.   ~WIND_GET(1,4)
  18144.   clip(x_window&,y_window&,b_window&,h_window&,INT{GINTOUT+2},INT{GINTOUT+4})
  18145.   set_clip_offset
  18146.   GRAPHMODE 1
  18147.   DEFFILL 0,0
  18148.   DEFMOUSE 3
  18149.   init_bit_blit
  18150. RETURN
  18151. '
  18152. PROCEDURE set_clip_offset
  18153.   INT{WINDTAB+64}=INT{WINDTAB+64}-x_offset&
  18154.   INT{WINDTAB+66}=INT{WINDTAB+66}-y_offset&
  18155. RETURN
  18156. '
  18157. PROCEDURE helpo(help$)
  18158.   TITLEW #1,ein_space$+help$+ein_space$
  18159.   set_clip_offset
  18160. RETURN
  18161. '
  18162. PROCEDURE help(help$)
  18163.   TITLEW #1,ein_space$+waehle$+help$+ein_space$
  18164.   set_clip_offset
  18165. RETURN
  18166. '
  18167. PROCEDURE help_titel
  18168.   TITLEW #1,ein_space$+pfad_vek$+"\"+programm$+".VEK "
  18169.   set_clip_offset
  18170.   DEFMOUSE 3
  18171.   DEFLINE 1
  18172.   COLOR 1
  18173.   GRAPHMODE 1
  18174.   p_xy_info("X:","Y:",0)
  18175.   SHOWM
  18176.   trigger_0
  18177.   zeit%=TIMER
  18178. RETURN
  18179. '
  18180. PROCEDURE polygon_fill
  18181.   REPEAT
  18182.     DEFMOUSE 0
  18183.     GET xt20&-4,yt20&-4,xt20&+bt20&+4,yt20&+ht20&+4,rette$
  18184.     SETMOUSE xt20&+bt20&/2,yt20&+160,0
  18185.     ~OBJC_DRAW(tree20_adr%,0,8,xt20&,yt20&,bt20&,ht20&)
  18186.     ~FORM_DO(tree20_adr%,0)
  18187.     exit_button&=DPEEK(GINTOUT)
  18188.     OB_STATE(tree20_adr%,exit_button&)=0
  18189.     PUT xt20&-4,yt20&-4,rette$
  18190.     IF OB_STATE(tree20_adr%,fill1&)=1
  18191.       DEFFILL 1,2,1
  18192.     ELSE IF OB_STATE(tree20_adr%,fill2&)=1
  18193.       DEFFILL 1,2,2
  18194.     ELSE IF OB_STATE(tree20_adr%,fill3&)=1
  18195.       DEFFILL 1,2,3
  18196.     ELSE IF OB_STATE(tree20_adr%,fill4&)=1
  18197.       DEFFILL 1,2,4
  18198.     ELSE IF OB_STATE(tree20_adr%,fill5&)=1
  18199.       DEFFILL 1,2,5
  18200.     ELSE IF OB_STATE(tree20_adr%,fill6&)=1
  18201.       DEFFILL 1,2,6
  18202.     ELSE IF OB_STATE(tree20_adr%,fill7&)=1
  18203.       DEFFILL 1,2,8
  18204.     ENDIF
  18205.     DEFMOUSE mdaten$
  18206.     help(help_polygon$)
  18207.     IF exit_button&<>fillcancel&
  18208.       REPEAT
  18209.         trigger_0
  18210.         wait_taste
  18211.         IF taste|<>2
  18212.           FILL x_mouse%,y_mouse%
  18213.         ENDIF
  18214.       UNTIL taste|=2
  18215.     ENDIF
  18216.   UNTIL exit_button&=fillcancel&
  18217.   ~FRE(0)
  18218.   DEFFILL 1,1
  18219.   help_titel
  18220. RETURN
  18221. '
  18222. ' *****************************************************************************
  18223. ' *                            TANGENTE NIVELLIEREN                           *
  18224. ' *                                                                           *
  18225. ' *  VERÄNDERT VAR: Punkte_X%(), Punkte_Y%()                                  *
  18226. ' *                                                                           *
  18227. ' *****************************************************************************
  18228. '
  18229. PROCEDURE do_niv_tangente(found_quelle%,von%,bis%,dreh_x%,dreh_y%)
  18230.   LOCAL phi,strecke
  18231.   dx=SUB(dreh_x%,punkte_x%(found%))
  18232.   dy=SUB(dreh_y%,punkte_y%(found%))
  18233.   strecke=SQR(dx*dx+dy*dy)
  18234.   get_phi(dreh_x%,dreh_y%,punkte_x%(found_quelle%),punkte_y%(found_quelle%),phi)
  18235.   redraw_von_bis(von%,bis%,0)
  18236.   punkte_x%(found%)=CINT(dreh_x%-strecke*COS(phi))
  18237.   punkte_y%(found%)=CINT(dreh_y%-strecke*SIN(phi))
  18238.   redraw_von_bis(von%,bis%,1)
  18239. RETURN
  18240. '
  18241. PROCEDURE tangente_nivellieren
  18242.   LOCAL found_quelle%,quelle_def|
  18243.   LOCAL von%,bis%,f%,dreh_x%,dreh_y%
  18244.   IF pointer%>1
  18245.     show_cursor_fang
  18246.     REPEAT
  18247.       trigger_0
  18248.       GRAPHMODE 1
  18249.       REPEAT
  18250.         wait_taste
  18251.         EXIT IF taste|=2
  18252.         find(x_mouse%*100/zoom,y_mouse%*100/zoom)
  18253.         quelle_def|=punkte_def|(found%)
  18254.       UNTIL (quelle_def|>da| AND quelle_def|<b3|)
  18255.       IF taste|<>2
  18256.         found_quelle%=found%
  18257.         IF quelle_def|=b1|
  18258.           IF punkte_def|(found_quelle%-1)=b3|
  18259.             found%=found_quelle%-2
  18260.             von%=found_quelle%-4
  18261.             bis%=von%+3
  18262.             dreh_x%=punkte_x%(found_quelle%-1)
  18263.             dreh_y%=punkte_y%(found_quelle%-1)
  18264.             do_niv_tangente(found_quelle%,von%,bis%,dreh_x%,dreh_y%)
  18265.           ELSE
  18266.             IF punkte_def|(found_quelle%-1)=da|
  18267.               found%=found_quelle%
  18268.               found_quelle%=found%-2
  18269.               von%=found%-1
  18270.               bis%=von%+3
  18271.               dreh_x%=punkte_x%(found%-1)
  18272.               dreh_y%=punkte_y%(found%-1)
  18273.               do_niv_tangente(found_quelle%,von%,bis%,dreh_x%,dreh_y%)
  18274.             ELSE
  18275.               IF punkte_def|(found_quelle%-1)=ma|
  18276.                 found%=found_quelle%
  18277.                 REPEAT
  18278.                   INC found%
  18279.                 UNTIL punkte_def|(found%)=ma|
  18280.                 DEC found%
  18281.                 IF punkte_def|(found%)=b3|
  18282.                   DEC found%
  18283.                   von%=found%-2
  18284.                   bis%=von%+3
  18285.                   dreh_x%=punkte_x%(found_quelle%-1)
  18286.                   dreh_y%=punkte_y%(found_quelle%-1)
  18287.                   do_niv_tangente(found_quelle%,von%,bis%,dreh_x%,dreh_y%)
  18288.                 ELSE
  18289.                   IF punkte_def|(found%)=da|
  18290.                     f%=found_quelle%
  18291.                     found_quelle%=found%-1
  18292.                     found%=f%
  18293.                     von%=found%-1
  18294.                     bis%=von%+3
  18295.                     dreh_x%=punkte_x%(found_quelle%+1)
  18296.                     dreh_y%=punkte_y%(found_quelle%+1)
  18297.                     do_niv_tangente(found_quelle%,von%,bis%,dreh_x%,dreh_y%)
  18298.                   ENDIF
  18299.                 ENDIF
  18300.               ENDIF
  18301.             ENDIF
  18302.           ENDIF
  18303.         ELSE
  18304.           IF quelle_def|=b2|
  18305.             IF punkte_def|(found_quelle%+2)=b1|
  18306.               found%=found_quelle%+2
  18307.               von%=found_quelle%+1
  18308.               bis%=von%+3
  18309.               dreh_x%=punkte_x%(found_quelle%+1)
  18310.               dreh_y%=punkte_y%(found_quelle%+1)
  18311.               do_niv_tangente(found_quelle%,von%,bis%,dreh_x%,dreh_y%)
  18312.             ELSE
  18313.               IF punkte_def|(found_quelle%+2)=da|
  18314.                 found%=found_quelle%
  18315.                 found_quelle%=found%+2
  18316.                 von%=found%-2
  18317.                 bis%=von%+3
  18318.                 dreh_x%=punkte_x%(found%+1)
  18319.                 dreh_y%=punkte_y%(found%+1)
  18320.                 do_niv_tangente(found_quelle%,von%,bis%,dreh_x%,dreh_y%)
  18321.               ELSE
  18322.                 IF punkte_def|(found_quelle%+2)=ma|
  18323.                   found%=found_quelle%
  18324.                   REPEAT
  18325.                     DEC found%
  18326.                   UNTIL punkte_def|(found%)=ma|
  18327.                   INC found%
  18328.                   IF punkte_def|(found%)=b1|
  18329.                     von%=found%-1
  18330.                     bis%=von%+3
  18331.                     dreh_x%=punkte_x%(found_quelle%+1)
  18332.                     dreh_y%=punkte_y%(found_quelle%+1)
  18333.                     do_niv_tangente(found_quelle%,von%,bis%,dreh_x%,dreh_y%)
  18334.                   ELSE
  18335.                     IF punkte_def|(found%)=da|
  18336.                       f%=found_quelle%
  18337.                       found_quelle%=found%
  18338.                       found%=f%
  18339.                       von%=found%-2
  18340.                       bis%=von%+3
  18341.                       dreh_x%=punkte_x%(found_quelle%-1)
  18342.                       dreh_y%=punkte_y%(found_quelle%-1)
  18343.                       do_niv_tangente(found_quelle%,von%,bis%,dreh_x%,dreh_y%)
  18344.                     ENDIF
  18345.                   ENDIF
  18346.                 ENDIF
  18347.               ENDIF
  18348.             ENDIF
  18349.           ENDIF
  18350.         ENDIF
  18351.       ENDIF
  18352.     UNTIL taste|=2
  18353.     DEFMOUSE 3
  18354.   ENDIF
  18355. RETURN
  18356. '
  18357. ' *****************************************************************************
  18358. ' *                               ASCII Editor                                *
  18359. ' *                                                                           *
  18360. ' *                                                                           *
  18361. ' *                                                                          ' ******************************************************************************
  18362. ' *                                                                            *
  18363. ' *                                   CUTOUT                                   *
  18364. ' *                                                                            *
  18365. ' *                                 27.02.1992                                 *
  18366. ' *                                                                            *
  18367. ' ******************************************************************************
  18368. '
  18369. '
  18370. $B+
  18371. $I-
  18372. INLINE scsi%,933
  18373. DIM buffer|(512*2)
  18374. DIM command|(12)
  18375. ' VAR:
  18376. ' apl_id&=APPL_INIT()
  18377. magic%=14031952
  18378. '
  18379. ' serien_nummer$="REGIST00"
  18380. ' serien_nummer_vergleich$="REGIST11"
  18381. serien_nummer$=MKD$(101)
  18382. serien_nummer_vergleich$=MKD$(101 XOR magic%)
  18383. '
  18384. fang_schnittpunkt|=4
  18385. buffer%=0
  18386. buffer_max%=0
  18387. poly_len%=0
  18388. bits%=0
  18389. punkt_eintrag&=0
  18390. x_start&=0
  18391. y_start&=0
  18392. edi_max&=0
  18393. m=0
  18394. m_neu=0
  18395. bit_count|=0
  18396. pixel!=FALSE
  18397. '
  18398. regist_nr%=0
  18399. revision$="1.59"
  18400. zeit%=TIMER
  18401. calamus_nr%=0
  18402. ortho|=45
  18403. ortho=RAD(ortho|)
  18404. ortho2=ortho/2
  18405. x_win&=0                                         ! Window X pos  aktuell
  18406. y_win&=0                                         ! Window Y pos  aktuell
  18407. x_window&=0                                      ! Window X pos  aktuell
  18408. y_window&=0                                      ! Window Y pos  aktuell
  18409. b_window&=0                                      ! Window Breite aktuell
  18410. h_window&=0                                      ! Window Höhe   aktuell
  18411. ~WIND_GET(0,4,scrx&,scry&,scrb&,scrh&)           ! maximaler Desktop
  18412. wmx%=scrb&-62
  18413. wmy%=scrh&-57+scry&
  18414. desk_breite&=scrb&
  18415. desk_hoehe&=scrh&+scry&
  18416. gross_bildschirm!=FALSE
  18417. IF desk_breite&>640 OR desk_hoehe&>400
  18418.   gross_bildschirm!=TRUE
  18419. ENDIF
  18420. ADD scrx&,42                                     ! Position Window X+Menuleiste
  18421. SUB scrb&,42                                     ! Breite   Window
  18422. scrb_old&=scrb&
  18423. scrh_old&=scrh&
  18424. res_x%=0                                         ! Auflösung x in mm
  18425. res_y%=0                                         ! Auflösung y in mm
  18426. res_x_old%=0
  18427. res_y_old%=0
  18428. x_layer%=0
  18429. y_layer%=0
  18430. x_layero%=0
  18431. y_layero%=0
  18432. x_offset&=0                                      ! Nullpunkt x im Fenster
  18433. y_offset&=0                                      ! Nullpunkt y im Fenster
  18434. x_offset_old&=0
  18435. y_offset_old&=0
  18436. x_mouse%=0
  18437. y_mouse%=0
  18438. x_mouse_old%=0
  18439. y_mouse_old%=0
  18440. x_mouse_0%=0
  18441. y_mouse_0%=0
  18442. objectbox_x0%=0
  18443. objectbox_y0%=0
  18444. objectbox_x1%=0
  18445. objectbox_y1%=0
  18446. grid%=10                                        ! raster mm
  18447. schraff_dist=201
  18448. schraff_inc=0
  18449. schraff_fix_abst=0
  18450. schraff_winkel=0
  18451. schraff_start%=0
  18452. schraff_y_min%=0
  18453. bit_count_max|=6
  18454. geraden_fehler|=1
  18455. lange_gerade%=4000
  18456. schmutz_filter%=20
  18457. knick_winkel_max=RAD(140)
  18458. bogen_max=PI/2/2
  18459. abweichung_gerade%=0.5*100
  18460. last_poly_s%=-1
  18461. last_poly_e%=-1
  18462. taste|=0
  18463. zoom=1
  18464. zoom_old=1
  18465. zoom_100=1
  18466. pointer%=0                                       ! Zeiger auf Punkteliste
  18467. found%=0                                         ! gefundener Punkt bei SNAP
  18468. found_t%=0                                       ! gefundener Kurvenparameter
  18469. schnittpunkt_genau%=16                           ! Zerlegung Bezier in Teile
  18470. anz_schnittpunkte%=0                             ! Anzahl Schnittpunkte
  18471. b_vari=100
  18472. i%=0                                             ! allgemeiner Schleifenzähler
  18473. ii%=0
  18474. iii%=0
  18475. d0%=0
  18476. dx%=0
  18477. dy%=0
  18478. dx=0
  18479. dy=0
  18480. schnitt_laenge=0
  18481. kostfak=1
  18482. gkosten=0
  18483. px0%=0
  18484. py0%=0
  18485. px1%=0
  18486. py1%=0
  18487. px2%=0
  18488. py2%=0
  18489. px3%=0
  18490. py3%=0
  18491. m_square_breite&=&H3000
  18492. m_square_hoehe&=&H3000
  18493. kerning_256|=m_square_breite& DIV 256
  18494. len_pair_daten&=0
  18495. z_hoehe_def%=16384                               ! Höhe des definierten Zsatzes
  18496. z_breite_def%=16384                              ! Breite     "
  18497. zeichen_hoehe%=3000                              ! gewünschte Höhe in 1/100 mm
  18498. versal_def%=0                                    ! Versal     Höhe in 1/100 mm
  18499. z_ascii_scale=zeichen_hoehe%/z_hoehe_def%        ! Scaling
  18500. z_ascii_scale_old=z_ascii_scale                  ! save Scaling
  18501. global_kerning%=1280                             ! globales Kerning
  18502. zeilen_abstand_prozent%=125                      ! relativer Zeilen Abstand
  18503. zeilen_abstand%=zeichen_hoehe%*zeilen_abstand_prozent%/100-zeichen_hoehe%
  18504. z_cursor_x_spalte%=0                             ! Start String
  18505. z_cursor_x%=0                                    ! ASCII Zeichen Cursor X
  18506. z_cursor_y%=0                                    ! ASCII Zeichen Cursor y
  18507. z_cursor_x_old%=0                                ! letztes Zeichen Cursor X
  18508. z_cursor_y_old%=0                                ! letztes Zeichen Cursor y
  18509. z_ascii_old%=0                                   ! letztes Zeichen ASCII+32
  18510. z_satz_pointer%=0                                ! Pointer auf Zeichensatz
  18511. state_rs232&=0                                   ! Centronics aktiv
  18512. state_hp&=0                                      ! HPGL aktiv
  18513. folie_x%=1188                                    ! Folien Grö₧e
  18514. folie_y%=840
  18515. plotter_x_min%=0
  18516. plotter_y_min%=0
  18517. gdu=0                                            ! 100*Plottereinheit
  18518. sel_start%=0
  18519. sel_end%=0
  18520. gtxv&=0
  18521. gtyv&=0
  18522. gtbv&=216
  18523. gthv&=297
  18524. gtdpiv&=300
  18525. gtfarbev&=3
  18526. gtkontrav&=3
  18527. exit_button&=0
  18528. cursor_x&=0
  18529. cursor_y&=0
  18530. ofn_ver|=0
  18531. overcut|=0
  18532. geschlossen%=0
  18533. '
  18534. phi_x_3d=0
  18535. phi_y_3d=0
  18536. a2_3d=0
  18537. '
  18538. daten_ptr%=0
  18539. work_space%=0
  18540. '
  18541. ' CONST:
  18542. '
  18543. IF FRE(0)>4000000
  18544.   p_max%=99999
  18545. ELSE
  18546.   p_max%=60000
  18547. ENDIF
  18548. ma|=0
  18549. da|=1
  18550. b1|=2
  18551. b2|=3
  18552. b3|=4
  18553. ein_drittel=1/3
  18554. fmin=2.225073858507E-307
  18555. fmin1=0.005
  18556. max1=0.995
  18557. pimal2=PI*2
  18558. pihalbe=PI/2
  18559. pidrittel=PI/3
  18560. fang_rad%=8*100                                  ! FANGRADIUS
  18561. p_at%=XBIOS(3)+76                                ! PRINT AT FÜR X,Y
  18562. p_at_zoom%=p_at%-12                              ! PRINT AT FÜR ZOOM
  18563. x_bytes%=(scrb&+42)/8                            ! BYTES IN X RICHTUNG DESKTOP
  18564. '
  18565. ' CONST: Menuleiste
  18566. '
  18567. tree00&=0
  18568. tree0_adr%=0
  18569. datei&=3
  18570. eintrag&=4
  18571. mfenster&=10
  18572. mtext&=5
  18573. mzedi&=6
  18574. spezial&=7
  18575. all_clear&=8
  18576. bbogen&=9
  18577. mschnitt&=11
  18578. '
  18579. tree01&=1
  18580. tree1_adr%=0
  18581. back_main&=3
  18582. fwd_main&=4
  18583. gerade&=5
  18584. kurve&=6
  18585. schliess&=7
  18586. verrunde&=8
  18587. loeschen&=9
  18588. lock&=10
  18589. snap&=11
  18590. bild&=12
  18591. zircel&=13
  18592. bezier4&=14
  18593. schere&=15
  18594. ' fenster&=15
  18595. '
  18596. tree02&=2
  18597. tree2_adr%=0
  18598. back_datei&=3
  18599. fwd_datei&=4
  18600. l_vek&=5
  18601. l_merge&=6
  18602. r_macro&=7
  18603. r_cvg&=8
  18604. l_img&=9
  18605. l_pic&=10
  18606. ordner&=11
  18607. s_vek&=12
  18608. s_plt&=13
  18609. a_plotter&=14
  18610. '
  18611. tree03&=3
  18612. tree3_adr%=0
  18613. back_fenster&=3
  18614. fwd_fenster&=4
  18615. fmove&=5
  18616. blitz&=6
  18617. fcopy&=7
  18618. fzoom&=8
  18619. fzoomp&=9
  18620. fdreh&=10
  18621. fspiegel&=11
  18622. fkursiv&=12
  18623. dreh3d&=13
  18624. drehxp&=14
  18625. drehxm&=15
  18626. drehym&=16
  18627. drehyp&=17
  18628. floesch&=18
  18629. fzoom1&=19
  18630. '
  18631. tree04&=4
  18632. tree4_adr%=0
  18633. back_spezial&=3
  18634. gtepson&=4
  18635. handy&=5
  18636. kontour&=6
  18637. filter&=7
  18638. trace&=8
  18639. smooth&=9
  18640. simag&=10
  18641. '
  18642. tree05&=5
  18643. tree5_adr%=0
  18644. back_text&=3
  18645. fwd_text&=4
  18646. z_edit&=5
  18647. z_editor&=6
  18648. z_string&=7
  18649. z_t_hoehe&=8
  18650. z_t_abstand&=9
  18651. z_g_kerning&=10
  18652. z_read_ascii&=11
  18653. l_font&=12
  18654. s_font&=14
  18655. c_font&=13
  18656. '
  18657. tree06&=6
  18658. tree6_adr%=0
  18659. t_hoehe&=1
  18660. '
  18661. tree07&=7
  18662. tree7_adr%=0
  18663. zabs&=1
  18664. '
  18665. tree08&=8                                         ! String Text
  18666. tree8_adr%=0
  18667. string_text&=1
  18668. breite&=3
  18669. string_breite&=4
  18670. versal&=5
  18671. string_versal&=6
  18672. pfad&=7
  18673. do_kerning&=8
  18674. string_kreis&=9
  18675. string_kreis_von&=10
  18676. string_kreis_bis&=11
  18677. fontname&=13
  18678. c_text&=14
  18679. icon_pair&=15
  18680. icon_trep&=16
  18681. '
  18682. tree09&=9                                         ! Zeichen Editor
  18683. tree9_adr%=0
  18684. back_editor&=3
  18685. m_matrix&=4
  18686. z_matrix&=5
  18687. move_matrix&=6
  18688. kerning_links&=7
  18689. kerning_rechts&=8
  18690. kerning_auto&=9
  18691. z_get&=10
  18692. z_muell&=11
  18693. z_up&=13
  18694. z_down&=14
  18695. z_char&=15
  18696. '
  18697. tree10&=10
  18698. tree10_adr%=0
  18699. b_kerning&=2
  18700. g_kerning&=3
  18701. '
  18702. tree11&=11                                       ! Optimier
  18703. tree11_adr%=0
  18704. del_ma&=4
  18705. del_ge&=6
  18706. del_el&=8
  18707. '
  18708. tree12&=12
  18709. tree12_adr%=0
  18710. bstep&=1
  18711. '
  18712. tree13&=13                                       ! Info
  18713. tree13_adr%=0
  18714. vernr&=7
  18715. version&=4
  18716. firma&=4
  18717. strasse&=7
  18718. stadt&=10
  18719. punkte&=15
  18720. rest&=17
  18721. '
  18722. tree14&=14                                       ! Auflösung
  18723. tree14_adr%=0
  18724. rx1&=8
  18725. ry1&=10
  18726. rx2&=12
  18727. ry2&=13
  18728. rx3&=16
  18729. ry3&=17
  18730. get_pf&=19
  18731. r1&=4
  18732. r2&=5
  18733. r3&=6
  18734. '
  18735. tree15&=15                                       ! Plotter INIT
  18736. tree15_adr%=0
  18737. p_init1&=3
  18738. p_init2&=4
  18739. gdu01&=9
  18740. gdu025&=10
  18741. gdu05&=11
  18742. gdu1&=12
  18743. overcut&=16
  18744. cent&=18
  18745. rs232&=20
  18746. hp&=23
  18747. gp&=24
  18748. mgl&=25
  18749. ma&=29
  18750. da&=30
  18751. '
  18752. tree16&=16                                       ! Pfade und Parameter
  18753. tree16_adr%=0
  18754. pv&=5
  18755. pp&=7
  18756. pfi&=9
  18757. pg&=11
  18758. pf&=13
  18759. df&=15
  18760. p1&=17
  18761. p2&=19
  18762. schnitt&=21
  18763. gdu&=23
  18764. foliex&=25
  18765. foliey&=27
  18766. warn&=29
  18767. cancel&=31
  18768. '
  18769. tree17&=17
  18770. tree17_adr%=0
  18771. outl&=1
  18772. outl_anz&=2
  18773. '
  18774. tree18&=18
  18775. tree18_adr%=0
  18776. schraffd&=1
  18777. schraffi&=2
  18778. schrafix&=3
  18779. schraffw&=4
  18780. schraffa&=7
  18781. schrafff&=8
  18782. '
  18783. tree19&=19
  18784. tree19_adr%=0
  18785. necka&=1
  18786. neckp&=2
  18787. '
  18788. tree20&=20                                      ! Füll
  18789. tree20_adr%=0
  18790. fill1&=3
  18791. fill2&=5
  18792. fill3&=7
  18793. fill4&=9
  18794. fill5&=11
  18795. fill6&=13
  18796. fill7&=15
  18797. fillcancel&=17
  18798. '
  18799. tree21&=21                                      ! Trace
  18800. tree21_adr%=0
  18801. t_step&=7
  18802. t_gerade&=8
  18803. t_schmutz&=9
  18804. bschwelle&=21
  18805. knickwinkel&=22
  18806. bogen_max&=23
  18807. abweichung_gerade&=24
  18808. nur_gerade&=13
  18809. trace_cancel&=14
  18810. gerade_bezier&=30
  18811. '
  18812. tree22&=22
  18813. tree22_adr%=0
  18814. scann_x&=1
  18815. scann_y&=2
  18816. '
  18817. tree23&=23
  18818. tree23_adr%=0
  18819. radius&=1
  18820. '
  18821. tree24&=24
  18822. tree24_adr%=0
  18823. grau&=6
  18824. stark&=7
  18825. selgrau0&=4
  18826. selgrau&=5
  18827. sellinie&=8
  18828. alle&=9
  18829. auswahl&=10
  18830. '
  18831. tree25&=25                               ! Bogen
  18832. tree25_adr%=0
  18833. backboge&=3
  18834. vkreis&=4
  18835. kreis3&=5
  18836. kreisbog&=6
  18837. bogen3&=7
  18838. bogen2&=8
  18839. ellipse&=9
  18840. elbogen&=10
  18841. eckrund&=11
  18842. '
  18843. tree26&=26                               ! Koordinaten
  18844. tree26_adr%=0
  18845. absolut&=2
  18846. relativ&=3
  18847. polar&=4
  18848. '
  18849. tree27&=27                               ! Calamus Versions Nr.
  18850. tree27_adr%=0
  18851. calamus_nr&=1
  18852. '
  18853. tree28&=28                               ! GT 6000
  18854. tree28_adr%=0
  18855. gtscan&=47
  18856. gtx&=38
  18857. gty&=44
  18858. gtb&=42
  18859. gth&=43
  18860. gtcancel&=46
  18861. gtpresca&=45
  18862. gtdpi&=35
  18863. gtdpimin&=33
  18864. gtdpiplu&=34
  18865. gtprewin&=1
  18866. gtstate&=5
  18867. gtkeiner&=9
  18868. gtraster&=10
  18869. gtweich&=11
  18870. gthart&=12
  18871. gtkeine&=15
  18872. gtrot&=18
  18873. gtgruen&=17
  18874. gtblau&=16
  18875. k0&=22
  18876. k1&=23
  18877. k2&=24
  18878. k3&=25
  18879. k4&=26
  18880. k5&=27
  18881. k6&=28
  18882. '
  18883. tree29&=29                               ! Kosten
  18884. tree29_adr%=0
  18885. kostfak&=1
  18886. sl&=2
  18887. gkosten&=4
  18888. '
  18889. tree30&=30                               ! Select Filter
  18890. tree30_adr%=0
  18891. abs_filter&=1
  18892. '
  18893. tree31&=31                               ! Select Fenster
  18894. tree31_adr%=0
  18895. ohnecopy&=1
  18896. mitcopy&=6
  18897. anz_rot&=3
  18898. phi_rot&=4
  18899. numohne&=5
  18900. ausricht_vector&=7
  18901. '
  18902. tree32&=32                               ! Select Spiegel
  18903. tree32_adr%=0
  18904. anbox&=2
  18905. anachse&=1
  18906. '
  18907. tree33&=33
  18908. tree33_adr%=0
  18909. teil&=1
  18910. '
  18911. tree34&=34                               ! Schnittpunkt
  18912. tree34_adr%=0
  18913. backschn&=3
  18914. fwdschn&=4
  18915. trimm&=5
  18916. knack&=6
  18917. lot&=7
  18918. teilen&=8
  18919. lang&=9
  18920. schnitt2&=10
  18921. schnittn&=11
  18922. delseg&=12
  18923. delel&=13
  18924. schmelz&=14
  18925. '
  18926. tree35&=35                              ! Select Copy
  18927. tree35_adr%=0
  18928. copysing&=1
  18929. copymul&=2
  18930. cx&=4
  18931. cy&=5
  18932. canz&=6
  18933. cdist&=7
  18934. '
  18935. tree36&=36                              ! Ausrichten
  18936. tree36_adr%=0
  18937. a_olinks&=1
  18938. a_oben&=2
  18939. a_orechts&=3
  18940. a_links&=4
  18941. a_mitte&=5
  18942. a_rechts&=6
  18943. a_ulinks&=7
  18944. a_unten&=8
  18945. a_urechts&=9
  18946. '
  18947. tree37&=37                              ! Scalieren
  18948. tree37_adr%=0
  18949. scale_interactiv&=1
  18950. scale_numerisch&=2
  18951. scale_breite&=4
  18952. scale_hoehe&=5
  18953. '
  18954. tree38&=38                              ! Ordner
  18955. tree38_adr%=0
  18956. ordnert&=1
  18957. ordnerok&=2
  18958. ordnerca&=3
  18959. '
  18960. tree39&=39                              ! Kerning
  18961. tree39_adr%=0
  18962. kerning_box&=1
  18963. kerning_minus&=3
  18964. kerning_plus&=4
  18965. kerning_last&=2
  18966. kerning_next&=5
  18967. kerning_exit&=6
  18968. kerning_minus2&=9
  18969. kerning_plus2&=10
  18970. kerning_last2&=8
  18971. kerning_next2&=11
  18972. kerning_clear&=7
  18973. kerning_info&=13
  18974. kerning_pair&=15
  18975. '
  18976. tree40&=40                              ! Plotter OUTPUT
  18977. tree40_adr%=0
  18978. pl100&=3
  18979. plschieber&=4
  18980. plschere&=7
  18981. plschereauf&=5
  18982. plscherezu&=6
  18983. plschere&=7
  18984. '
  18985. tree41&=41                              ! Select Neigen
  18986. tree41_adr%=0
  18987. neige_grad&=2
  18988. neige_vertical&=3
  18989. neige_horizontal&=4
  18990. neige_interaktiv&=5
  18991. '
  18992. ' FLAG:
  18993. '
  18994. undo!=FALSE
  18995. geschlossen!=FALSE
  18996. ok!=FALSE                                        ! allgemein
  18997. layer_geladen!=FALSE                             ! ist  Layer geladen
  18998. layer!=FALSE                                     ! soll Layer gezeigt werden
  18999. window_fulled!=TRUE                              ! ist  Fenster schon gro₧
  19000. voll_bild!=FALSE                                 ! ist  Fenster komplett auf Crt
  19001. eintragen!=FALSE                                 ! ist  eintragen aktiv
  19002. bogen!=FALSE
  19003. mtext!=FALSE
  19004. meditor!=FALSE
  19005. datei!=FALSE
  19006. fenster!=FALSE
  19007. schnittpunktm!=FALSE
  19008. loeschen!=FALSE                                  ! ist  loeschen aktiv
  19009. neues_polygon!=TRUE                              ! erster Punkt im Polygon
  19010. found!=FALSE                                     ! gefunden bei Fangradius
  19011. marker!=FALSE                                    ! sollen Marker gezeigt werden
  19012. marker_select!=FALSE                             ! soll   Marker selectiert
  19013. modified!=FALSE                                  ! wurde Vektorbild geändert
  19014. font_geladen!=FALSE                              ! ist ein Font geladen
  19015. outlined!=FALSE                                  ! wurde Bitmap schon outlined
  19016. auto_schraff!=TRUE
  19017. schraff_fix_abst!=FALSE
  19018. einpassen!=FALSE
  19019. tangente!=FALSE
  19020. tangenten_lock!=TRUE
  19021. warn!=FALSE
  19022. gp_gl!=FALSE                                     ! HPGL oder GPGL
  19023. tasten_rep!=FALSE
  19024. absolut!=TRUE
  19025. relativ!=FALSE
  19026. polar!=FALSE
  19027. absolut_old!=FALSE
  19028. polar_old!=FALSE
  19029. fangklein!=FALSE                                 ! Fangradius gro₧
  19030. fadenkreuz!=FALSE
  19031. polygonmode!=TRUE                                ! Polygonmodus
  19032. ortho!=FALSE
  19033. grid!=FALSE
  19034. scrolled!=FALSE
  19035. move!=FALSE
  19036. drei_d!=FALSE
  19037. status_wechsel!=FALSE
  19038. grid_wechsel!=FALSE
  19039. swap!=FALSE
  19040. '
  19041. ' ARRAY:
  19042. '
  19043. DIM smfdb%(8),dmfdb%(8),p%(8)
  19044. DIM z_smfdb%(8),z_dmfdb%(8),z_p%(8),q_dmfdb%(8)
  19045. DIM punkte_x%(p_max%),punkte_y%(p_max%),punkte_def|(p_max%),buffer%(p_max%/2)
  19046. DIM x_meta%(127),y_meta%(127),punkte_def1|(32)
  19047. ARRAYFILL punkte_def1|(),1
  19048. DIM bezier_x&(33),bezier_y&(33)
  19049. DIM m$(87)
  19050. DIM mk%(60,2)
  19051. DIM m_square%(5)
  19052. DIM z_editor%(32)
  19053. DIM z_ascii%(224),z_kerning&(224*16),z_daten&(224*280),z_pair&(224),z_pair|(224),z_pair_daten|(2000)
  19054. DIM sx1%(9),sy1%(9),sx2%(9),sy2%(9),sp1(9),sp2(9)
  19055. DIM zeilen_buffer$(60)
  19056. rette$=SPACE$(32000)
  19057. pfad$=SPACE$(80)
  19058. kerning_string$=SPACE$(60)
  19059. pfad_pic$=SPACE$(80)
  19060. pfad_img$=SPACE$(80)
  19061. pfad_vek$=SPACE$(80)
  19062. pfad_vek_root$=SPACE$(80)
  19063. pfad_cvg$=SPACE$(80)
  19064. pfad_fnt$=SPACE$(80)
  19065. pfad_cfn$=SPACE$(80)
  19066. default_font$=SPACE$(10)
  19067. programm$=SPACE$(10)
  19068. programm_font$=SPACE$(10)
  19069. test_datei$=SPACE$(10)
  19070. object$=SPACE$(80)
  19071. p_init1$=SPACE$(40)
  19072. p_init2$=SPACE$(40)
  19073. abc$="CutOut Test"
  19074. ma$="M"
  19075. da$="D"
  19076. cutout_font$="CUTOUTOFN"
  19077. calamus_font_grafik$=MKI$(159)+MKI$(15)+MKI$(1)+SPACE$(320)
  19078. ok$="OK"
  19079. ein_space$=" "
  19080. x_y$="X|Y"
  19081. erster$="1. "
  19082. zweiter$="2. "
  19083. help_on$="ON "
  19084. help_off$="OFF"
  19085. vek$="VEK"
  19086. cvg$="CVG"
  19087. img$="IMG"
  19088. plt$="PLT"
  19089. calamus$="CALAMUS"
  19090. cutout$="CutOut"
  19091. ' ****************************************************************************
  19092. OPEN "I",#1,"SYS\LANGUAGE.DRV"
  19093. LINE INPUT #1,pd_menu$
  19094. LINE INPUT #1,pd_datei$
  19095. LINE INPUT #1,pd_editieren$
  19096. LINE INPUT #1,pd_fenster$
  19097. LINE INPUT #1,pd_schnittpunkt$
  19098. LINE INPUT #1,pd_bogen$
  19099. LINE INPUT #1,pd_text$
  19100. LINE INPUT #1,pd_zeicheneditor$
  19101. LINE INPUT #1,pd_extra$
  19102. LINE INPUT #1,pd_quit$
  19103. '
  19104. LINE INPUT #1,pd_optionen$
  19105. LINE INPUT #1,pd_marker_anzeigen$
  19106. LINE INPUT #1,pd_tangenten_anzeigen$
  19107. LINE INPUT #1,pd_fangradius_klein$
  19108. LINE INPUT #1,pd_polygon_modus$
  19109. LINE INPUT #1,pd_schnittpunkt_genau$
  19110. LINE INPUT #1,pd_koordinaten$
  19111. LINE INPUT #1,pd_element_selektieren$
  19112. LINE INPUT #1,pd_polygon_selektieren$
  19113. LINE INPUT #1,pd_warnmeldungen$
  19114. LINE INPUT #1,pd_skaliere_alles$
  19115. LINE INPUT #1,pd_punkte_nivellieren$
  19116. LINE INPUT #1,pd_tangente$
  19117. LINE INPUT #1,pd_plotflaeche$
  19118. LINE INPUT #1,pd_bezier_step_aendern$
  19119. LINE INPUT #1,pd_plotter_einstellung$
  19120. LINE INPUT #1,pd_kosten_faktor$
  19121. LINE INPUT #1,pd_pfad_sichern$
  19122. '
  19123. LINE INPUT #1,pd_figur$
  19124. LINE INPUT #1,pd_rechteck$
  19125. LINE INPUT #1,pd_n_eck$
  19126. LINE INPUT #1,pd_polygon_outline$
  19127. LINE INPUT #1,pd_aequidistante$
  19128. LINE INPUT #1,pd_frame$
  19129. LINE INPUT #1,pd_polygone_ausrichten$
  19130. LINE INPUT #1,pd_polygone_zentrieren$
  19131. LINE INPUT #1,pd_polygone_vereinen$
  19132. LINE INPUT #1,pd_polygone_fuellen$
  19133. LINE INPUT #1,pd_einzelne_punkte_loeschen$
  19134. '
  19135. LINE INPUT #1,pd_linie$
  19136. LINE INPUT #1,pd_bezier_vektor$
  19137. LINE INPUT #1,pd_bezier_einfuegen$
  19138. LINE INPUT #1,pd_tausche_bezier_vektor$
  19139. LINE INPUT #1,pd_knacken$
  19140. LINE INPUT #1,pd_trimmen$
  19141. LINE INPUT #1,pd_lot$
  19142. LINE INPUT #1,pd_verlaengern$
  19143. LINE INPUT #1,pd_teilen$
  19144. LINE INPUT #1,pd_messen$
  19145. LINE INPUT #1,pd_schnittp_2er$
  19146. LINE INPUT #1,pd_schnittp_n$
  19147. '
  19148. LINE INPUT #1,pd_effekt$
  19149. LINE INPUT #1,pd_parameter_schraffur$
  19150. LINE INPUT #1,pd_polygon_schraffieren$
  19151. LINE INPUT #1,pd_alles_schraffieren$
  19152. LINE INPUT #1,pd_schatten$
  19153. LINE INPUT #1,pd_einpassen$
  19154. LINE INPUT #1,pd_kugel$
  19155. '
  19156. LINE INPUT #1,lade$
  19157. LINE INPUT #1,sichere$
  19158. LINE INPUT #1,fuege_ein$
  19159. LINE INPUT #1,vektor$
  19160. LINE INPUT #1,macro$
  19161. LINE INPUT #1,daten$
  19162. LINE INPUT #1,zeichensatz$
  19163. LINE INPUT #1,kein$
  19164. LINE INPUT #1,keine$
  19165. LINE INPUT #1,ja_nein$
  19166. LINE INPUT #1,waehle$
  19167. LINE INPUT #1,fehler$
  19168. LINE INPUT #1,scannen$
  19169. LINE INPUT #1,pre_view$
  19170. LINE INPUT #1,ascii_importieren$
  19171. LINE INPUT #1,ascii_exportieren$
  19172. LINE INPUT #1,schriftblock$
  19173. LINE INPUT #1,radius_zu$
  19174. LINE INPUT #1,winkel_zu$
  19175. LINE INPUT #1,leider$
  19176. LINE INPUT #1,winkel_einstellen$
  19177. LINE INPUT #1,spiegelachse$
  19178. LINE INPUT #1,lupe_mal$
  19179. LINE INPUT #1,fensterbereich$
  19180. LINE INPUT #1,drehzentrum$
  19181. LINE INPUT #1,ordner_exist$
  19182. LINE INPUT #1,kein_leer$
  19183. LINE INPUT #1,suche_schnittpunkte$
  19184. LINE INPUT #1,gleiches_polygon$
  19185. LINE INPUT #1,bezugs$
  19186. LINE INPUT #1,zentriere$
  19187. LINE INPUT #1,huellkurve$
  19188. LINE INPUT #1,huellkurve1$
  19189. LINE INPUT #1,berechne$
  19190. LINE INPUT #1,rechte_taste$
  19191. LINE INPUT #1,endpunkt$
  19192. LINE INPUT #1,lot_an$
  19193. LINE INPUT #1,noname$
  19194. LINE INPUT #1,symbol$
  19195. LINE INPUT #1,orginal_fenster$
  19196. LINE INPUT #1,dmc_font$
  19197. LINE INPUT #1,bild_datei_zu$
  19198. LINE INPUT #1,stad_laden$
  19199. LINE INPUT #1,plotter_ist_off$
  19200. LINE INPUT #1,plot_datei$
  19201. LINE INPUT #1,kein_treiber$
  19202. LINE INPUT #1,schnittstelle_auf$
  19203. LINE INPUT #1,polygone_vereinen$
  19204. LINE INPUT #1,loesche_einzelne$
  19205. LINE INPUT #1,quelle$
  19206. LINE INPUT #1,ziel$
  19207. LINE INPUT #1,nivelliere$
  19208. LINE INPUT #1,alle_daten_l$
  19209. LINE INPUT #1,ganzer_zeichensatz$
  19210. LINE INPUT #1,font_daten_loeschen$
  19211. LINE INPUT #1,zeichen_matrix$
  19212. LINE INPUT #1,datei_existiert$
  19213. LINE INPUT #1,datei_ueberschreiben$
  19214. LINE INPUT #1,glaetten_mit$
  19215. LINE INPUT #1,gerade_bezier$
  19216. LINE INPUT #1,glaetten$
  19217. LINE INPUT #1,bereich$
  19218. LINE INPUT #1,path$
  19219. LINE INPUT #1,help_mittelpunkt$
  19220. LINE INPUT #1,help_radius$
  19221. LINE INPUT #1,help_position$
  19222. LINE INPUT #1,help_startwinkel$
  19223. LINE INPUT #1,help_endwinkel$
  19224. LINE INPUT #1,help_polygon$
  19225. LINE INPUT #1,help_punkt$
  19226. LINE INPUT #1,help_linie$
  19227. LINE INPUT #1,help_element$
  19228. LINE INPUT #1,help_verrund$
  19229. LINE INPUT #1,help_loesche$
  19230. LINE INPUT #1,help_trenn$
  19231. LINE INPUT #1,help_move$
  19232. LINE INPUT #1,help_sel$
  19233. LINE INPUT #1,help_move_window$
  19234. LINE INPUT #1,help_rahmen$
  19235. LINE INPUT #1,help_edit$
  19236. LINE INPUT #1,help_bezier$
  19237. LINE INPUT #1,help_status$
  19238. LINE INPUT #1,help_ortho$
  19239. LINE INPUT #1,help_grid$
  19240. LINE INPUT #1,help_free$
  19241. LINE INPUT #1,help_snap$
  19242. LINE INPUT #1,help_editor$
  19243. LINE INPUT #1,help_pfad$
  19244. CLOSE #1
  19245. ' ****************************************************************************
  19246. integer%=VARPTR(punkte_x%(1))-VARPTR(punkte_x%(0))  ! Länge in Bytes Integer
  19247. '
  19248. z_editor%(0)=2048                                   ! Top      Line   Y
  19249. z_editor%(1)=3072                                   ! Ascent   Line   Y
  19250. z_editor%(2)=6144                                   ! Half     Line   Y
  19251. z_editor%(3)=11264                                  ! Base     Line   Y
  19252. z_editor%(4)=13952                                  ! Descent  Line   Y
  19253. z_editor%(5)=14336                                  ! Bottom   Line   Y
  19254. '
  19255. z_editor%(6)=0                                      ! Matrix   links  X
  19256. z_editor%(7)=16384                                  ! Matrix   rechts X
  19257. z_editor%(8)=1280                                   ! Kerning  links  X
  19258. z_editor%(9)=1280                                   ! Kerning  links  X
  19259. z_editor%(10)=1280                                  ! Kerning  links  X
  19260. z_editor%(11)=1280                                  ! Kerning  links  X
  19261. z_editor%(12)=1280                                  ! Kerning  links  X
  19262. z_editor%(13)=1280                                  ! Kerning  links  X
  19263. z_editor%(14)=1280                                  ! Kerning  links  X
  19264. z_editor%(15)=1280                                  ! Kerning  links  X
  19265. z_editor%(16)=15104                                 ! Kerning  rechts X
  19266. z_editor%(17)=15104                                 ! Kerning  rechts X
  19267. z_editor%(18)=15104                                 ! Kerning  rechts X
  19268. z_editor%(19)=15104                                 ! Kerning  rechts X
  19269. z_editor%(20)=15104                                 ! Kerning  rechts X
  19270. z_editor%(21)=15104                                 ! Kerning  rechts X
  19271. z_editor%(22)=15104                                 ! Kerning  rechts X
  19272. z_editor%(23)=15104                                 ! Kerning  rechts X
  19273. z_editor%(24)=z_editor%(0)                          ! Kerning         Y
  19274. z_editor%(25)=(z_editor%(5)-z_editor%(0))/8         ! Kerning         Y
  19275. z_editor%(26)=z_editor%(24)+z_editor%(25)           ! Kerning         Y
  19276. z_editor%(27)=z_editor%(26)+z_editor%(25)           ! Kerning         Y
  19277. z_editor%(28)=z_editor%(27)+z_editor%(25)           ! Kerning         Y
  19278. z_editor%(29)=z_editor%(28)+z_editor%(25)           ! Kerning         Y
  19279. z_editor%(30)=z_editor%(29)+z_editor%(25)           ! Kerning         Y
  19280. z_editor%(31)=z_editor%(30)+z_editor%(25)           ! Kerning         Y
  19281. z_editor%(32)=0                                     ! Matrix oben     Y
  19282. '
  19283. ' ******************************************************************************
  19284. ' *                                                                            *
  19285. ' *                             MENU INITIALISIERUNG                           *
  19286. ' *                                                                            *
  19287. ' ******************************************************************************
  19288. '
  19289. BMOVE V:serien_nummer$,V:serien_nummer,8
  19290. BMOVE V:serien_nummer_vergleich$,V:serien_nummer_vergleich,8
  19291. regist_nr%=serien_nummer_vergleich
  19292. IF serien_nummer<>(serien_nummer_vergleich XOR magic%)
  19293.   PRINT "SORRY HACKER"
  19294.   PAUSE 300
  19295.   SYSTEM
  19296. ENDIF
  19297. INLINE zasm_ptr%,4136
  19298. INLINE pack_img%,958
  19299. INLINE calc_bezier%,1050
  19300. INLINE p_num%,360
  19301. INLINE find_line%,356
  19302. INLINE kontour%,216
  19303. INLINE staddec%,184
  19304. INLINE imgdec%,228
  19305. INLINE findexcept%,52
  19306. INLINE findpointexcept%,70
  19307. mfang$=MKI$(7)+MKI$(7)+MKI$(1)+MKI$(0)+MKI$(1)
  19308. mfang$=mfang$+MKI$(&X1111111111111110)
  19309. mfang$=mfang$+MKI$(&X1111111111111110)
  19310. mfang$=mfang$+MKI$(&X1100001110000110)
  19311. mfang$=mfang$+MKI$(&X1100001110000110)
  19312. mfang$=mfang$+MKI$(&X1100001110000110)
  19313. mfang$=mfang$+MKI$(&X1100001110000110)
  19314. mfang$=mfang$+MKI$(&X1111110001111110)
  19315. mfang$=mfang$+MKI$(&X1111110001111110)
  19316. mfang$=mfang$+MKI$(&X1111110001111110)
  19317. mfang$=mfang$+MKI$(&X1100001110000110)
  19318. mfang$=mfang$+MKI$(&X1100001110000110)
  19319. mfang$=mfang$+MKI$(&X1100001110000110)
  19320. mfang$=mfang$+MKI$(&X1100001110000110)
  19321. mfang$=mfang$+MKI$(&X1111111111111110)
  19322. mfang$=mfang$+MKI$(&X1111111111111110)
  19323. mfang$=mfang$+MKI$(&X0)
  19324. '
  19325. mfang$=mfang$+MKI$(&X1111111111111110)
  19326. mfang$=mfang$+MKI$(&X1000000100000010)
  19327. mfang$=mfang$+MKI$(&X1000000100000010)
  19328. mfang$=mfang$+MKI$(&X1000000100000010)
  19329. mfang$=mfang$+MKI$(&X1000000100000010)
  19330. mfang$=mfang$+MKI$(&X1000000100000010)
  19331. mfang$=mfang$+MKI$(&X1000000000000010)
  19332. mfang$=mfang$+MKI$(&X1111110001111110)
  19333. mfang$=mfang$+MKI$(&X1000000000000010)
  19334. mfang$=mfang$+MKI$(&X1000000100000010)
  19335. mfang$=mfang$+MKI$(&X1000000100000010)
  19336. mfang$=mfang$+MKI$(&X1000000100000010)
  19337. mfang$=mfang$+MKI$(&X1000000100000010)
  19338. mfang$=mfang$+MKI$(&X1000000100000010)
  19339. mfang$=mfang$+MKI$(&X1111111111111110)
  19340. mfang$=mfang$+MKI$(&X0)
  19341. '
  19342. mfang_klein$=MKI$(7)+MKI$(7)+MKI$(1)+MKI$(0)+MKI$(1)
  19343. mfang_klein$=mfang_klein$+MKI$(&X0)
  19344. mfang_klein$=mfang_klein$+MKI$(&X0)
  19345. mfang_klein$=mfang_klein$+MKI$(&X11111111111000)
  19346. mfang_klein$=mfang_klein$+MKI$(&X11111111111000)
  19347. mfang_klein$=mfang_klein$+MKI$(&X11001110011000)
  19348. mfang_klein$=mfang_klein$+MKI$(&X11001110011000)
  19349. mfang_klein$=mfang_klein$+MKI$(&X11110001111000)
  19350. mfang_klein$=mfang_klein$+MKI$(&X11110001111000)
  19351. mfang_klein$=mfang_klein$+MKI$(&X11110001111000)
  19352. mfang_klein$=mfang_klein$+MKI$(&X11001110011000)
  19353. mfang_klein$=mfang_klein$+MKI$(&X11001110011000)
  19354. mfang_klein$=mfang_klein$+MKI$(&X11111111111000)
  19355. mfang_klein$=mfang_klein$+MKI$(&X11111111111000)
  19356. mfang_klein$=mfang_klein$+MKI$(&X0)
  19357. mfang_klein$=mfang_klein$+MKI$(&X0)
  19358. mfang_klein$=mfang_klein$+MKI$(&X0)
  19359. '
  19360. mfang_klein$=mfang_klein$+MKI$(&X0)
  19361. mfang_klein$=mfang_klein$+MKI$(&X0)
  19362. mfang_klein$=mfang_klein$+MKI$(&X0)
  19363. mfang_klein$=mfang_klein$+MKI$(&X1111111110000)
  19364. mfang_klein$=mfang_klein$+MKI$(&X1000100010000)
  19365. mfang_klein$=mfang_klein$+MKI$(&X1000100010000)
  19366. mfang_klein$=mfang_klein$+MKI$(&X1000000010000)
  19367. mfang_klein$=mfang_klein$+MKI$(&X1110001110000)
  19368. mfang_klein$=mfang_klein$+MKI$(&X1000000010000)
  19369. mfang_klein$=mfang_klein$+MKI$(&X1000100010000)
  19370. mfang_klein$=mfang_klein$+MKI$(&X1000100010000)
  19371. mfang_klein$=mfang_klein$+MKI$(&X1111111110000)
  19372. mfang_klein$=mfang_klein$+MKI$(&X0)
  19373. mfang_klein$=mfang_klein$+MKI$(&X0)
  19374. mfang_klein$=mfang_klein$+MKI$(&X0)
  19375. mfang_klein$=mfang_klein$+MKI$(&X0)
  19376. '
  19377. mdaten$=MKI$(7)+MKI$(7)+MKI$(1)+MKI$(0)+MKI$(1)
  19378. mdaten$=mdaten$+MKI$(&X1110000000)
  19379. mdaten$=mdaten$+MKI$(&X1110000000)
  19380. mdaten$=mdaten$+MKI$(&X1110000000)
  19381. mdaten$=mdaten$+MKI$(&X1110000000)
  19382. mdaten$=mdaten$+MKI$(&X1110000000)
  19383. mdaten$=mdaten$+MKI$(&X1110000000)
  19384. mdaten$=mdaten$+MKI$(&X1111110001111110)
  19385. mdaten$=mdaten$+MKI$(&X1111110001111110)
  19386. mdaten$=mdaten$+MKI$(&X1111110001111110)
  19387. mdaten$=mdaten$+MKI$(&X1110000000)
  19388. mdaten$=mdaten$+MKI$(&X1110000000)
  19389. mdaten$=mdaten$+MKI$(&X1110000000)
  19390. mdaten$=mdaten$+MKI$(&X1110000000)
  19391. mdaten$=mdaten$+MKI$(&X1110000000)
  19392. mdaten$=mdaten$+MKI$(&X1110000000)
  19393. mdaten$=mdaten$+MKI$(&X0)
  19394. '
  19395. mdaten$=mdaten$+MKI$(&X100000000)
  19396. mdaten$=mdaten$+MKI$(&X100000000)
  19397. mdaten$=mdaten$+MKI$(&X100000000)
  19398. mdaten$=mdaten$+MKI$(&X100000000)
  19399. mdaten$=mdaten$+MKI$(&X100000000)
  19400. mdaten$=mdaten$+MKI$(&X100000000)
  19401. mdaten$=mdaten$+MKI$(&X0)
  19402. mdaten$=mdaten$+MKI$(&X1111110001111110)
  19403. mdaten$=mdaten$+MKI$(&X0)
  19404. mdaten$=mdaten$+MKI$(&X100000000)
  19405. mdaten$=mdaten$+MKI$(&X100000000)
  19406. mdaten$=mdaten$+MKI$(&X100000000)
  19407. mdaten$=mdaten$+MKI$(&X100000000)
  19408. mdaten$=mdaten$+MKI$(&X100000000)
  19409. mdaten$=mdaten$+MKI$(&X100000000)
  19410. mdaten$=mdaten$+MKI$(&X0)
  19411. '
  19412. schwer$=MKI$(7)+MKI$(7)+MKI$(-1)+MKI$(0)+MKI$(1)
  19413. schwer$=schwer$+MKI$(&X0)                     !
  19414. schwer$=schwer$+MKI$(&X0)
  19415. schwer$=schwer$+MKI$(&X11111000000)           !
  19416. schwer$=schwer$+MKI$(&X11111000000)
  19417. schwer$=schwer$+MKI$(&X1100111110000)         !
  19418. schwer$=schwer$+MKI$(&X1100111110000)
  19419. schwer$=schwer$+MKI$(&X10000111111000)        !
  19420. schwer$=schwer$+MKI$(&X10000111111000)
  19421. schwer$=schwer$+MKI$(&X10000111111000)        !
  19422. schwer$=schwer$+MKI$(&X10000111111000)
  19423. schwer$=schwer$+MKI$(&X100000111111100)       !
  19424. schwer$=schwer$+MKI$(&X100000111111100)
  19425. schwer$=schwer$+MKI$(&X100000111111100)       !
  19426. schwer$=schwer$+MKI$(&X100000111111100)
  19427. schwer$=schwer$+MKI$(&X111111011111100)       !!
  19428. schwer$=schwer$+MKI$(&X111111011111100)
  19429. schwer$=schwer$+MKI$(&X111111100000100)       !
  19430. schwer$=schwer$+MKI$(&X111111100000100)
  19431. schwer$=schwer$+MKI$(&X111111100000100)       !
  19432. schwer$=schwer$+MKI$(&X111111100000100)
  19433. schwer$=schwer$+MKI$(&X11111100001000)        !
  19434. schwer$=schwer$+MKI$(&X11111100001000)
  19435. schwer$=schwer$+MKI$(&X11111100001000)        !
  19436. schwer$=schwer$+MKI$(&X11111100001000)
  19437. schwer$=schwer$+MKI$(&X1111100110000)         !
  19438. schwer$=schwer$+MKI$(&X1111100110000)
  19439. schwer$=schwer$+MKI$(&X11111000000)           !
  19440. schwer$=schwer$+MKI$(&X11111000000)
  19441. schwer$=schwer$+MKI$(&X0)                     !
  19442. schwer$=schwer$+MKI$(&X0)
  19443. schwer$=schwer$+MKI$(&X0)                     !
  19444. schwer$=schwer$+MKI$(&X0)
  19445. pfad_read
  19446. reset
  19447. RESERVE -64*1024
  19448. DIM work%((FRE(0)-80*1024)/4)
  19449. daten_ptr%=V:work%(0)
  19450. work_space%=DIM?(work%())*4
  19451. KEYPAD 8
  19452. ~RSRC_LOAD("SYS\CUTOUT.RSC")
  19453. ~RSRC_GADDR(0,tree00&,tree0_adr%)
  19454. ~RSRC_GADDR(0,tree01&,tree1_adr%)
  19455. ~RSRC_GADDR(0,tree02&,tree2_adr%)
  19456. ~RSRC_GADDR(0,tree03&,tree3_adr%)
  19457. ~RSRC_GADDR(0,tree04&,tree4_adr%)
  19458. ~RSRC_GADDR(0,tree05&,tree5_adr%)
  19459. ~RSRC_GADDR(0,tree06&,tree6_adr%)
  19460. ~RSRC_GADDR(0,tree07&,tree7_adr%)
  19461. ~RSRC_GADDR(0,tree08&,tree8_adr%)
  19462. ~RSRC_GADDR(0,tree09&,tree9_adr%)
  19463. ~RSRC_GADDR(0,tree10&,tree10_adr%)
  19464. ~RSRC_GADDR(0,tree11&,tree11_adr%)
  19465. ~RSRC_GADDR(0,tree12&,tree12_adr%)
  19466. ~RSRC_GADDR(0,tree13&,tree13_adr%)
  19467. ~RSRC_GADDR(0,tree14&,tree14_adr%)
  19468. ~RSRC_GADDR(0,tree15&,tree15_adr%)
  19469. ~RSRC_GADDR(0,tree16&,tree16_adr%)
  19470. ~RSRC_GADDR(0,tree17&,tree17_adr%)
  19471. ~RSRC_GADDR(0,tree18&,tree18_adr%)
  19472. ~RSRC_GADDR(0,tree19&,tree19_adr%)
  19473. ~RSRC_GADDR(0,tree20&,tree20_adr%)
  19474. ~RSRC_GADDR(0,tree21&,tree21_adr%)
  19475. ~RSRC_GADDR(0,tree22&,tree22_adr%)
  19476. ~RSRC_GADDR(0,tree23&,tree23_adr%)
  19477. ~RSRC_GADDR(0,tree24&,tree24_adr%)
  19478. ~RSRC_GADDR(0,tree25&,tree25_adr%)
  19479. ~RSRC_GADDR(0,tree26&,tree26_adr%)
  19480. ~RSRC_GADDR(0,tree27&,tree27_adr%)
  19481. ~RSRC_GADDR(0,tree28&,tree28_adr%)
  19482. ~RSRC_GADDR(0,tree29&,tree29_adr%)
  19483. ~RSRC_GADDR(0,tree30&,tree30_adr%)
  19484. ~RSRC_GADDR(0,tree31&,tree31_adr%)
  19485. ~RSRC_GADDR(0,tree32&,tree32_adr%)
  19486. ~RSRC_GADDR(0,tree33&,tree33_adr%)
  19487. ~RSRC_GADDR(0,tree34&,tree34_adr%)
  19488. ~RSRC_GADDR(0,tree35&,tree35_adr%)
  19489. ~RSRC_GADDR(0,tree36&,tree36_adr%)
  19490. ~RSRC_GADDR(0,tree37&,tree37_adr%)
  19491. ~RSRC_GADDR(0,tree38&,tree38_adr%)
  19492. ~RSRC_GADDR(0,tree39&,tree39_adr%)
  19493. ~RSRC_GADDR(0,tree40&,tree40_adr%)
  19494. ~RSRC_GADDR(0,tree41&,tree41_adr%)
  19495. ~FORM_CENTER(tree6_adr%)
  19496. ~FORM_CENTER(tree7_adr%)
  19497. ~FORM_CENTER(tree8_adr%)
  19498. ~FORM_CENTER(tree10_adr%)
  19499. ~FORM_CENTER(tree11_adr%)
  19500. ~FORM_CENTER(tree12_adr%)
  19501. ~FORM_CENTER(tree13_adr%)
  19502. ~FORM_CENTER(tree14_adr%)
  19503. ~FORM_CENTER(tree15_adr%)
  19504. ~FORM_CENTER(tree16_adr%)
  19505. ~FORM_CENTER(tree17_adr%)
  19506. ~FORM_CENTER(tree18_adr%)
  19507. ~FORM_CENTER(tree19_adr%)
  19508. ~FORM_CENTER(tree20_adr%)
  19509. ~FORM_CENTER(tree21_adr%)
  19510. ~FORM_CENTER(tree22_adr%)
  19511. ~FORM_CENTER(tree23_adr%)
  19512. ~FORM_CENTER(tree24_adr%)
  19513. ~FORM_CENTER(tree26_adr%)
  19514. ~FORM_CENTER(tree27_adr%)
  19515. ~FORM_CENTER(tree28_adr%)
  19516. ~FORM_CENTER(tree29_adr%)
  19517. ~FORM_CENTER(tree30_adr%)
  19518. ~FORM_CENTER(tree31_adr%)
  19519. ~FORM_CENTER(tree32_adr%)
  19520. ~FORM_CENTER(tree33_adr%)
  19521. ~FORM_CENTER(tree35_adr%)
  19522. ~FORM_CENTER(tree36_adr%)
  19523. ~FORM_CENTER(tree37_adr%)
  19524. ~FORM_CENTER(tree38_adr%)
  19525. ~FORM_CENTER(tree39_adr%)
  19526. ~FORM_CENTER(tree40_adr%)
  19527. ~FORM_CENTER(tree41_adr%)
  19528. xt6&=DPEEK(tree6_adr%+16)
  19529. yt6&=DPEEK(tree6_adr%+18)
  19530. bt6&=DPEEK(tree6_adr%+20)
  19531. ht6&=DPEEK(tree6_adr%+22)
  19532. xt7&=DPEEK(tree7_adr%+16)
  19533. yt7&=DPEEK(tree7_adr%+18)
  19534. bt7&=DPEEK(tree7_adr%+20)
  19535. ht7&=DPEEK(tree7_adr%+22)
  19536. xt8&=DPEEK(tree8_adr%+16)
  19537. yt8&=DPEEK(tree8_adr%+18)
  19538. bt8&=DPEEK(tree8_adr%+20)
  19539. ht8&=DPEEK(tree8_adr%+22)
  19540. xt10&=DPEEK(tree10_adr%+16)
  19541. yt10&=DPEEK(tree10_adr%+18)
  19542. bt10&=DPEEK(tree10_adr%+20)
  19543. ht10&=DPEEK(tree10_adr%+22)
  19544. xt11&=DPEEK(tree11_adr%+16)
  19545. yt11&=DPEEK(tree11_adr%+18)
  19546. bt11&=DPEEK(tree11_adr%+20)
  19547. ht11&=DPEEK(tree11_adr%+22)
  19548. xt12&=DPEEK(tree12_adr%+16)
  19549. yt12&=DPEEK(tree12_adr%+18)
  19550. bt12&=DPEEK(tree12_adr%+20)
  19551. ht12&=DPEEK(tree12_adr%+22)
  19552. xt13&=DPEEK(tree13_adr%+16)
  19553. yt13&=DPEEK(tree13_adr%+18)
  19554. bt13&=DPEEK(tree13_adr%+20)
  19555. ht13&=DPEEK(tree13_adr%+22)
  19556. xt14&=DPEEK(tree14_adr%+16)
  19557. yt14&=DPEEK(tree14_adr%+18)
  19558. bt14&=DPEEK(tree14_adr%+20)
  19559. ht14&=DPEEK(tree14_adr%+22)
  19560. xt15&=DPEEK(tree15_adr%+16)
  19561. yt15&=DPEEK(tree15_adr%+18)
  19562. bt15&=DPEEK(tree15_adr%+20)
  19563. ht15&=DPEEK(tree15_adr%+22)
  19564. xt16&=DPEEK(tree16_adr%+16)
  19565. yt16&=DPEEK(tree16_adr%+18)
  19566. bt16&=DPEEK(tree16_adr%+20)
  19567. ht16&=DPEEK(tree16_adr%+22)
  19568. xt17&=DPEEK(tree17_adr%+16)
  19569. yt17&=DPEEK(tree17_adr%+18)
  19570. bt17&=DPEEK(tree17_adr%+20)
  19571. ht17&=DPEEK(tree17_adr%+22)
  19572. xt18&=DPEEK(tree18_adr%+16)
  19573. yt18&=DPEEK(tree18_adr%+18)
  19574. bt18&=DPEEK(tree18_adr%+20)
  19575. ht18&=DPEEK(tree18_adr%+22)
  19576. xt19&=DPEEK(tree19_adr%+16)
  19577. yt19&=DPEEK(tree19_adr%+18)
  19578. bt19&=DPEEK(tree19_adr%+20)
  19579. ht19&=DPEEK(tree19_adr%+22)
  19580. xt20&=DPEEK(tree20_adr%+16)
  19581. yt20&=DPEEK(tree20_adr%+18)
  19582. bt20&=DPEEK(tree20_adr%+20)
  19583. ht20&=DPEEK(tree20_adr%+22)
  19584. xt21&=DPEEK(tree21_adr%+16)
  19585. yt21&=DPEEK(tree21_adr%+18)
  19586. bt21&=DPEEK(tree21_adr%+20)
  19587. ht21&=DPEEK(tree21_adr%+22)
  19588. xt22&=DPEEK(tree22_adr%+16)
  19589. yt22&=DPEEK(tree22_adr%+18)
  19590. bt22&=DPEEK(tree22_adr%+20)
  19591. ht22&=DPEEK(tree22_adr%+22)
  19592. xt23&=DPEEK(tree23_adr%+16)
  19593. yt23&=DPEEK(tree23_adr%+18)
  19594. bt23&=DPEEK(tree23_adr%+20)
  19595. ht23&=DPEEK(tree23_adr%+22)
  19596. DPOKE tree24_adr%+16,DPEEK(tree24_adr%+16)+200
  19597. xt24&=DPEEK(tree24_adr%+16)
  19598. yt24&=DPEEK(tree24_adr%+18)
  19599. bt24&=DPEEK(tree24_adr%+20)
  19600. ht24&=DPEEK(tree24_adr%+22)
  19601. xt26&=DPEEK(tree26_adr%+16)
  19602. yt26&=DPEEK(tree26_adr%+18)
  19603. bt26&=DPEEK(tree26_adr%+20)
  19604. ht26&=DPEEK(tree26_adr%+22)
  19605. xt27&=DPEEK(tree27_adr%+16)
  19606. yt27&=DPEEK(tree27_adr%+18)
  19607. bt27&=DPEEK(tree27_adr%+20)
  19608. ht27&=DPEEK(tree27_adr%+22)
  19609. xt28&=DPEEK(tree28_adr%+16)
  19610. yt28&=DPEEK(tree28_adr%+18)
  19611. bt28&=DPEEK(tree28_adr%+20)
  19612. ht28&=DPEEK(tree28_adr%+22)
  19613. xt29&=DPEEK(tree29_adr%+16)
  19614. yt29&=DPEEK(tree29_adr%+18)
  19615. bt29&=DPEEK(tree29_adr%+20)
  19616. ht29&=DPEEK(tree29_adr%+22)
  19617. xt30&=DPEEK(tree30_adr%+16)
  19618. yt30&=DPEEK(tree30_adr%+18)
  19619. bt30&=DPEEK(tree30_adr%+20)
  19620. ht30&=DPEEK(tree30_adr%+22)
  19621. xt31&=DPEEK(tree31_adr%+16)
  19622. yt31&=DPEEK(tree31_adr%+18)
  19623. bt31&=DPEEK(tree31_adr%+20)
  19624. ht31&=DPEEK(tree31_adr%+22)
  19625. xt32&=DPEEK(tree32_adr%+16)
  19626. yt32&=DPEEK(tree32_adr%+18)
  19627. bt32&=DPEEK(tree32_adr%+20)
  19628. ht32&=DPEEK(tree32_adr%+22)
  19629. xt35&=DPEEK(tree35_adr%+16)
  19630. yt35&=DPEEK(tree35_adr%+18)
  19631. bt35&=DPEEK(tree35_adr%+20)
  19632. ht35&=DPEEK(tree35_adr%+22)
  19633. xt33&=DPEEK(tree33_adr%+16)
  19634. yt33&=DPEEK(tree33_adr%+18)
  19635. bt33&=DPEEK(tree33_adr%+20)
  19636. ht33&=DPEEK(tree33_adr%+22)
  19637. xt36&=DPEEK(tree36_adr%+16)
  19638. yt36&=DPEEK(tree36_adr%+18)
  19639. bt36&=DPEEK(tree36_adr%+20)
  19640. ht36&=DPEEK(tree36_adr%+22)
  19641. xt37&=DPEEK(tree37_adr%+16)
  19642. yt37&=DPEEK(tree37_adr%+18)
  19643. bt37&=DPEEK(tree37_adr%+20)
  19644. ht37&=DPEEK(tree37_adr%+22)
  19645. xt38&=DPEEK(tree38_adr%+16)
  19646. yt38&=DPEEK(tree38_adr%+18)
  19647. bt38&=DPEEK(tree38_adr%+20)
  19648. ht38&=DPEEK(tree38_adr%+22)
  19649. xt39&=DPEEK(tree39_adr%+16)
  19650. yt39&=DPEEK(tree39_adr%+18)
  19651. bt39&=DPEEK(tree39_adr%+20)
  19652. ht39&=DPEEK(tree39_adr%+22)
  19653. xt40&=DPEEK(tree40_adr%+16)
  19654. yt40&=DPEEK(tree40_adr%+18)
  19655. bt40&=DPEEK(tree40_adr%+20)
  19656. ht40&=DPEEK(tree40_adr%+22)
  19657. xt41&=DPEEK(tree41_adr%+16)
  19658. yt41&=DPEEK(tree41_adr%+18)
  19659. bt41&=DPEEK(tree41_adr%+20)
  19660. ht41&=DPEEK(tree41_adr%+22)
  19661. bt_output&=OB_W(tree40_adr%,pl100&)
  19662. CHAR{{OB_SPEC(tree6_adr%,t_hoehe&)}}=STR$(INT(zeichen_hoehe%/100))
  19663. CHAR{{OB_SPEC(tree7_adr%,zabs&)}}=STR$(INT(zeilen_abstand_prozent%))
  19664. CHAR{{OB_SPEC(tree9_adr%,z_char&)}}=CHR$(z_ascii_old%+32)
  19665. CHAR{{OB_SPEC(tree8_adr%,string_text&)}}=abc$
  19666. CHAR{{OB_SPEC(tree12_adr%,bstep&)}}=STR$(b_vari/100)
  19667. CHAR{{OB_SPEC(tree13_adr%,punkte&)}}=STR$(pointer%)
  19668. CHAR{{OB_SPEC(tree13_adr%,rest&)}}=STR$(p_max%-pointer%)
  19669. CHAR{{OB_SPEC(tree13_adr%,version&)}}=revision$
  19670. CHAR{{OB_SPEC(tree14_adr%,rx1&)}}=STR$(folie_x%)
  19671. CHAR{{OB_SPEC(tree14_adr%,ry1&)}}=STR$(folie_y%)
  19672. CHAR{{OB_SPEC(tree14_adr%,rx2&)}}=STR$(folie_x2%)
  19673. CHAR{{OB_SPEC(tree14_adr%,ry2&)}}=STR$(folie_y2%)
  19674. CHAR{{OB_SPEC(tree14_adr%,rx3&)}}=STR$(folie_x3%)
  19675. CHAR{{OB_SPEC(tree14_adr%,ry3&)}}=STR$(folie_y3%)
  19676. CHAR{{OB_SPEC(tree15_adr%,p_init1&)}}=p_init1$
  19677. CHAR{{OB_SPEC(tree15_adr%,p_init2&)}}=p_init2$
  19678. CHAR{{OB_SPEC(tree15_adr%,overcut&)}}=STR$(overcut|/10)
  19679. CHAR{{OB_SPEC(tree15_adr%,ma&)}}=ma$
  19680. CHAR{{OB_SPEC(tree15_adr%,da&)}}=da$
  19681. CHAR{{OB_SPEC(tree17_adr%,outl&)}}="3.0"
  19682. CHAR{{OB_SPEC(tree18_adr%,schraffd&)}}=STR$(schraff_dist/100)
  19683. CHAR{{OB_SPEC(tree18_adr%,schraffi&)}}=STR$(schraff_inc/100)
  19684. CHAR{{OB_SPEC(tree18_adr%,schraffw&)}}=STR$(schraff_winkel)
  19685. CHAR{{OB_SPEC(tree18_adr%,schrafix&)}}=STR$(schraff_fix_abst)
  19686. CHAR{{OB_SPEC(tree21_adr%,t_step&)}}=STR$(bit_count_max|)
  19687. CHAR{{OB_SPEC(tree21_adr%,t_gerade&)}}=STR$(geraden_fehler|)
  19688. CHAR{{OB_SPEC(tree21_adr%,t_schmutz&)}}=STR$(schmutz_filter%)
  19689. CHAR{{OB_SPEC(tree21_adr%,bschwelle&)}}=STR$(lange_gerade%/100)
  19690. CHAR{{OB_SPEC(tree21_adr%,knickwinkel&)}}=STR$(CINT(DEG(knick_winkel_max)))
  19691. CHAR{{OB_SPEC(tree21_adr%,bogen_max&)}}=STR$(CINT(DEG(bogen_max*2)))
  19692. CHAR{{OB_SPEC(tree21_adr%,abweichung_gerade&)}}=STR$(abweichung_gerade%/100)
  19693. CHAR{{OB_SPEC(tree22_adr%,scann_x&)}}="1664"
  19694. CHAR{{OB_SPEC(tree22_adr%,scann_y&)}}="800"
  19695. CHAR{{OB_SPEC(tree23_adr%,radius&)}}="10"
  19696. CHAR{{OB_SPEC(tree27_adr%,calamus_nr&)}}=STR$(calamus_nr%)
  19697. CHAR{{OB_SPEC(tree29_adr%,kostfak&)}}=STR$(kostfak)
  19698. CHAR{{OB_SPEC(tree31_adr%,anz_rot&)}}="3"
  19699. CHAR{{OB_SPEC(tree31_adr%,phi_rot&)}}="90"
  19700. OB_STATE(tree15_adr%,rs232&)=state_rs232&+16
  19701. OB_STATE(tree15_adr%,cent&)=state_rs232& XOR 1+16
  19702. OB_STATE(tree15_adr%,hp&)=state_hp&+16
  19703. OB_STATE(tree15_adr%,gp&)=state_hp& XOR 1+16
  19704. OB_STATE(tree26_adr%,absolut&)=absolut!+18
  19705. OB_STATE(tree26_adr%,relativ&)=absolut!+17
  19706. OB_STATE(tree26_adr%,polar&)=absolut!+17
  19707. IF gdu=1
  19708.   OB_STATE(tree15_adr%,gdu01&)=17
  19709. ELSE
  19710.   IF gdu=2.5
  19711.     OB_STATE(tree15_adr%,gdu025&)=17
  19712.   ELSE
  19713.     IF gdu=5
  19714.       OB_STATE(tree15_adr%,gdu05&)=17
  19715.     ELSE
  19716.       OB_STATE(tree15_adr%,gdu1&)=17
  19717.     ENDIF
  19718.   ENDIF
  19719. ENDIF
  19720. OB_STATE(tree1_adr%,lock&)=1
  19721. IF mimaki!
  19722.   OB_STATE(tree15_adr%,gdu05&)=17
  19723.   OB_STATE(tree15_adr%,gdu01&)=8
  19724.   OB_STATE(tree15_adr%,gdu025&)=8
  19725.   OB_STATE(tree15_adr%,gdu1&)=8
  19726.   OB_STATE(tree15_adr%,rs232&)=17
  19727.   OB_STATE(tree15_adr%,mgl&)=17
  19728.   OB_STATE(tree15_adr%,cent&)=16
  19729.   OB_STATE(tree15_adr%,hp&)=16
  19730.   OB_STATE(tree15_adr%,gp&)=16
  19731. ELSE
  19732.   OB_STATE(tree15_adr%,mgl&)=8
  19733. ENDIF
  19734. ~WIND_GET(0,4)                                   ! get desk size
  19735. BMOVE GINTOUT+2,tree0_adr%+16,8                  ! set into rsc
  19736. BMOVE GINTOUT+2,tree1_adr%+16,8                  ! set into rsc
  19737. BMOVE GINTOUT+2,tree2_adr%+16,8                  ! set into rsc
  19738. BMOVE GINTOUT+2,tree3_adr%+16,8                  ! set into rsc
  19739. BMOVE GINTOUT+2,tree4_adr%+16,8                  ! set into rsc
  19740. BMOVE GINTOUT+2,tree5_adr%+16,8                  ! set into rsc
  19741. BMOVE GINTOUT+2,tree9_adr%+16,8                  ! set into rsc
  19742. BMOVE GINTOUT+2,tree25_adr%+16,8                 ! set into rsc
  19743. BMOVE GINTOUT+2,tree34_adr%+16,8                 ! set into rsc
  19744. wind_newdesk(tree0_adr%,0)                       ! install  Datei Baum
  19745. IF default_font$<>""
  19746.   datei$=ein_space$
  19747.   IF EXIST(pfad_fnt$+"\"+default_font$)
  19748.     load_font(pfad_fnt$+"\"+default_font$)
  19749.     programm_font$=LEFT$(default_font$,LEN(default_font$)-4)
  19750.   ELSE
  19751.     make_new_font(-1)
  19752.   ENDIF
  19753. ELSE
  19754.   make_new_font(-1)
  19755. ENDIF
  19756. m$(0)=""
  19757. m$(1)="  CUTOUT"
  19758. m$(2)="--------------------"
  19759. m$(3)=CHR$(2)
  19760. m$(4)=CHR$(3)
  19761. m$(5)=CHR$(4)
  19762. m$(6)=CHR$(5)
  19763. m$(7)=CHR$(6)
  19764. m$(8)=CHR$(7)
  19765. m$(9)=CHR$(8)
  19766. m$(10)=""
  19767. m$(11)=pd_menu$
  19768. m$(12)=pd_datei$
  19769. m$(13)=pd_editieren$
  19770. m$(14)=pd_fenster$
  19771. m$(15)=pd_schnittpunkt$
  19772. m$(16)=pd_bogen$
  19773. m$(17)="----------------------"
  19774. m$(18)=pd_text$
  19775. m$(19)=pd_zeicheneditor$
  19776. m$(20)=m$(17)
  19777. m$(21)=pd_extra$
  19778. m$(22)=m$(17)
  19779. m$(23)=pd_quit$
  19780. m$(24)=""
  19781. m$(25)=pd_optionen$
  19782. m$(26)=pd_marker_anzeigen$
  19783. m$(27)=pd_tangenten_anzeigen$
  19784. m$(28)=pd_fangradius_klein$
  19785. m$(29)=pd_polygon_modus$
  19786. m$(30)=pd_schnittpunkt_genau$
  19787. m$(31)=pd_koordinaten$
  19788. m$(32)=pd_element_selektieren$
  19789. m$(33)=pd_polygon_selektieren$
  19790. m$(34)=pd_warnmeldungen$
  19791. m$(35)="---------------------------"
  19792. m$(36)=pd_skaliere_alles$
  19793. m$(37)=m$(35)
  19794. m$(38)=pd_punkte_nivellieren$
  19795. m$(39)=pd_tangente$
  19796. m$(40)=m$(35)
  19797. m$(41)=pd_plotflaeche$
  19798. m$(42)=pd_bezier_step_aendern$
  19799. m$(43)=pd_plotter_einstellung$
  19800. m$(44)=pd_kosten_faktor$
  19801. m$(45)=pd_pfad_sichern$
  19802. m$(46)=""
  19803. m$(47)=pd_figur$
  19804. m$(48)=pd_rechteck$
  19805. m$(49)=pd_n_eck$
  19806. m$(50)=pd_polygon_outline$
  19807. m$(51)=pd_aequidistante$
  19808. m$(52)=pd_frame$
  19809. m$(53)="---------------------------"
  19810. m$(54)=pd_polygone_ausrichten$
  19811. m$(55)=pd_polygone_zentrieren$
  19812. m$(56)=pd_polygone_vereinen$
  19813. m$(57)=pd_polygone_fuellen$
  19814. m$(58)=m$(53)
  19815. m$(59)=pd_einzelne_punkte_loeschen$
  19816. m$(60)=""
  19817. m$(61)=pd_linie$
  19818. m$(62)=pd_bezier_vektor$
  19819. m$(63)=pd_bezier_einfuegen$
  19820. m$(64)=pd_tausche_bezier_vektor$
  19821. m$(65)=m$(53)
  19822. m$(66)=pd_knacken$
  19823. m$(67)=pd_trimmen$
  19824. m$(68)=pd_lot$
  19825. m$(69)=pd_verlaengern$
  19826. m$(70)=pd_teilen$
  19827. m$(71)=pd_messen$
  19828. m$(72)=m$(53)
  19829. m$(73)=pd_schnittp_2er$
  19830. m$(74)=pd_schnittp_n$
  19831. m$(75)=""
  19832. m$(76)=pd_effekt$
  19833. m$(77)=pd_parameter_schraffur$
  19834. m$(78)=pd_polygon_schraffieren$
  19835. m$(79)=pd_alles_schraffieren$
  19836. m$(80)="------------------------"
  19837. m$(81)=pd_schatten$
  19838. m$(82)=pd_einpassen$
  19839. m$(83)=m$(80)
  19840. m$(84)=pd_kugel$
  19841. m$(85)=""
  19842. m$(86)=""
  19843. MENU m$()
  19844. IF fangklein!
  19845.   MENU 28,1
  19846. ENDIF
  19847. IF polygonmode!
  19848.   MENU 29,1
  19849. ENDIF
  19850. IF warn!
  19851.   MENU 34,1
  19852. ENDIF
  19853. CLIP 0,0,639,399 OFFSET 0,0
  19854. DEFTEXT 1,0,0,6
  19855. COLOR 1
  19856. TEXT 400,7,"Zoom X:"
  19857. TEXT 400,15,"Zoom Y:"
  19858. TEXT 540,7,"X:"
  19859. TEXT 540,15,"Y:"
  19860. DEFTEXT 1,0,0,4
  19861. TEXT 624,7,"mm"
  19862. TEXT 624,15,"mm"
  19863. LINE 536,0,536,20
  19864. LINE 396,0,396,20
  19865. '
  19866. ~FORM_DIAL(3,0,0,0,0,0,0,desk_breite&,desk_hoehe&)                !redraw all
  19867. '
  19868. layer!=FALSE
  19869. zoom=1
  19870. x_layer%=folie_x%
  19871. y_layer%=folie_y%
  19872. x_layero%=x_layer%
  19873. y_layero%=y_layer%
  19874. res_x%=x_layer%
  19875. res_y%=y_layer%
  19876. x_offset&=0
  19877. y_offset&=0
  19878. res_x_old%=x_layer%
  19879. res_y_old%=y_layer%
  19880. x_offset_old&=0
  19881. y_offset_old&=0
  19882. pointer%=0
  19883. get_desktop
  19884. scrb_old&=scrb&
  19885. scrh_old&=scrh&
  19886. CLOSEW 1
  19887. programm$=noname$
  19888. INT{WINDTAB+2}=&X111111000000
  19889. INT{WINDTAB+4}=scrx&
  19890. INT{WINDTAB+6}=scry&
  19891. INT{WINDTAB+8}=scrb&
  19892. INT{WINDTAB+10}=scrh&
  19893. help_titel
  19894. OPENW 1
  19895. calc_slid
  19896. ~WIND_GET(1,4,x_win&,y_win&,b_window&,h_window&)
  19897. neues_polygon!=TRUE
  19898. do_redraw
  19899. DEFMOUSE 3
  19900. p_zoom(zoom*100,zoom*100)
  19901. CHAR{{OB_SPEC(tree14_adr%,rx1&)}}=STR$(x_layer%)
  19902. CHAR{{OB_SPEC(tree14_adr%,ry1&)}}=STR$(y_layer%)
  19903. ' test_vollbild
  19904. '
  19905. ~OBJC_OFFSET(tree28_adr%,gtprewin&,gtxv&,gtyv&)
  19906. gtxv&=gtxv&-x_win&+1
  19907. gtyv&=gtyv&-y_win&+1
  19908. '
  19909. ON MENU MESSAGE GOSUB message
  19910. ON MENU BUTTON 1,1,1 GOSUB button
  19911. ON MENU GOSUB menu
  19912. ON MENU KEY GOSUB key
  19913. ' ON ERROR GOSUB fehler
  19914. '
  19915. '
  19916. REPEAT
  19917.   ON MENU
  19918. UNTIL end!
  19919. '
  19920. IF modified!
  19921.   IF pointer%>0
  19922.     ALERT 3,"| "+sichere$+daten$,1,ja_nein$,i%
  19923.     IF i%=1
  19924.       @save_vektor
  19925.     ENDIF
  19926.   ENDIF
  19927. ENDIF
  19928. '
  19929. ' Bei fertigen Programmen hier nur QUIT
  19930. '
  19931. reset
  19932. ~WIND_GET(0,10)
  19933. IF DPEEK(GINTOUT+2)
  19934.   ALERT 1,"Accessories",1,"Close|Quit",i%
  19935.   IF i%=2
  19936.     QUIT
  19937.   ENDIF
  19938.   REPEAT
  19939.     ~WIND_GET(0,10)
  19940.   UNTIL DPEEK(GINTOUT+2)=0
  19941. ENDIF
  19942. RESERVE                                ! XBIOS(2)-HIMEM+FRE(0)-16384
  19943. '
  19944. PROCEDURE fehler
  19945.   ALERT 1,fehler$,1,leider$,i%
  19946.   '  RESUME NEXT
  19947. RETURN
  19948. '
  19949. '
  19950. PROCEDURE get_undo
  19951.   LOCAL dp%
  19952.   dp%=daten_ptr%
  19953.   IF (pointer%*9+1<work_space%) AND (NOT layer_geladen!)
  19954.     LONG{dp%}=pointer%
  19955.     ADD dp%,4
  19956.     undo!=TRUE
  19957.     BMOVE VARPTR(punkte_x%(0)),dp%,pointer%*4
  19958.     ADD dp%,pointer%*4
  19959.     BMOVE VARPTR(punkte_y%(0)),dp%,pointer%*4
  19960.     ADD dp%,pointer%*4
  19961.     BMOVE VARPTR(punkte_def|(0)),dp%,pointer%
  19962.     undo!=TRUE
  19963.   ELSE
  19964.     undo!=FALSE
  19965.   ENDIF
  19966. RETURN
  19967. '
  19968. PROCEDURE put_undo
  19969.   LOCAL dp%
  19970.   IF undo!
  19971.     dp%=daten_ptr%
  19972.     pointer%=LONG{dp%}
  19973.     ADD dp%,4
  19974.     BMOVE dp%,VARPTR(punkte_x%(0)),pointer%*4
  19975.     ADD dp%,pointer%*4
  19976.     BMOVE dp%,VARPTR(punkte_y%(0)),pointer%*4
  19977.     ADD dp%,pointer%*4
  19978.     BMOVE dp%,VARPTR(punkte_def|(0)),pointer%
  19979.     undo!=FALSE
  19980.     do_redraw
  19981.   ENDIF
  19982. RETURN
  19983. '
  19984. PROCEDURE output_drucker
  19985.   LOCAL handle&,x_resi&,y_resi&,z_old
  19986.   IF GDOS?
  19987.     ERASE work%()
  19988.     IF FRE(0)>250000
  19989.       RESERVE -250000
  19990.       handle&=V_OPNWK(21)
  19991.       IF handle&<>0
  19992.         V~H=handle&
  19993.         x_resi&=INTOUT(0)
  19994.         y_resi&=INTOUT(1)
  19995.         ~V_CLRWK()
  19996.         z_old=zoom
  19997.         zoom=4
  19998.         redraw_ohne(0)
  19999.         ~V_UPDWK()
  20000.         ~V_CLSWK()
  20001.         zoom=z_old
  20002.       ELSE
  20003.       ENDIF
  20004.       RESERVE
  20005.     ELSE
  20006.     ENDIF
  20007.     DIM work%((FRE(0)-80*1024)/4)
  20008.     daten_ptr%=V:work%(0)
  20009.     work_space%=DIM?(work%())*4
  20010.   ELSE
  20011.   ENDIF
  20012. RETURN
  20013. '
  20014. '
  20015. PROCEDURE scan_a1
  20016.   ALERT 3,"| SCAN Hochformat: ",1,"A3|A2|A1",i%
  20017.   SELECT i%
  20018.   CASE 1
  20019.     scann_x%=INT(17*400/8)       !17
  20020.     scann_y%=INT(12*400)        !12
  20021.   CASE 2
  20022.     scann_x%=INT(25*400/8)
  20023.     scann_y%=INT(17*400)
  20024.   CASE 3
  20025.     scann_x%=INT(34*400/8)
  20026.     scann_y%=INT(25*400)
  20027.   ENDSELECT
  20028.   scan_graphtec(3,400,0,0,scann_x%,scann_y%)
  20029. RETURN
  20030. '
  20031. PROCEDURE scan_graphtec(device&,dpi&,x_0%,y_0%,bytes_x%,lines_y%)
  20032.   LOCAL command_bytes&,bytes_to_transfer%,transfer_dir&
  20033.   LOCAL y_offset%,block&,command_bytes&,bytes_to_transfer%
  20034.   ' IF FN test_unit_ready(device&)=0
  20035.   set_graphtec_window(device&,dpi&,x_0%,y_0%,bytes_x%,lines_y%)
  20036.   command_bytes&=10
  20037.   block&=&HFFFF DIV bytes_x% DIV 3
  20038.   bytes_to_transfer%=bytes_x%*block&*3
  20039.   transfer_dir&=0                               ! LESEN
  20040.   command|(0)=&H28
  20041.   command|(1)=0
  20042.   command|(2)=0
  20043.   command|(3)=0
  20044.   command|(4)=0
  20045.   command|(5)=0
  20046.   command|(6)=0
  20047.   command|(7)=0
  20048.   command|(8)=0
  20049.   command|(9)=0
  20050.   WORD{V:command|(7)}=block&
  20051.   '
  20052.   anzahl&=lines_y% DIV block&
  20053.   rest&=lines_y% MOD block&
  20054.   y_offset%=0
  20055.   FOR i%=1 TO anzahl&
  20056.     $c+
  20057.     fehler%=C:scsi%(device&,command_bytes&,bytes_to_transfer%,transfer_dir&,L:V:command|(0),L:daten_ptr%+y_offset%)
  20058.     $c-
  20059.     ADD y_offset%,block&*bytes_x%
  20060.   NEXT i%
  20061.   IF rest&<>0
  20062.     bytes_to_transfer%=bytes_x%*rest&*3
  20063.     WORD{V:command|(7)}=rest&
  20064.     $c+
  20065.     fehler%=C:scsi%(device&,command_bytes&,bytes_to_transfer%,transfer_dir&,L:V:command|(0),L:daten_ptr%+y_offset%)
  20066.     $c-
  20067.   ENDIF
  20068.   '  status&=AND(CARD(fehler%),&X11110)
  20069.   ' message&=CARD(SWAP(fehler%))
  20070.   layer!=TRUE
  20071.   layer_geladen!=TRUE
  20072.   voll_bild!=TRUE
  20073.   outlined!=FALSE
  20074.   do_change_aufloesung(bytes_x%*8,lines_y%,1)
  20075.   init_bit_blit
  20076.   p_zoom(zoom*100,zoom*100)
  20077.   do_redraw
  20078.   ' ENDIF
  20079. RETURN
  20080. '
  20081. PROCEDURE set_graphtec_window(device&,dpi&,x_0%,y_0%,bytes_x%,lines_y%)
  20082.   LOCAL command_bytes&,bytes_to_transfer%,transfer_dir&
  20083.   command_bytes&=10
  20084.   bytes_to_transfer%=53
  20085.   transfer_dir&=1                               ! LESEN (1=SCHREIBEN)
  20086.   command|(0)=&H24
  20087.   command|(1)=0
  20088.   command|(2)=0
  20089.   command|(3)=0
  20090.   command|(4)=0
  20091.   command|(5)=0
  20092.   command|(6)=0
  20093.   command|(7)=0
  20094.   command|(8)=bytes_to_transfer%
  20095.   command|(9)=0
  20096.   FOR i%=0 TO 6
  20097.     buffer|(i%)=0
  20098.   NEXT i%
  20099.   FOR i%=38 TO 47
  20100.     buffer|(i%)=0
  20101.   NEXT i%
  20102.   buffer|(7)=45                         ! Window Descriptor Block Length
  20103.   buffer|(8)=0                          ! Window ID
  20104.   buffer|(9)=0                          ! reserved
  20105.   WORD{V:buffer|(10)}=dpi&              ! X resolution
  20106.   WORD{V:buffer|(12)}=dpi&              ! Y resolution
  20107.   LONG{V:buffer|(14)}=x_0%*24           ! X Upper Left
  20108.   LONG{V:buffer|(18)}=y_0%*3            ! Y Upper Left
  20109.   LONG{V:buffer|(22)}=bytes_x%*24       ! Width
  20110.   LONG{V:buffer|(26)}=lines_y%*3        ! Length
  20111.   buffer|(30)=0                         ! reserved
  20112.   buffer|(31)=0                         ! Kontrast
  20113.   buffer|(32)=0                         ! reserved
  20114.   buffer|(33)=0                         ! Image composition
  20115.   buffer|(34)=1                         ! Bits per Pixel
  20116.   buffer|(35)=0                         ! reserved
  20117.   buffer|(36)=0                         ! reserved
  20118.   buffer|(37)=0                         ! Reverse Image
  20119.   buffer|(48)=2                         ! Cell length
  20120.   buffer|(49)=5                         ! Function Code
  20121.   buffer|(50)=1                         ! Fine Line
  20122.   buffer|(51)=2                         ! Cell length
  20123.   buffer|(52)=6                         ! Function Code
  20124.   buffer|(53)=1                         ! Scann Speed
  20125.   $c+
  20126.   fehler%=C:scsi%(device&,command_bytes&,bytes_to_transfer%,transfer_dir&,L:V:command|(0),L:V:buffer|(0))
  20127.   $c-
  20128. RETURN
  20129. '
  20130. FUNCTION test_unit_ready(device&)
  20131.   command_bytes&=6
  20132.   bytes_to_transfer%=1
  20133.   transfer_dir&=0                               ! LESEN (1=SCHREIBEN)
  20134.   command|(0)=0
  20135.   command|(1)=0
  20136.   command|(2)=0
  20137.   command|(3)=0
  20138.   command|(4)=bytes_to_transfer%
  20139.   command|(5)=0
  20140.   '
  20141.   $c+
  20142.   fehler%=C:scsi%(device&,command_bytes&,L:bytes_to_transfer%,transfer_dir&,L:V:command|(0),L:V:buffer|(0))
  20143.   $c-
  20144.   status&=AND(CARD(fehler%),&X11110)
  20145.   message&=CARD(SWAP(fehler%))
  20146.   '
  20147.   RETURN status&
  20148. ENDFUNC
  20149. '
  20150. '
  20151. PROCEDURE gt_info(i$)
  20152.   CHAR{{OB_SPEC(tree28_adr%,gtstate&)}}=i$
  20153.   ~OBJC_DRAW(tree28_adr%,gtstate&,8,xt28&,yt28&,bt28&,ht28&)
  20154. RETURN
  20155. '
  20156. PROCEDURE dpi_change(prex0&,prey0&,prex0_min&,prey0_min&)
  20157.   CHAR{{OB_SPEC(tree28_adr%,gtdpi&)}}=STR$(gtdpiv&)
  20158.   ~OBJC_DRAW(tree28_adr%,gtdpi&,8,xt28&,yt28&,bt28&,ht28&)
  20159.   CHAR{{OB_SPEC(tree28_adr%,gtb&)}}=STR$(AND(INT(gtbv&/25.4*gtdpiv&),&HFFF8))
  20160.   CHAR{{OB_SPEC(tree28_adr%,gth&)}}=STR$(AND(INT(gthv&/25.4*gtdpiv&),&HFFF8))
  20161.   ~OBJC_DRAW(tree28_adr%,gtb&,8,xt28&,yt28&,bt28&,ht28&)
  20162.   ~OBJC_DRAW(tree28_adr%,gth&,8,xt28&,yt28&,bt28&,ht28&)
  20163.   CHAR{{OB_SPEC(tree28_adr%,gtx&)}}=STR$(AND(INT((prex0&-prex0_min&)/25.4*gtdpiv&),&HFFF8))
  20164.   CHAR{{OB_SPEC(tree28_adr%,gty&)}}=STR$(AND(INT((prey0&-prey0_min&)/25.4*gtdpiv&),&HFFF8))
  20165.   ~OBJC_DRAW(tree28_adr%,gtx&,8,xt28&,yt28&,bt28&,ht28&)
  20166.   ~OBJC_DRAW(tree28_adr%,gty&,8,xt28&,yt28&,bt28&,ht28&)
  20167. RETURN
  20168. '
  20169. PROCEDURE gt_6000
  20170.   LOCAL prex0&,prey0&,prex0_min&,prey0_min&,x_changed&,y_changed&
  20171.   LOCAL prex&,prey&,gthalbton&
  20172.   DEFMOUSE 0
  20173.   SETMOUSE xt28&+240,yt28&+310,0
  20174.   CLIP 0,0,desk_breite&,desk_hoehe& OFFSET x_win&,y_win&
  20175.   ~OBJC_OFFSET(tree28_adr%,gtprewin&,prex&,prey&)
  20176.   gthalbton&=1
  20177.   prex0&=prex&-x_win&+1
  20178.   prey0&=prey&-y_win&+1
  20179.   prex0_min&=prex0&
  20180.   prey0_min&=prey0&
  20181.   prex0_max&=prex0&+217
  20182.   prey0_max&=prey0&+297
  20183.   prex0&=gtxv&
  20184.   prey0&=gtyv&
  20185.   '
  20186.   CHAR{{OB_SPEC(tree28_adr%,gtx&)}}=STR$(AND(INT((prex0&-prex0_min&)/25.4*gtdpiv&),&HFFF8))
  20187.   CHAR{{OB_SPEC(tree28_adr%,gty&)}}=STR$(AND(INT((prey0&-prey0_min&)/25.4*gtdpiv&),&HFFF8))
  20188.   CHAR{{OB_SPEC(tree28_adr%,gtb&)}}=STR$(AND(INT(gtbv&/25.4*gtdpiv&),&HFFF8))
  20189.   CHAR{{OB_SPEC(tree28_adr%,gth&)}}=STR$(AND(INT(gthv&/25.4*gtdpiv&),&HFFF8))
  20190.   CHAR{{OB_SPEC(tree28_adr%,gtdpi&)}}=STR$(gtdpiv&)
  20191.   CHAR{{OB_SPEC(tree28_adr%,gtstate&)}}=waehle$
  20192.   GET xt28&-4,yt28&-4,xt28&+bt28&+4,yt28&+ht28&+4,rette$
  20193.   ~OBJC_DRAW(tree28_adr%,0,8,xt28&,yt28&,bt28&,ht28&)
  20194.   smfdb%(0)=V:prebuf$
  20195.   smfdb%(1)=208
  20196.   smfdb%(2)=292
  20197.   smfdb%(3)=smfdb%(1)/16
  20198.   smfdb%(5)=1
  20199.   dmfdb%(0)=XBIOS(3)
  20200.   dmfdb%(1)=desk_breite&
  20201.   dmfdb%(2)=desk_hoehe&
  20202.   dmfdb%(3)=dmfdb%(1)/16
  20203.   dmfdb%(5)=1
  20204.   p%(0)=0
  20205.   p%(1)=0
  20206.   p%(2)=207
  20207.   p%(3)=291
  20208.   p%(4)=prex&+1
  20209.   p%(5)=prey&+1
  20210.   p%(6)=p%(4)+207
  20211.   p%(7)=p%(5)+291
  20212.   p%(8)=3
  20213.   BITBLT smfdb%(),dmfdb%(),p%()
  20214.   DEFFILL 1,1,1
  20215.   GRAPHMODE 3
  20216.   BOX prex0&,prey0&,prex0&+gtbv&,prey0&+gthv&
  20217.   PBOX prex0&+gtbv&-8,prey0&+gthv&-8,prex0&+gtbv&,prey0&+gthv&
  20218.   REPEAT
  20219.     DO
  20220.       ~FORM_DO(tree28_adr%,0)
  20221.       IF INT{GINTOUT}>0 AND INT{GINTOUT}<100
  20222.         exit_button&=DPEEK(GINTOUT)
  20223.         OB_STATE(tree28_adr%,exit_button&)=0
  20224.         IF exit_button&<>gtprewin&
  20225.           ~OBJC_DRAW(tree28_adr%,exit_button&,8,xt28&,yt28&,bt28&,ht28&)
  20226.         ENDIF
  20227.       ENDIF
  20228.       SELECT exit_button&
  20229.       CASE gtdpimin&
  20230.         IF gtdpiv&>100
  20231.           IF gtdpiv&=480
  20232.             gtdpiv&=400
  20233.           ELSE
  20234.             IF gtdpiv&=600
  20235.               gtdpiv&=480
  20236.             ELSE
  20237.               SUB gtdpiv&,100
  20238.             ENDIF
  20239.           ENDIF
  20240.           dpi_change(prex0&,prey0&,prex0_min&,prey0_min&)
  20241.         ENDIF
  20242.       CASE gtdpiplu&
  20243.         IF gtdpiv&<600
  20244.           IF gtdpiv&=400
  20245.             gtdpiv&=480
  20246.           ELSE
  20247.             IF gtdpiv&=480
  20248.               gtdpiv&=600
  20249.             ELSE
  20250.               ADD gtdpiv&,100
  20251.             ENDIF
  20252.           ENDIF
  20253.           dpi_change(prex0&,prey0&,prex0_min&,prey0_min&)
  20254.         ENDIF
  20255.       CASE gtprewin&
  20256.         MOUSE x_mouse%,y_mouse%,taste|
  20257.         IF x_mouse%>prex0&+gtbv&-8 AND x_mouse%<prex0&+gtbv& AND y_mouse%>prey0&+gthv&-8 AND y_mouse%<prey0&+gthv&
  20258.           DEFMOUSE 3
  20259.           REPEAT
  20260.             MOUSE x_mouse%,y_mouse%,taste|
  20261.             IF x_mouse%<>x_mouse_old% OR y_mouse%<>y_mouse_old%
  20262.               BOX prex0&,prey0&,prex0&+gtbv&,prey0&+gthv&
  20263.               PBOX prex0&+gtbv&-8,prey0&+gthv&-8,prex0&+gtbv&,prey0&+gthv&
  20264.               IF x_mouse%-prex0_min&<217 AND x_mouse%-prex0&>16
  20265.                 gtbv&=x_mouse%-prex0&
  20266.                 i%=AND(INT(gtbv&/25.4*gtdpiv&),&HFFF0)
  20267.                 gtbv&=CINT(i%*25.4/gtdpiv&)
  20268.               ENDIF
  20269.               IF y_mouse%-prey0_min&<298 AND y_mouse%-prey0&>16
  20270.                 gthv&=y_mouse%-prey0&
  20271.               ENDIF
  20272.               BOX prex0&,prey0&,prex0&+gtbv&,prey0&+gthv&
  20273.               PBOX prex0&+gtbv&-8,prey0&+gthv&-8,prex0&+gtbv&,prey0&+gthv&
  20274.               SHOWM
  20275.               x_mouse_old%=x_mouse%
  20276.               y_mouse_old%=y_mouse%
  20277.               CHAR{{OB_SPEC(tree28_adr%,gtb&)}}=STR$(AND(INT(gtbv&/25.4*gtdpiv&),&HFFF0))
  20278.               CHAR{{OB_SPEC(tree28_adr%,gth&)}}=STR$(INT(gthv&/25.4*gtdpiv&))
  20279.               ~OBJC_DRAW(tree28_adr%,gtb&,8,xt28&,yt28&,bt28&,ht28&)
  20280.               ~OBJC_DRAW(tree28_adr%,gth&,8,xt28&,yt28&,bt28&,ht28&)
  20281.             ENDIF
  20282.           UNTIL taste|=0
  20283.           DEFMOUSE 0
  20284.         ELSE
  20285.           IF x_mouse%>prex0& AND x_mouse%<prex0&+gtbv& AND y_mouse%>prey0& AND y_mouse%<prey0&+gthv&
  20286.             x_mouse_old%=x_mouse%
  20287.             y_mouse_old%=y_mouse%
  20288.             DEFMOUSE 3
  20289.             REPEAT
  20290.               MOUSE x_mouse%,y_mouse%,taste|
  20291.               IF x_mouse%<>x_mouse_old% OR y_mouse%<>y_mouse_old%
  20292.                 x_changed&=x_mouse%-x_mouse_old%
  20293.                 y_changed&=y_mouse%-y_mouse_old%
  20294.                 BOX prex0&,prey0&,prex0&+gtbv&,prey0&+gthv&
  20295.                 PBOX prex0&+gtbv&-8,prey0&+gthv&-8,prex0&+gtbv&,prey0&+gthv&
  20296.                 IF prex0&+x_changed&>=prex0_min& AND prex0&+x_changed&+gtbv&<prex0_max&
  20297.                   ADD prex0&,x_changed&
  20298.                 ENDIF
  20299.                 IF prey0&+y_changed&>=prey0_min& AND prey0&+y_changed&+gthv&<prey0_max&
  20300.                   ADD prey0&,y_changed&
  20301.                 ENDIF
  20302.                 BOX prex0&,prey0&,prex0&+gtbv&,prey0&+gthv&
  20303.                 PBOX prex0&+gtbv&-8,prey0&+gthv&-8,prex0&+gtbv&,prey0&+gthv&
  20304.                 SHOWM
  20305.                 x_mouse_old%=x_mouse%
  20306.                 y_mouse_old%=y_mouse%
  20307.                 CHAR{{OB_SPEC(tree28_adr%,gtx&)}}=STR$(AND(INT((prex0&-prex0_min&)/25.4*gtdpiv&),&HFFF8))
  20308.                 CHAR{{OB_SPEC(tree28_adr%,gty&)}}=STR$(AND(INT((prey0&-prey0_min&)/25.4*gtdpiv&),&HFFF8))
  20309.                 ~OBJC_DRAW(tree28_adr%,gtx&,8,xt28&,yt28&,bt28&,ht28&)
  20310.                 ~OBJC_DRAW(tree28_adr%,gty&,8,xt28&,yt28&,bt28&,ht28&)
  20311.               ENDIF
  20312.             UNTIL taste|=0
  20313.             DEFMOUSE 0
  20314.           ENDIF
  20315.         ENDIF
  20316.       CASE gtpresca&
  20317.         gt_info(scannen$+pre_view$)
  20318.         HIDEM
  20319.         gt6000%=VARPTR(gt6000$)
  20320.         $C+
  20321.         VOID C:gt6000%(1,50,3,3,gthalbton&,0,0,26,292,L:V:prebuf$,L:V:prebuf$+8000)
  20322.         $C-
  20323.         OUT (2),13
  20324.         trigger_0
  20325.         DEFMOUSE 3
  20326.         SHOWM
  20327.         BOX prex0&,prey0&,prex0&+gtbv&,prey0&+gthv&
  20328.         PBOX prex0&+gtbv&-8,prey0&+gthv&-8,prex0&+gtbv&,prey0&+gthv&
  20329.         smfdb%(0)=V:prebuf$
  20330.         BITBLT smfdb%(),dmfdb%(),p%()
  20331.         BOX prex0&,prey0&,prex0&+gtbv&,prey0&+gthv&
  20332.         PBOX prex0&+gtbv&-8,prey0&+gthv&-8,prex0&+gtbv&,prey0&+gthv&
  20333.         gt_info(waehle$)
  20334.       ENDSELECT
  20335.       EXIT IF exit_button&=gtcancel&
  20336.       EXIT IF exit_button&=gtscan&
  20337.     LOOP
  20338.     IF exit_button&=gtcancel&
  20339.       PUT xt28&-4,yt28&-4,rette$
  20340.       ok!=TRUE
  20341.     ENDIF
  20342.     IF exit_button&=gtscan&
  20343.       IF OB_STATE(tree28_adr%,gthart&)=1
  20344.         gthalbton&=0
  20345.       ELSE
  20346.         IF OB_STATE(tree28_adr%,gtweich&)=1
  20347.           gthalbton&=16
  20348.         ELSE
  20349.           IF OB_STATE(tree28_adr%,gtraster&)=1
  20350.             gthalbton&=32
  20351.           ELSE
  20352.             gthalbton&=1
  20353.           ENDIF
  20354.         ENDIF
  20355.       ENDIF
  20356.       IF OB_STATE(tree28_adr%,gtrot&)=1
  20357.         gtfarbev&=0
  20358.       ELSE
  20359.         IF OB_STATE(tree28_adr%,gtgruen&)=1
  20360.           gtfarbev&=1
  20361.         ELSE
  20362.           IF OB_STATE(tree28_adr%,gtblau&)=1
  20363.             gtfarbev&=2
  20364.           ELSE
  20365.             gtfarbev&=3
  20366.           ENDIF
  20367.         ENDIF
  20368.       ENDIF
  20369.       IF OB_STATE(tree28_adr%,k0&)=1
  20370.         gtkontrav&=0
  20371.       ELSE
  20372.         IF OB_STATE(tree28_adr%,k1&)=1
  20373.           gtkontrav&=1
  20374.         ELSE
  20375.           IF OB_STATE(tree28_adr%,k2&)=1
  20376.             gtkontrav&=2
  20377.           ELSE
  20378.             IF OB_STATE(tree28_adr%,k3&)=1
  20379.               gtkontrav&=3
  20380.             ELSE
  20381.               IF OB_STATE(tree28_adr%,k4&)=1
  20382.                 gtkontrav&=4
  20383.               ELSE
  20384.                 IF OB_STATE(tree28_adr%,k5&)=1
  20385.                   gtkontrav&=5
  20386.                 ELSE
  20387.                   gtkontrav&=6
  20388.                 ENDIF
  20389.               ENDIF
  20390.             ENDIF
  20391.           ENDIF
  20392.         ENDIF
  20393.       ENDIF
  20394.       gt_info(scannen$+bereich$)
  20395.       gtxorig&=CINT(AND(INT((prex0&+2-prex0_min&)/25.4*gtdpiv&),&HFFF8)/8)
  20396.       gtyorig&=CINT((prey0&+2-prey0_min&)/25.4*gtdpiv&)
  20397.       gtxbytes&=CINT(AND(INT(gtbv&/25.4*gtdpiv&),&HFFF0)/8)
  20398.       gtyzeilen&=CINT(gthv&/25.4*gtdpiv&)
  20399.       IF gtxbytes&*(gtyzeilen&+1)<work_space%
  20400.         HIDEM
  20401.         gt6000%=VARPTR(gt6000$)
  20402.         $C+
  20403.         i%=C:gt6000%(0,gtdpiv&,gtfarbev&,gtkontrav&,gthalbton&,gtxorig&,gtyorig&,gtxbytes&,gtyzeilen&,L:daten_ptr%,L:daten_ptr%+work_space%)
  20404.         $C-
  20405.         OUT (2),13
  20406.         trigger_0
  20407.         DEFMOUSE 3
  20408.         SHOWM
  20409.       ELSE
  20410.         i%=-1
  20411.       ENDIF
  20412.       IF i%>=0
  20413.         gt_info(waehle$)
  20414.         PUT xt28&-4,yt28&-4,rette$
  20415.         layer!=TRUE
  20416.         layer_geladen!=TRUE
  20417.         voll_bild!=TRUE
  20418.         outlined!=FALSE
  20419.         do_change_aufloesung(AND(INT(gtbv&/25.4*gtdpiv&),&HFFF0),INT(gthv&/25.4*gtdpiv&),1)
  20420.         init_bit_blit
  20421.         p_zoom(zoom*100,zoom*100)
  20422.         do_redraw
  20423.         ok!=TRUE
  20424.       ELSE
  20425.         FOR i%=1 TO 5
  20426.           gt_info(fehler$)
  20427.           PAUSE 15
  20428.           gt_info("      ")
  20429.           PAUSE 15
  20430.         NEXT i%
  20431.         gt_info(waehle$)
  20432.         ok!=FALSE
  20433.       ENDIF
  20434.     ENDIF
  20435.   UNTIL ok!
  20436.   gtxv&=prex0&
  20437.   gtyv&=prey0&
  20438.   ~WIND_GET(1,4)
  20439.   clip(x_window&,y_window&,b_window&,h_window&,INT{GINTOUT+2},INT{GINTOUT+4})
  20440.   set_clip_offset
  20441.   GRAPHMODE 1
  20442.   DEFFILL 0,0
  20443.   DEFMOUSE 3
  20444.   init_bit_blit
  20445. RETURN
  20446. '
  20447. PROCEDURE set_clip_offset
  20448.   INT{WINDTAB+64}=INT{WINDTAB+64}-x_offset&
  20449.   INT{WINDTAB+66}=INT{WINDTAB+66}-y_offset&
  20450. RETURN
  20451. '
  20452. PROCEDURE helpo(help$)
  20453.   TITLEW #1,ein_space$+help$+ein_space$
  20454.   set_clip_offset
  20455. RETURN
  20456. '
  20457. PROCEDURE help(help$)
  20458.   TITLEW #1,ein_space$+waehle$+help$+ein_space$
  20459.   set_clip_offset
  20460. RETURN
  20461. '
  20462. PROCEDURE help_titel
  20463.   TITLEW #1,ein_space$+pfad_vek$+"\"+programm$+".VEK "
  20464.   set_clip_offset
  20465.   DEFMOUSE 3
  20466.   DEFLINE 1
  20467.   COLOR 1
  20468.   GRAPHMODE 1
  20469.   p_xy_info("X:","Y:",0)
  20470.   SHOWM
  20471.   trigger_0
  20472.   zeit%=TIMER
  20473. RETURN
  20474. '
  20475. PROCEDURE polygon_fill
  20476.   REPEAT
  20477.     DEFMOUSE 0
  20478.     GET xt20&-4,yt20&-4,xt20&+bt20&+4,yt20&+ht20&+4,rette$
  20479.     SETMOUSE xt20&+bt20&/2,yt20&+160,0
  20480.     ~OBJC_DRAW(tree20_adr%,0,8,xt20&,yt20&,bt20&,ht20&)
  20481.     ~FORM_DO(tree20_adr%,0)
  20482.     exit_button&=DPEEK(GINTOUT)
  20483.     OB_STATE(tree20_adr%,exit_button&)=0
  20484.     PUT xt20&-4,yt20&-4,rette$
  20485.     IF OB_STATE(tree20_adr%,fill1&)=1
  20486.       DEFFILL 1,2,1
  20487.     ELSE IF OB_STATE(tree20_adr%,fill2&)=1
  20488.       DEFFILL 1,2,2
  20489.     ELSE IF OB_STATE(tree20_adr%,fill3&)=1
  20490.       DEFFILL 1,2,3
  20491.     ELSE IF OB_STATE(tree20_adr%,fill4&)=1
  20492.       DEFFILL 1,2,4
  20493.     ELSE IF OB_STATE(tree20_adr%,fill5&)=1
  20494.       DEFFILL 1,2,5
  20495.     ELSE IF OB_STATE(tree20_adr%,fill6&)=1
  20496.       DEFFILL 1,2,6
  20497.     ELSE IF OB_STATE(tree20_adr%,fill7&)=1
  20498.       DEFFILL 1,2,8
  20499.     ENDIF
  20500.     DEFMOUSE mdaten$
  20501.     help(help_polygon$)
  20502.     IF exit_button&<>fillcancel&
  20503.       REPEAT
  20504.         trigger_0
  20505.         wait_taste
  20506.         IF taste|<>2
  20507.           FILL x_mouse%,y_mouse%
  20508.         ENDIF
  20509.       UNTIL taste|=2
  20510.     ENDIF
  20511.   UNTIL exit_button&=fillcancel&
  20512.   ~FRE(0)
  20513.   DEFFILL 1,1
  20514.   help_titel
  20515. RETURN
  20516. '
  20517. ' *****************************************************************************
  20518. ' *                            TANGENTE NIVELLIEREN                           *
  20519. ' *                                                                           *
  20520. ' *  VERÄNDERT VAR: Punkte_X%(), Punkte_Y%()                                  *
  20521. ' *                                                                           *
  20522. ' *****************************************************************************
  20523. '
  20524. PROCEDURE do_niv_tangente(found_quelle%,von%,bis%,dreh_x%,dreh_y%)
  20525.   LOCAL phi,strecke
  20526.   dx=SUB(dreh_x%,punkte_x%(found%))
  20527.   dy=SUB(dreh_y%,punkte_y%(found%))
  20528.   strecke=SQR(dx*dx+dy*dy)
  20529.   get_phi(dreh_x%,dreh_y%,punkte_x%(found_quelle%),punkte_y%(found_quelle%),phi)
  20530.   redraw_von_bis(von%,bis%,0)
  20531.   punkte_x%(found%)=CINT(dreh_x%-strecke*COS(phi))
  20532.   punkte_y%(found%)=CINT(dreh_y%-strecke*SIN(phi))
  20533.   redraw_von_bis(von%,bis%,1)
  20534. RETURN
  20535. '
  20536. PROCEDURE tangente_nivellieren
  20537.   LOCAL found_quelle%,quelle_def|
  20538.   LOCAL von%,bis%,f%,dreh_x%,dreh_y%
  20539.   IF pointer%>1
  20540.     show_cursor_fang
  20541.     REPEAT
  20542.       trigger_0
  20543.       GRAPHMODE 1
  20544.       REPEAT
  20545.         wait_taste
  20546.         EXIT IF taste|=2
  20547.         find(x_mouse%*100/zoom,y_mouse%*100/zoom)
  20548.         quelle_def|=punkte_def|(found%)
  20549.       UNTIL (quelle_def|>da| AND quelle_def|<b3|)
  20550.       IF taste|<>2
  20551.         found_quelle%=found%
  20552.         IF quelle_def|=b1|
  20553.           IF punkte_def|(found_quelle%-1)=b3|
  20554.             found%=found_quelle%-2
  20555.             von%=found_quelle%-4
  20556.             bis%=von%+3
  20557.             dreh_x%=punkte_x%(found_quelle%-1)
  20558.             dreh_y%=punkte_y%(found_quelle%-1)
  20559.             do_niv_tangente(found_quelle%,von%,bis%,dreh_x%,dreh_y%)
  20560.           ELSE
  20561.             IF punkte_def|(found_quelle%-1)=da|
  20562.               found%=found_quelle%
  20563.               found_quelle%=found%-2
  20564.               von%=found%-1
  20565.               bis%=von%+3
  20566.               dreh_x%=punkte_x%(found%-1)
  20567.               dreh_y%=punkte_y%(found%-1)
  20568.               do_niv_tangente(found_quelle%,von%,bis%,dreh_x%,dreh_y%)
  20569.             ELSE
  20570.               IF punkte_def|(found_quelle%-1)=ma|
  20571.                 found%=found_quelle%
  20572.                 REPEAT
  20573.                   INC found%
  20574.                 UNTIL punkte_def|(found%)=ma|
  20575.                 DEC found%
  20576.                 IF punkte_def|(found%)=b3|
  20577.                   DEC found%
  20578.                   von%=found%-2
  20579.                   bis%=von%+3
  20580.                   dreh_x%=punkte_x%(found_quelle%-1)
  20581.                   dreh_y%=punkte_y%(found_quelle%-1)
  20582.                   do_niv_tangente(found_quelle%,von%,bis%,dreh_x%,dreh_y%)
  20583.                 ELSE
  20584.                   IF punkte_def|(found%)=da|
  20585.                     f%=found_quelle%
  20586.                     found_quelle%=found%-1
  20587.                     found%=f%
  20588.                     von%=found%-1
  20589.                     bis%=von%+3
  20590.                     dreh_x%=punkte_x%(found_quelle%+1)
  20591.                     dreh_y%=punkte_y%(found_quelle%+1)
  20592.                     do_niv_tangente(found_quelle%,von%,bis%,dreh_x%,dreh_y%)
  20593.                   ENDIF
  20594.                 ENDIF
  20595.               ENDIF
  20596.             ENDIF
  20597.           ENDIF
  20598.         ELSE
  20599.           IF quelle_def|=b2|
  20600.             IF punkte_def|(found_quelle%+2)=b1|
  20601.               found%=found_quelle%+2
  20602.               von%=found_quelle%+1
  20603.               bis%=von%+3
  20604.               dreh_x%=punkte_x%(found_quelle%+1)
  20605.               dreh_y%=punkte_y%(found_quelle%+1)
  20606.               do_niv_tangente(found_quelle%,von%,bis%,dreh_x%,dreh_y%)
  20607.             ELSE
  20608.               IF punkte_def|(found_quelle%+2)=da|
  20609.                 found%=found_quelle%
  20610.                 found_quelle%=found%+2
  20611.                 von%=found%-2
  20612.                 bis%=von%+3
  20613.                 dreh_x%=punkte_x%(found%+1)
  20614.                 dreh_y%=punkte_y%(found%+1)
  20615.                 do_niv_tangente(found_quelle%,von%,bis%,dreh_x%,dreh_y%)
  20616.               ELSE
  20617.                 IF punkte_def|(found_quelle%+2)=ma|
  20618.                   found%=found_quelle%
  20619.                   REPEAT
  20620.                     DEC found%
  20621.                   UNTIL punkte_def|(found%)=ma|
  20622.                   INC found%
  20623.                   IF punkte_def|(found%)=b1|
  20624.                     von%=found%-1
  20625.                     bis%=von%+3
  20626.                     dreh_x%=punkte_x%(found_quelle%+1)
  20627.                     dreh_y%=punkte_y%(found_quelle%+1)
  20628.                     do_niv_tangente(found_quelle%,von%,bis%,dreh_x%,dreh_y%)
  20629.                   ELSE
  20630.                     IF punkte_def|(found%)=da|
  20631.                       f%=found_quelle%
  20632.                       found_quelle%=found%
  20633.                       found%=f%
  20634.                       von%=found%-2
  20635.                       bis%=von%+3
  20636.                       dreh_x%=punkte_x%(found_quelle%-1)
  20637.                       dreh_y%=punkte_y%(found_quelle%-1)
  20638.                       do_niv_tangente(found_quelle%,von%,bis%,dreh_x%,dreh_y%)
  20639.                     ENDIF
  20640.                   ENDIF
  20641.                 ENDIF
  20642.               ENDIF
  20643.             ENDIF
  20644.           ENDIF
  20645.         ENDIF
  20646.       ENDIF
  20647.     UNTIL taste|=2
  20648.     DEFMOUSE 3
  20649.   ENDIF
  20650. RETURN
  20651. '
  20652. ' *****************************************************************************
  20653. ' *                               ASCII Editor                                *
  20654. ' *                                                                           *
  20655. ' *                                                                           *
  20656. ' *                                                                          ' ******************************************************************************
  20657. ' *                                                                            *
  20658. ' *                                   CUTOUT                                   *
  20659. ' *                                                                            *
  20660. ' *                                 27.02.1992                                 *
  20661. ' *                                                                            *
  20662. ' ******************************************************************************
  20663. '
  20664. '
  20665. $B+
  20666. $I-
  20667. INLINE scsi%,933
  20668. DIM buffer|(512*2)
  20669. DIM command|(12)
  20670. ' VAR:
  20671. ' apl_id&=APPL_INIT()
  20672. magic%=14031952
  20673. '
  20674. ' serien_nummer$="REGIST00"
  20675. ' serien_nummer_vergleich$="REGIST11"
  20676. serien_nummer$=MKD$(101)
  20677. serien_nummer_vergleich$=MKD$(101 XOR magic%)
  20678. '
  20679. fang_schnittpunkt|=4
  20680. buffer%=0
  20681. buffer_max%=0
  20682. poly_len%=0
  20683. bits%=0
  20684. punkt_eintrag&=0
  20685. x_start&=0
  20686. y_start&=0
  20687. edi_max&=0
  20688. m=0
  20689. m_neu=0
  20690. bit_count|=0
  20691. pixel!=FALSE
  20692. '
  20693. regist_nr%=0
  20694. revision$="1.59"
  20695. zeit%=TIMER
  20696. calamus_nr%=0
  20697. ortho|=45
  20698. ortho=RAD(ortho|)
  20699. ortho2=ortho/2
  20700. x_win&=0                                         ! Window X pos  aktuell
  20701. y_win&=0                                         ! Window Y pos  aktuell
  20702. x_window&=0                                      ! Window X pos  aktuell
  20703. y_window&=0                                      ! Window Y pos  aktuell
  20704. b_window&=0                                      ! Window Breite aktuell
  20705. h_window&=0                                      ! Window Höhe   aktuell
  20706. ~WIND_GET(0,4,scrx&,scry&,scrb&,scrh&)           ! maximaler Desktop
  20707. wmx%=scrb&-62
  20708. wmy%=scrh&-57+scry&
  20709. desk_breite&=scrb&
  20710. desk_hoehe&=scrh&+scry&
  20711. gross_bildschirm!=FALSE
  20712. IF desk_breite&>640 OR desk_hoehe&>400
  20713.   gross_bildschirm!=TRUE
  20714. ENDIF
  20715. ADD scrx&,42                                     ! Position Window X+Menuleiste
  20716. SUB scrb&,42                                     ! Breite   Window
  20717. scrb_old&=scrb&
  20718. scrh_old&=scrh&
  20719. res_x%=0                                         ! Auflösung x in mm
  20720. res_y%=0                                         ! Auflösung y in mm
  20721. res_x_old%=0
  20722. res_y_old%=0
  20723. x_layer%=0
  20724. y_layer%=0
  20725. x_layero%=0
  20726. y_layero%=0
  20727. x_offset&=0                                      ! Nullpunkt x im Fenster
  20728. y_offset&=0                                      ! Nullpunkt y im Fenster
  20729. x_offset_old&=0
  20730. y_offset_old&=0
  20731. x_mouse%=0
  20732. y_mouse%=0
  20733. x_mouse_old%=0
  20734. y_mouse_old%=0
  20735. x_mouse_0%=0
  20736. y_mouse_0%=0
  20737. objectbox_x0%=0
  20738. objectbox_y0%=0
  20739. objectbox_x1%=0
  20740. objectbox_y1%=0
  20741. grid%=10                                        ! raster mm
  20742. schraff_dist=201
  20743. schraff_inc=0
  20744. schraff_fix_abst=0
  20745. schraff_winkel=0
  20746. schraff_start%=0
  20747. schraff_y_min%=0
  20748. bit_count_max|=6
  20749. geraden_fehler|=1
  20750. lange_gerade%=4000
  20751. schmutz_filter%=20
  20752. knick_winkel_max=RAD(140)
  20753. bogen_max=PI/2/2
  20754. abweichung_gerade%=0.5*100
  20755. last_poly_s%=-1
  20756. last_poly_e%=-1
  20757. taste|=0
  20758. zoom=1
  20759. zoom_old=1
  20760. zoom_100=1
  20761. pointer%=0                                       ! Zeiger auf Punkteliste
  20762. found%=0                                         ! gefundener Punkt bei SNAP
  20763. found_t%=0                                       ! gefundener Kurvenparameter
  20764. schnittpunkt_genau%=16                           ! Zerlegung Bezier in Teile
  20765. anz_schnittpunkte%=0                             ! Anzahl Schnittpunkte
  20766. b_vari=100
  20767. i%=0                                             ! allgemeiner Schleifenzähler
  20768. ii%=0
  20769. iii%=0
  20770. d0%=0
  20771. dx%=0
  20772. dy%=0
  20773. dx=0
  20774. dy=0
  20775. schnitt_laenge=0
  20776. kostfak=1
  20777. gkosten=0
  20778. px0%=0
  20779. py0%=0
  20780. px1%=0
  20781. py1%=0
  20782. px2%=0
  20783. py2%=0
  20784. px3%=0
  20785. py3%=0
  20786. m_square_breite&=&H3000
  20787. m_square_hoehe&=&H3000
  20788. kerning_256|=m_square_breite& DIV 256
  20789. len_pair_daten&=0
  20790. z_hoehe_def%=16384                               ! Höhe des definierten Zsatzes
  20791. z_breite_def%=16384                              ! Breite     "
  20792. zeichen_hoehe%=3000                              ! gewünschte Höhe in 1/100 mm
  20793. versal_def%=0                                    ! Versal     Höhe in 1/100 mm
  20794. z_ascii_scale=zeichen_hoehe%/z_hoehe_def%        ! Scaling
  20795. z_ascii_scale_old=z_ascii_scale                  ! save Scaling
  20796. global_kerning%=1280                             ! globales Kerning
  20797. zeilen_abstand_prozent%=125                      ! relativer Zeilen Abstand
  20798. zeilen_abstand%=zeichen_hoehe%*zeilen_abstand_prozent%/100-zeichen_hoehe%
  20799. z_cursor_x_spalte%=0                             ! Start String
  20800. z_cursor_x%=0                                    ! ASCII Zeichen Cursor X
  20801. z_cursor_y%=0                                    ! ASCII Zeichen Cursor y
  20802. z_cursor_x_old%=0                                ! letztes Zeichen Cursor X
  20803. z_cursor_y_old%=0                                ! letztes Zeichen Cursor y
  20804. z_ascii_old%=0                                   ! letztes Zeichen ASCII+32
  20805. z_satz_pointer%=0                                ! Pointer auf Zeichensatz
  20806. state_rs232&=0                                   ! Centronics aktiv
  20807. state_hp&=0                                      ! HPGL aktiv
  20808. folie_x%=1188                                    ! Folien Grö₧e
  20809. folie_y%=840
  20810. plotter_x_min%=0
  20811. plotter_y_min%=0
  20812. gdu=0                                            ! 100*Plottereinheit
  20813. sel_start%=0
  20814. sel_end%=0
  20815. gtxv&=0
  20816. gtyv&=0
  20817. gtbv&=216
  20818. gthv&=297
  20819. gtdpiv&=300
  20820. gtfarbev&=3
  20821. gtkontrav&=3
  20822. exit_button&=0
  20823. cursor_x&=0
  20824. cursor_y&=0
  20825. ofn_ver|=0
  20826. overcut|=0
  20827. geschlossen%=0
  20828. '
  20829. phi_x_3d=0
  20830. phi_y_3d=0
  20831. a2_3d=0
  20832. '
  20833. daten_ptr%=0
  20834. work_space%=0
  20835. '
  20836. ' CONST:
  20837. '
  20838. IF FRE(0)>4000000
  20839.   p_max%=99999
  20840. ELSE
  20841.   p_max%=60000
  20842. ENDIF
  20843. ma|=0
  20844. da|=1
  20845. b1|=2
  20846. b2|=3
  20847. b3|=4
  20848. ein_drittel=1/3
  20849. fmin=2.225073858507E-307
  20850. fmin1=0.005
  20851. max1=0.995
  20852. pimal2=PI*2
  20853. pihalbe=PI/2
  20854. pidrittel=PI/3
  20855. fang_rad%=8*100                                  ! FANGRADIUS
  20856. p_at%=XBIOS(3)+76                                ! PRINT AT FÜR X,Y
  20857. p_at_zoom%=p_at%-12                              ! PRINT AT FÜR ZOOM
  20858. x_bytes%=(scrb&+42)/8                            ! BYTES IN X RICHTUNG DESKTOP
  20859. '
  20860. ' CONST: Menuleiste
  20861. '
  20862. tree00&=0
  20863. tree0_adr%=0
  20864. datei&=3
  20865. eintrag&=4
  20866. mfenster&=10
  20867. mtext&=5
  20868. mzedi&=6
  20869. spezial&=7
  20870. all_clear&=8
  20871. bbogen&=9
  20872. mschnitt&=11
  20873. '
  20874. tree01&=1
  20875. tree1_adr%=0
  20876. back_main&=3
  20877. fwd_main&=4
  20878. gerade&=5
  20879. kurve&=6
  20880. schliess&=7
  20881. verrunde&=8
  20882. loeschen&=9
  20883. lock&=10
  20884. snap&=11
  20885. bild&=12
  20886. zircel&=13
  20887. bezier4&=14
  20888. schere&=15
  20889. ' fenster&=15
  20890. '
  20891. tree02&=2
  20892. tree2_adr%=0
  20893. back_datei&=3
  20894. fwd_datei&=4
  20895. l_vek&=5
  20896. l_merge&=6
  20897. r_macro&=7
  20898. r_cvg&=8
  20899. l_img&=9
  20900. l_pic&=10
  20901. ordner&=11
  20902. s_vek&=12
  20903. s_plt&=13
  20904. a_plotter&=14
  20905. '
  20906. tree03&=3
  20907. tree3_adr%=0
  20908. back_fenster&=3
  20909. fwd_fenster&=4
  20910. fmove&=5
  20911. blitz&=6
  20912. fcopy&=7
  20913. fzoom&=8
  20914. fzoomp&=9
  20915. fdreh&=10
  20916. fspiegel&=11
  20917. fkursiv&=12
  20918. dreh3d&=13
  20919. drehxp&=14
  20920. drehxm&=15
  20921. drehym&=16
  20922. drehyp&=17
  20923. floesch&=18
  20924. fzoom1&=19
  20925. '
  20926. tree04&=4
  20927. tree4_adr%=0
  20928. back_spezial&=3
  20929. gtepson&=4
  20930. handy&=5
  20931. kontour&=6
  20932. filter&=7
  20933. trace&=8
  20934. smooth&=9
  20935. simag&=10
  20936. '
  20937. tree05&=5
  20938. tree5_adr%=0
  20939. back_text&=3
  20940. fwd_text&=4
  20941. z_edit&=5
  20942. z_editor&=6
  20943. z_string&=7
  20944. z_t_hoehe&=8
  20945. z_t_abstand&=9
  20946. z_g_kerning&=10
  20947. z_read_ascii&=11
  20948. l_font&=12
  20949. s_font&=14
  20950. c_font&=13
  20951. '
  20952. tree06&=6
  20953. tree6_adr%=0
  20954. t_hoehe&=1
  20955. '
  20956. tree07&=7
  20957. tree7_adr%=0
  20958. zabs&=1
  20959. '
  20960. tree08&=8                                         ! String Text
  20961. tree8_adr%=0
  20962. string_text&=1
  20963. breite&=3
  20964. string_breite&=4
  20965. versal&=5
  20966. string_versal&=6
  20967. pfad&=7
  20968. do_kerning&=8
  20969. string_kreis&=9
  20970. string_kreis_von&=10
  20971. string_kreis_bis&=11
  20972. fontname&=13
  20973. c_text&=14
  20974. icon_pair&=15
  20975. icon_trep&=16
  20976. '
  20977. tree09&=9                                         ! Zeichen Editor
  20978. tree9_adr%=0
  20979. back_editor&=3
  20980. m_matrix&=4
  20981. z_matrix&=5
  20982. move_matrix&=6
  20983. kerning_links&=7
  20984. kerning_rechts&=8
  20985. kerning_auto&=9
  20986. z_get&=10
  20987. z_muell&=11
  20988. z_up&=13
  20989. z_down&=14
  20990. z_char&=15
  20991. '
  20992. tree10&=10
  20993. tree10_adr%=0
  20994. b_kerning&=2
  20995. g_kerning&=3
  20996. '
  20997. tree11&=11                                       ! Optimier
  20998. tree11_adr%=0
  20999. del_ma&=4
  21000. del_ge&=6
  21001. del_el&=8
  21002. '
  21003. tree12&=12
  21004. tree12_adr%=0
  21005. bstep&=1
  21006. '
  21007. tree13&=13                                       ! Info
  21008. tree13_adr%=0
  21009. vernr&=7
  21010. version&=4
  21011. firma&=4
  21012. strasse&=7
  21013. stadt&=10
  21014. punkte&=15
  21015. rest&=17
  21016. '
  21017. tree14&=14                                       ! Auflösung
  21018. tree14_adr%=0
  21019. rx1&=8
  21020. ry1&=10
  21021. rx2&=12
  21022. ry2&=13
  21023. rx3&=16
  21024. ry3&=17
  21025. get_pf&=19
  21026. r1&=4
  21027. r2&=5
  21028. r3&=6
  21029. '
  21030. tree15&=15                                       ! Plotter INIT
  21031. tree15_adr%=0
  21032. p_init1&=3
  21033. p_init2&=4
  21034. gdu01&=9
  21035. gdu025&=10
  21036. gdu05&=11
  21037. gdu1&=12
  21038. overcut&=16
  21039. cent&=18
  21040. rs232&=20
  21041. hp&=23
  21042. gp&=24
  21043. mgl&=25
  21044. ma&=29
  21045. da&=30
  21046. '
  21047. tree16&=16                                       ! Pfade und Parameter
  21048. tree16_adr%=0
  21049. pv&=5
  21050. pp&=7
  21051. pfi&=9
  21052. pg&=11
  21053. pf&=13
  21054. df&=15
  21055. p1&=17
  21056. p2&=19
  21057. schnitt&=21
  21058. gdu&=23
  21059. foliex&=25
  21060. foliey&=27
  21061. warn&=29
  21062. cancel&=31
  21063. '
  21064. tree17&=17
  21065. tree17_adr%=0
  21066. outl&=1
  21067. outl_anz&=2
  21068. '
  21069. tree18&=18
  21070. tree18_adr%=0
  21071. schraffd&=1
  21072. schraffi&=2
  21073. schrafix&=3
  21074. schraffw&=4
  21075. schraffa&=7
  21076. schrafff&=8
  21077. '
  21078. tree19&=19
  21079. tree19_adr%=0
  21080. necka&=1
  21081. neckp&=2
  21082. '
  21083. tree20&=20                                      ! Füll
  21084. tree20_adr%=0
  21085. fill1&=3
  21086. fill2&=5
  21087. fill3&=7
  21088. fill4&=9
  21089. fill5&=11
  21090. fill6&=13
  21091. fill7&=15
  21092. fillcancel&=17
  21093. '
  21094. tree21&=21                                      ! Trace
  21095. tree21_adr%=0
  21096. t_step&=7
  21097. t_gerade&=8
  21098. t_schmutz&=9
  21099. bschwelle&=21
  21100. knickwinkel&=22
  21101. bogen_max&=23
  21102. abweichung_gerade&=24
  21103. nur_gerade&=13
  21104. trace_cancel&=14
  21105. gerade_bezier&=30
  21106. '
  21107. tree22&=22
  21108. tree22_adr%=0
  21109. scann_x&=1
  21110. scann_y&=2
  21111. '
  21112. tree23&=23
  21113. tree23_adr%=0
  21114. radius&=1
  21115. '
  21116. tree24&=24
  21117. tree24_adr%=0
  21118. grau&=6
  21119. stark&=7
  21120. selgrau0&=4
  21121. selgrau&=5
  21122. sellinie&=8
  21123. alle&=9
  21124. auswahl&=10
  21125. '
  21126. tree25&=25                               ! Bogen
  21127. tree25_adr%=0
  21128. backboge&=3
  21129. vkreis&=4
  21130. kreis3&=5
  21131. kreisbog&=6
  21132. bogen3&=7
  21133. bogen2&=8
  21134. ellipse&=9
  21135. elbogen&=10
  21136. eckrund&=11
  21137. '
  21138. tree26&=26                               ! Koordinaten
  21139. tree26_adr%=0
  21140. absolut&=2
  21141. relativ&=3
  21142. polar&=4
  21143. '
  21144. tree27&=27                               ! Calamus Versions Nr.
  21145. tree27_adr%=0
  21146. calamus_nr&=1
  21147. '
  21148. tree28&=28                               ! GT 6000
  21149. tree28_adr%=0
  21150. gtscan&=47
  21151. gtx&=38
  21152. gty&=44
  21153. gtb&=42
  21154. gth&=43
  21155. gtcancel&=46
  21156. gtpresca&=45
  21157. gtdpi&=35
  21158. gtdpimin&=33
  21159. gtdpiplu&=34
  21160. gtprewin&=1
  21161. gtstate&=5
  21162. gtkeiner&=9
  21163. gtraster&=10
  21164. gtweich&=11
  21165. gthart&=12
  21166. gtkeine&=15
  21167. gtrot&=18
  21168. gtgruen&=17
  21169. gtblau&=16
  21170. k0&=22
  21171. k1&=23
  21172. k2&=24
  21173. k3&=25
  21174. k4&=26
  21175. k5&=27
  21176. k6&=28
  21177. '
  21178. tree29&=29                               ! Kosten
  21179. tree29_adr%=0
  21180. kostfak&=1
  21181. sl&=2
  21182. gkosten&=4
  21183. '
  21184. tree30&=30                               ! Select Filter
  21185. tree30_adr%=0
  21186. abs_filter&=1
  21187. '
  21188. tree31&=31                               ! Select Fenster
  21189. tree31_adr%=0
  21190. ohnecopy&=1
  21191. mitcopy&=6
  21192. anz_rot&=3
  21193. phi_rot&=4
  21194. numohne&=5
  21195. ausricht_vector&=7
  21196. '
  21197. tree32&=32                               ! Select Spiegel
  21198. tree32_adr%=0
  21199. anbox&=2
  21200. anachse&=1
  21201. '
  21202. tree33&=33
  21203. tree33_adr%=0
  21204. teil&=1
  21205. '
  21206. tree34&=34                               ! Schnittpunkt
  21207. tree34_adr%=0
  21208. backschn&=3
  21209. fwdschn&=4
  21210. trimm&=5
  21211. knack&=6
  21212. lot&=7
  21213. teilen&=8
  21214. lang&=9
  21215. schnitt2&=10
  21216. schnittn&=11
  21217. delseg&=12
  21218. delel&=13
  21219. schmelz&=14
  21220. '
  21221. tree35&=35                              ! Select Copy
  21222. tree35_adr%=0
  21223. copysing&=1
  21224. copymul&=2
  21225. cx&=4
  21226. cy&=5
  21227. canz&=6
  21228. cdist&=7
  21229. '
  21230. tree36&=36                              ! Ausrichten
  21231. tree36_adr%=0
  21232. a_olinks&=1
  21233. a_oben&=2
  21234. a_orechts&=3
  21235. a_links&=4
  21236. a_mitte&=5
  21237. a_rechts&=6
  21238. a_ulinks&=7
  21239. a_unten&=8
  21240. a_urechts&=9
  21241. '
  21242. tree37&=37                              ! Scalieren
  21243. tree37_adr%=0
  21244. scale_interactiv&=1
  21245. scale_numerisch&=2
  21246. scale_breite&=4
  21247. scale_hoehe&=5
  21248. '
  21249. tree38&=38                              ! Ordner
  21250. tree38_adr%=0
  21251. ordnert&=1
  21252. ordnerok&=2
  21253. ordnerca&=3
  21254. '
  21255. tree39&=39                              ! Kerning
  21256. tree39_adr%=0
  21257. kerning_box&=1
  21258. kerning_minus&=3
  21259. kerning_plus&=4
  21260. kerning_last&=2
  21261. kerning_next&=5
  21262. kerning_exit&=6
  21263. kerning_minus2&=9
  21264. kerning_plus2&=10
  21265. kerning_last2&=8
  21266. kerning_next2&=11
  21267. kerning_clear&=7
  21268. kerning_info&=13
  21269. kerning_pair&=15
  21270. '
  21271. tree40&=40                              ! Plotter OUTPUT
  21272. tree40_adr%=0
  21273. pl100&=3
  21274. plschieber&=4
  21275. plschere&=7
  21276. plschereauf&=5
  21277. plscherezu&=6
  21278. plschere&=7
  21279. '
  21280. tree41&=41                              ! Select Neigen
  21281. tree41_adr%=0
  21282. neige_grad&=2
  21283. neige_vertical&=3
  21284. neige_horizontal&=4
  21285. neige_interaktiv&=5
  21286. '
  21287. ' FLAG:
  21288. '
  21289. undo!=FALSE
  21290. geschlossen!=FALSE
  21291. ok!=FALSE                                        ! allgemein
  21292. layer_geladen!=FALSE                             ! ist  Layer geladen
  21293. layer!=FALSE                                     ! soll Layer gezeigt werden
  21294. window_fulled!=TRUE                              ! ist  Fenster schon gro₧
  21295. voll_bild!=FALSE                                 ! ist  Fenster komplett auf Crt
  21296. eintragen!=FALSE                                 ! ist  eintragen aktiv
  21297. bogen!=FALSE
  21298. mtext!=FALSE
  21299. meditor!=FALSE
  21300. datei!=FALSE
  21301. fenster!=FALSE
  21302. schnittpunktm!=FALSE
  21303. loeschen!=FALSE                                  ! ist  loeschen aktiv
  21304. neues_polygon!=TRUE                              ! erster Punkt im Polygon
  21305. found!=FALSE                                     ! gefunden bei Fangradius
  21306. marker!=FALSE                                    ! sollen Marker gezeigt werden
  21307. marker_select!=FALSE                             ! soll   Marker selectiert
  21308. modified!=FALSE                                  ! wurde Vektorbild geändert
  21309. font_geladen!=FALSE                              ! ist ein Font geladen
  21310. outlined!=FALSE                                  ! wurde Bitmap schon outlined
  21311. auto_schraff!=TRUE
  21312. schraff_fix_abst!=FALSE
  21313. einpassen!=FALSE
  21314. tangente!=FALSE
  21315. tangenten_lock!=TRUE
  21316. warn!=FALSE
  21317. gp_gl!=FALSE                                     ! HPGL oder GPGL
  21318. tasten_rep!=FALSE
  21319. absolut!=TRUE
  21320. relativ!=FALSE
  21321. polar!=FALSE
  21322. absolut_old!=FALSE
  21323. polar_old!=FALSE
  21324. fangklein!=FALSE                                 ! Fangradius gro₧
  21325. fadenkreuz!=FALSE
  21326. polygonmode!=TRUE                                ! Polygonmodus
  21327. ortho!=FALSE
  21328. grid!=FALSE
  21329. scrolled!=FALSE
  21330. move!=FALSE
  21331. drei_d!=FALSE
  21332. status_wechsel!=FALSE
  21333. grid_wechsel!=FALSE
  21334. swap!=FALSE
  21335. '
  21336. ' ARRAY:
  21337. '
  21338. DIM smfdb%(8),dmfdb%(8),p%(8)
  21339. DIM z_smfdb%(8),z_dmfdb%(8),z_p%(8),q_dmfdb%(8)
  21340. DIM punkte_x%(p_max%),punkte_y%(p_max%),punkte_def|(p_max%),buffer%(p_max%/2)
  21341. DIM x_meta%(127),y_meta%(127),punkte_def1|(32)
  21342. ARRAYFILL punkte_def1|(),1
  21343. DIM bezier_x&(33),bezier_y&(33)
  21344. DIM m$(87)
  21345. DIM mk%(60,2)
  21346. DIM m_square%(5)
  21347. DIM z_editor%(32)
  21348. DIM z_ascii%(224),z_kerning&(224*16),z_daten&(224*280),z_pair&(224),z_pair|(224),z_pair_daten|(2000)
  21349. DIM sx1%(9),sy1%(9),sx2%(9),sy2%(9),sp1(9),sp2(9)
  21350. DIM zeilen_buffer$(60)
  21351. rette$=SPACE$(32000)
  21352. pfad$=SPACE$(80)
  21353. kerning_string$=SPACE$(60)
  21354. pfad_pic$=SPACE$(80)
  21355. pfad_img$=SPACE$(80)
  21356. pfad_vek$=SPACE$(80)
  21357. pfad_vek_root$=SPACE$(80)
  21358. pfad_cvg$=SPACE$(80)
  21359. pfad_fnt$=SPACE$(80)
  21360. pfad_cfn$=SPACE$(80)
  21361. default_font$=SPACE$(10)
  21362. programm$=SPACE$(10)
  21363. programm_font$=SPACE$(10)
  21364. test_datei$=SPACE$(10)
  21365. object$=SPACE$(80)
  21366. p_init1$=SPACE$(40)
  21367. p_init2$=SPACE$(40)
  21368. abc$="CutOut Test"
  21369. ma$="M"
  21370. da$="D"
  21371. cutout_font$="CUTOUTOFN"
  21372. calamus_font_grafik$=MKI$(159)+MKI$(15)+MKI$(1)+SPACE$(320)
  21373. ok$="OK"
  21374. ein_space$=" "
  21375. x_y$="X|Y"
  21376. erster$="1. "
  21377. zweiter$="2. "
  21378. help_on$="ON "
  21379. help_off$="OFF"
  21380. vek$="VEK"
  21381. cvg$="CVG"
  21382. img$="IMG"
  21383. plt$="PLT"
  21384. calamus$="CALAMUS"
  21385. cutout$="CutOut"
  21386. ' ****************************************************************************
  21387. OPEN "I",#1,"SYS\LANGUAGE.DRV"
  21388. LINE INPUT #1,pd_menu$
  21389. LINE INPUT #1,pd_datei$
  21390. LINE INPUT #1,pd_editieren$
  21391. LINE INPUT #1,pd_fenster$
  21392. LINE INPUT #1,pd_schnittpunkt$
  21393. LINE INPUT #1,pd_bogen$
  21394. LINE INPUT #1,pd_text$
  21395. LINE INPUT #1,pd_zeicheneditor$
  21396. LINE INPUT #1,pd_extra$
  21397. LINE INPUT #1,pd_quit$
  21398. '
  21399. LINE INPUT #1,pd_optionen$
  21400. LINE INPUT #1,pd_marker_anzeigen$
  21401. LINE INPUT #1,pd_tangenten_anzeigen$
  21402. LINE INPUT #1,pd_fangradius_klein$
  21403. LINE INPUT #1,pd_polygon_modus$
  21404. LINE INPUT #1,pd_schnittpunkt_genau$
  21405. LINE INPUT #1,pd_koordinaten$
  21406. LINE INPUT #1,pd_element_selektieren$
  21407. LINE INPUT #1,pd_polygon_selektieren$
  21408. LINE INPUT #1,pd_warnmeldungen$
  21409. LINE INPUT #1,pd_skaliere_alles$
  21410. LINE INPUT #1,pd_punkte_nivellieren$
  21411. LINE INPUT #1,pd_tangente$
  21412. LINE INPUT #1,pd_plotflaeche$
  21413. LINE INPUT #1,pd_bezier_step_aendern$
  21414. LINE INPUT #1,pd_plotter_einstellung$
  21415. LINE INPUT #1,pd_kosten_faktor$
  21416. LINE INPUT #1,pd_pfad_sichern$
  21417. '
  21418. LINE INPUT #1,pd_figur$
  21419. LINE INPUT #1,pd_rechteck$
  21420. LINE INPUT #1,pd_n_eck$
  21421. LINE INPUT #1,pd_polygon_outline$
  21422. LINE INPUT #1,pd_aequidistante$
  21423. LINE INPUT #1,pd_frame$
  21424. LINE INPUT #1,pd_polygone_ausrichten$
  21425. LINE INPUT #1,pd_polygone_zentrieren$
  21426. LINE INPUT #1,pd_polygone_vereinen$
  21427. LINE INPUT #1,pd_polygone_fuellen$
  21428. LINE INPUT #1,pd_einzelne_punkte_loeschen$
  21429. '
  21430. LINE INPUT #1,pd_linie$
  21431. LINE INPUT #1,pd_bezier_vektor$
  21432. LINE INPUT #1,pd_bezier_einfuegen$
  21433. LINE INPUT #1,pd_tausche_bezier_vektor$
  21434. LINE INPUT #1,pd_knacken$
  21435. LINE INPUT #1,pd_trimmen$
  21436. LINE INPUT #1,pd_lot$
  21437. LINE INPUT #1,pd_verlaengern$
  21438. LINE INPUT #1,pd_teilen$
  21439. LINE INPUT #1,pd_messen$
  21440. LINE INPUT #1,pd_schnittp_2er$
  21441. LINE INPUT #1,pd_schnittp_n$
  21442. '
  21443. LINE INPUT #1,pd_effekt$
  21444. LINE INPUT #1,pd_parameter_schraffur$
  21445. LINE INPUT #1,pd_polygon_schraffieren$
  21446. LINE INPUT #1,pd_alles_schraffieren$
  21447. LINE INPUT #1,pd_schatten$
  21448. LINE INPUT #1,pd_einpassen$
  21449. LINE INPUT #1,pd_kugel$
  21450. '
  21451. LINE INPUT #1,lade$
  21452. LINE INPUT #1,sichere$
  21453. LINE INPUT #1,fuege_ein$
  21454. LINE INPUT #1,vektor$
  21455. LINE INPUT #1,macro$
  21456. LINE INPUT #1,daten$
  21457. LINE INPUT #1,zeichensatz$
  21458. LINE INPUT #1,kein$
  21459. LINE INPUT #1,keine$
  21460. LINE INPUT #1,ja_nein$
  21461. LINE INPUT #1,waehle$
  21462. LINE INPUT #1,fehler$
  21463. LINE INPUT #1,scannen$
  21464. LINE INPUT #1,pre_view$
  21465. LINE INPUT #1,ascii_importieren$
  21466. LINE INPUT #1,ascii_exportieren$
  21467. LINE INPUT #1,schriftblock$
  21468. LINE INPUT #1,radius_zu$
  21469. LINE INPUT #1,winkel_zu$
  21470. LINE INPUT #1,leider$
  21471. LINE INPUT #1,winkel_einstellen$
  21472. LINE INPUT #1,spiegelachse$
  21473. LINE INPUT #1,lupe_mal$
  21474. LINE INPUT #1,fensterbereich$
  21475. LINE INPUT #1,drehzentrum$
  21476. LINE INPUT #1,ordner_exist$
  21477. LINE INPUT #1,kein_leer$
  21478. LINE INPUT #1,suche_schnittpunkte$
  21479. LINE INPUT #1,gleiches_polygon$
  21480. LINE INPUT #1,bezugs$
  21481. LINE INPUT #1,zentriere$
  21482. LINE INPUT #1,huellkurve$
  21483. LINE INPUT #1,huellkurve1$
  21484. LINE INPUT #1,berechne$
  21485. LINE INPUT #1,rechte_taste$
  21486. LINE INPUT #1,endpunkt$
  21487. LINE INPUT #1,lot_an$
  21488. LINE INPUT #1,noname$
  21489. LINE INPUT #1,symbol$
  21490. LINE INPUT #1,orginal_fenster$
  21491. LINE INPUT #1,dmc_font$
  21492. LINE INPUT #1,bild_datei_zu$
  21493. LINE INPUT #1,stad_laden$
  21494. LINE INPUT #1,plotter_ist_off$
  21495. LINE INPUT #1,plot_datei$
  21496. LINE INPUT #1,kein_treiber$
  21497. LINE INPUT #1,schnittstelle_auf$
  21498. LINE INPUT #1,polygone_vereinen$
  21499. LINE INPUT #1,loesche_einzelne$
  21500. LINE INPUT #1,quelle$
  21501. LINE INPUT #1,ziel$
  21502. LINE INPUT #1,nivelliere$
  21503. LINE INPUT #1,alle_daten_l$
  21504. LINE INPUT #1,ganzer_zeichensatz$
  21505. LINE INPUT #1,font_daten_loeschen$
  21506. LINE INPUT #1,zeichen_matrix$
  21507. LINE INPUT #1,datei_existiert$
  21508. LINE INPUT #1,datei_ueberschreiben$
  21509. LINE INPUT #1,glaetten_mit$
  21510. LINE INPUT #1,gerade_bezier$
  21511. LINE INPUT #1,glaetten$
  21512. LINE INPUT #1,bereich$
  21513. LINE INPUT #1,path$
  21514. LINE INPUT #1,help_mittelpunkt$
  21515. LINE INPUT #1,help_radius$
  21516. LINE INPUT #1,help_position$
  21517. LINE INPUT #1,help_startwinkel$
  21518. LINE INPUT #1,help_endwinkel$
  21519. LINE INPUT #1,help_polygon$
  21520. LINE INPUT #1,help_punkt$
  21521. LINE INPUT #1,help_linie$
  21522. LINE INPUT #1,help_element$
  21523. LINE INPUT #1,help_verrund$
  21524. LINE INPUT #1,help_loesche$
  21525. LINE INPUT #1,help_trenn$
  21526. LINE INPUT #1,help_move$
  21527. LINE INPUT #1,help_sel$
  21528. LINE INPUT #1,help_move_window$
  21529. LINE INPUT #1,help_rahmen$
  21530. LINE INPUT #1,help_edit$
  21531. LINE INPUT #1,help_bezier$
  21532. LINE INPUT #1,help_status$
  21533. LINE INPUT #1,help_ortho$
  21534. LINE INPUT #1,help_grid$
  21535. LINE INPUT #1,help_free$
  21536. LINE INPUT #1,help_snap$
  21537. LINE INPUT #1,help_editor$
  21538. LINE INPUT #1,help_pfad$
  21539. CLOSE #1
  21540. ' ****************************************************************************
  21541. integer%=VARPTR(punkte_x%(1))-VARPTR(punkte_x%(0))  ! Länge in Bytes Integer
  21542. '
  21543. z_editor%(0)=2048                                   ! Top      Line   Y
  21544. z_editor%(1)=3072                                   ! Ascent   Line   Y
  21545. z_editor%(2)=6144                                   ! Half     Line   Y
  21546. z_editor%(3)=11264                                  ! Base     Line   Y
  21547. z_editor%(4)=13952                                  ! Descent  Line   Y
  21548. z_editor%(5)=14336                                  ! Bottom   Line   Y
  21549. '
  21550. z_editor%(6)=0                                      ! Matrix   links  X
  21551. z_editor%(7)=16384                                  ! Matrix   rechts X
  21552. z_editor%(8)=1280                                   ! Kerning  links  X
  21553. z_editor%(9)=1280                                   ! Kerning  links  X
  21554. z_editor%(10)=1280                                  ! Kerning  links  X
  21555. z_editor%(11)=1280                                  ! Kerning  links  X
  21556. z_editor%(12)=1280                                  ! Kerning  links  X
  21557. z_editor%(13)=1280                                  ! Kerning  links  X
  21558. z_editor%(14)=1280                                  ! Kerning  links  X
  21559. z_editor%(15)=1280                                  ! Kerning  links  X
  21560. z_editor%(16)=15104                                 ! Kerning  rechts X
  21561. z_editor%(17)=15104                                 ! Kerning  rechts X
  21562. z_editor%(18)=15104                                 ! Kerning  rechts X
  21563. z_editor%(19)=15104                                 ! Kerning  rechts X
  21564. z_editor%(20)=15104                                 ! Kerning  rechts X
  21565. z_editor%(21)=15104                                 ! Kerning  rechts X
  21566. z_editor%(22)=15104                                 ! Kerning  rechts X
  21567. z_editor%(23)=15104                                 ! Kerning  rechts X
  21568. z_editor%(24)=z_editor%(0)                          ! Kerning         Y
  21569. z_editor%(25)=(z_editor%(5)-z_editor%(0))/8         ! Kerning         Y
  21570. z_editor%(26)=z_editor%(24)+z_editor%(25)           ! Kerning         Y
  21571. z_editor%(27)=z_editor%(26)+z_editor%(25)           ! Kerning         Y
  21572. z_editor%(28)=z_editor%(27)+z_editor%(25)           ! Kerning         Y
  21573. z_editor%(29)=z_editor%(28)+z_editor%(25)           ! Kerning         Y
  21574. z_editor%(30)=z_editor%(29)+z_editor%(25)           ! Kerning         Y
  21575. z_editor%(31)=z_editor%(30)+z_editor%(25)           ! Kerning         Y
  21576. z_editor%(32)=0                                     ! Matrix oben     Y
  21577. '
  21578. ' ******************************************************************************
  21579. ' *                                                                            *
  21580. ' *                             MENU INITIALISIERUNG                           *
  21581. ' *                                                                            *
  21582. ' ******************************************************************************
  21583. '
  21584. BMOVE V:serien_nummer$,V:serien_nummer,8
  21585. BMOVE V:serien_nummer_vergleich$,V:serien_nummer_vergleich,8
  21586. regist_nr%=serien_nummer_vergleich
  21587. IF serien_nummer<>(serien_nummer_vergleich XOR magic%)
  21588.   PRINT "SORRY HACKER"
  21589.   PAUSE 300
  21590.   SYSTEM
  21591. ENDIF
  21592. INLINE zasm_ptr%,4136
  21593. INLINE pack_img%,958
  21594. INLINE calc_bezier%,1050
  21595. INLINE p_num%,360
  21596. INLINE find_line%,356
  21597. INLINE kontour%,216
  21598. INLINE staddec%,184
  21599. INLINE imgdec%,228
  21600. INLINE findexcept%,52
  21601. INLINE findpointexcept%,70
  21602. mfang$=MKI$(7)+MKI$(7)+MKI$(1)+MKI$(0)+MKI$(1)
  21603. mfang$=mfang$+MKI$(&X1111111111111110)
  21604. mfang$=mfang$+MKI$(&X1111111111111110)
  21605. mfang$=mfang$+MKI$(&X1100001110000110)
  21606. mfang$=mfang$+MKI$(&X1100001110000110)
  21607. mfang$=mfang$+MKI$(&X1100001110000110)
  21608. mfang$=mfang$+MKI$(&X1100001110000110)
  21609. mfang$=mfang$+MKI$(&X1111110001111110)
  21610. mfang$=mfang$+MKI$(&X1111110001111110)
  21611. mfang$=mfang$+MKI$(&X1111110001111110)
  21612. mfang$=mfang$+MKI$(&X1100001110000110)
  21613. mfang$=mfang$+MKI$(&X1100001110000110)
  21614. mfang$=mfang$+MKI$(&X1100001110000110)
  21615. mfang$=mfang$+MKI$(&X1100001110000110)
  21616. mfang$=mfang$+MKI$(&X1111111111111110)
  21617. mfang$=mfang$+MKI$(&X1111111111111110)
  21618. mfang$=mfang$+MKI$(&X0)
  21619. '
  21620. mfang$=mfang$+MKI$(&X1111111111111110)
  21621. mfang$=mfang$+MKI$(&X1000000100000010)
  21622. mfang$=mfang$+MKI$(&X1000000100000010)
  21623. mfang$=mfang$+MKI$(&X1000000100000010)
  21624. mfang$=mfang$+MKI$(&X1000000100000010)
  21625. mfang$=mfang$+MKI$(&X1000000100000010)
  21626. mfang$=mfang$+MKI$(&X1000000000000010)
  21627. mfang$=mfang$+MKI$(&X1111110001111110)
  21628. mfang$=mfang$+MKI$(&X1000000000000010)
  21629. mfang$=mfang$+MKI$(&X1000000100000010)
  21630. mfang$=mfang$+MKI$(&X1000000100000010)
  21631. mfang$=mfang$+MKI$(&X1000000100000010)
  21632. mfang$=mfang$+MKI$(&X1000000100000010)
  21633. mfang$=mfang$+MKI$(&X1000000100000010)
  21634. mfang$=mfang$+MKI$(&X1111111111111110)
  21635. mfang$=mfang$+MKI$(&X0)
  21636. '
  21637. mfang_klein$=MKI$(7)+MKI$(7)+MKI$(1)+MKI$(0)+MKI$(1)
  21638. mfang_klein$=mfang_klein$+MKI$(&X0)
  21639. mfang_klein$=mfang_klein$+MKI$(&X0)
  21640. mfang_klein$=mfang_klein$+MKI$(&X11111111111000)
  21641. mfang_klein$=mfang_klein$+MKI$(&X11111111111000)
  21642. mfang_klein$=mfang_klein$+MKI$(&X11001110011000)
  21643. mfang_klein$=mfang_klein$+MKI$(&X11001110011000)
  21644. mfang_klein$=mfang_klein$+MKI$(&X11110001111000)
  21645. mfang_klein$=mfang_klein$+MKI$(&X11110001111000)
  21646. mfang_klein$=mfang_klein$+MKI$(&X11110001111000)
  21647. mfang_klein$=mfang_klein$+MKI$(&X11001110011000)
  21648. mfang_klein$=mfang_klein$+MKI$(&X11001110011000)
  21649. mfang_klein$=mfang_klein$+MKI$(&X11111111111000)
  21650. mfang_klein$=mfang_klein$+MKI$(&X11111111111000)
  21651. mfang_klein$=mfang_klein$+MKI$(&X0)
  21652. mfang_klein$=mfang_klein$+MKI$(&X0)
  21653. mfang_klein$=mfang_klein$+MKI$(&X0)
  21654. '
  21655. mfang_klein$=mfang_klein$+MKI$(&X0)
  21656. mfang_klein$=mfang_klein$+MKI$(&X0)
  21657. mfang_klein$=mfang_klein$+MKI$(&X0)
  21658. mfang_klein$=mfang_klein$+MKI$(&X1111111110000)
  21659. mfang_klein$=mfang_klein$+MKI$(&X1000100010000)
  21660. mfang_klein$=mfang_klein$+MKI$(&X1000100010000)
  21661. mfang_klein$=mfang_klein$+MKI$(&X1000000010000)
  21662. mfang_klein$=mfang_klein$+MKI$(&X1110001110000)
  21663. mfang_klein$=mfang_klein$+MKI$(&X1000000010000)
  21664. mfang_klein$=mfang_klein$+MKI$(&X1000100010000)
  21665. mfang_klein$=mfang_klein$+MKI$(&X1000100010000)
  21666. mfang_klein$=mfang_klein$+MKI$(&X1111111110000)
  21667. mfang_klein$=mfang_klein$+MKI$(&X0)
  21668. mfang_klein$=mfang_klein$+MKI$(&X0)
  21669. mfang_klein$=mfang_klein$+MKI$(&X0)
  21670. mfang_klein$=mfang_klein$+MKI$(&X0)
  21671. '
  21672. mdaten$=MKI$(7)+MKI$(7)+MKI$(1)+MKI$(0)+MKI$(1)
  21673. mdaten$=mdaten$+MKI$(&X1110000000)
  21674. mdaten$=mdaten$+MKI$(&X1110000000)
  21675. mdaten$=mdaten$+MKI$(&X1110000000)
  21676. mdaten$=mdaten$+MKI$(&X1110000000)
  21677. mdaten$=mdaten$+MKI$(&X1110000000)
  21678. mdaten$=mdaten$+MKI$(&X1110000000)
  21679. mdaten$=mdaten$+MKI$(&X1111110001111110)
  21680. mdaten$=mdaten$+MKI$(&X1111110001111110)
  21681. mdaten$=mdaten$+MKI$(&X1111110001111110)
  21682. mdaten$=mdaten$+MKI$(&X1110000000)
  21683. mdaten$=mdaten$+MKI$(&X1110000000)
  21684. mdaten$=mdaten$+MKI$(&X1110000000)
  21685. mdaten$=mdaten$+MKI$(&X1110000000)
  21686. mdaten$=mdaten$+MKI$(&X1110000000)
  21687. mdaten$=mdaten$+MKI$(&X1110000000)
  21688. mdaten$=mdaten$+MKI$(&X0)
  21689. '
  21690. mdaten$=mdaten$+MKI$(&X100000000)
  21691. mdaten$=mdaten$+MKI$(&X100000000)
  21692. mdaten$=mdaten$+MKI$(&X100000000)
  21693. mdaten$=mdaten$+MKI$(&X100000000)
  21694. mdaten$=mdaten$+MKI$(&X100000000)
  21695. mdaten$=mdaten$+MKI$(&X100000000)
  21696. mdaten$=mdaten$+MKI$(&X0)
  21697. mdaten$=mdaten$+MKI$(&X1111110001111110)
  21698. mdaten$=mdaten$+MKI$(&X0)
  21699. mdaten$=mdaten$+MKI$(&X100000000)
  21700. mdaten$=mdaten$+MKI$(&X100000000)
  21701. mdaten$=mdaten$+MKI$(&X100000000)
  21702. mdaten$=mdaten$+MKI$(&X100000000)
  21703. mdaten$=mdaten$+MKI$(&X100000000)
  21704. mdaten$=mdaten$+MKI$(&X100000000)
  21705. mdaten$=mdaten$+MKI$(&X0)
  21706. '
  21707. schwer$=MKI$(7)+MKI$(7)+MKI$(-1)+MKI$(0)+MKI$(1)
  21708. schwer$=schwer$+MKI$(&X0)                     !
  21709. schwer$=schwer$+MKI$(&X0)
  21710. schwer$=schwer$+MKI$(&X11111000000)           !
  21711. schwer$=schwer$+MKI$(&X11111000000)
  21712. schwer$=schwer$+MKI$(&X1100111110000)         !
  21713. schwer$=schwer$+MKI$(&X1100111110000)
  21714. schwer$=schwer$+MKI$(&X10000111111000)        !
  21715. schwer$=schwer$+MKI$(&X10000111111000)
  21716. schwer$=schwer$+MKI$(&X10000111111000)        !
  21717. schwer$=schwer$+MKI$(&X10000111111000)
  21718. schwer$=schwer$+MKI$(&X100000111111100)       !
  21719. schwer$=schwer$+MKI$(&X100000111111100)
  21720. schwer$=schwer$+MKI$(&X100000111111100)       !
  21721. schwer$=schwer$+MKI$(&X100000111111100)
  21722. schwer$=schwer$+MKI$(&X111111011111100)       !!
  21723. schwer$=schwer$+MKI$(&X111111011111100)
  21724. schwer$=schwer$+MKI$(&X111111100000100)       !
  21725. schwer$=schwer$+MKI$(&X111111100000100)
  21726. schwer$=schwer$+MKI$(&X111111100000100)       !
  21727. schwer$=schwer$+MKI$(&X111111100000100)
  21728. schwer$=schwer$+MKI$(&X11111100001000)        !
  21729. schwer$=schwer$+MKI$(&X11111100001000)
  21730. schwer$=schwer$+MKI$(&X11111100001000)        !
  21731. schwer$=schwer$+MKI$(&X11111100001000)
  21732. schwer$=schwer$+MKI$(&X1111100110000)         !
  21733. schwer$=schwer$+MKI$(&X1111100110000)
  21734. schwer$=schwer$+MKI$(&X11111000000)           !
  21735. schwer$=schwer$+MKI$(&X11111000000)
  21736. schwer$=schwer$+MKI$(&X0)                     !
  21737. schwer$=schwer$+MKI$(&X0)
  21738. schwer$=schwer$+MKI$(&X0)                     !
  21739. schwer$=schwer$+MKI$(&X0)
  21740. pfad_read
  21741. reset
  21742. RESERVE -64*1024
  21743. DIM work%((FRE(0)-80*1024)/4)
  21744. daten_ptr%=V:work%(0)
  21745. work_space%=DIM?(work%())*4
  21746. KEYPAD 8
  21747. ~RSRC_LOAD("SYS\CUTOUT.RSC")
  21748. ~RSRC_GADDR(0,tree00&,tree0_adr%)
  21749. ~RSRC_GADDR(0,tree01&,tree1_adr%)
  21750. ~RSRC_GADDR(0,tree02&,tree2_adr%)
  21751. ~RSRC_GADDR(0,tree03&,tree3_adr%)
  21752. ~RSRC_GADDR(0,tree04&,tree4_adr%)
  21753. ~RSRC_GADDR(0,tree05&,tree5_adr%)
  21754. ~RSRC_GADDR(0,tree06&,tree6_adr%)
  21755. ~RSRC_GADDR(0,tree07&,tree7_adr%)
  21756. ~RSRC_GADDR(0,tree08&,tree8_adr%)
  21757. ~RSRC_GADDR(0,tree09&,tree9_adr%)
  21758. ~RSRC_GADDR(0,tree10&,tree10_adr%)
  21759. ~RSRC_GADDR(0,tree11&,tree11_adr%)
  21760. ~RSRC_GADDR(0,tree12&,tree12_adr%)
  21761. ~RSRC_GADDR(0,tree13&,tree13_adr%)
  21762. ~RSRC_GADDR(0,tree14&,tree14_adr%)
  21763. ~RSRC_GADDR(0,tree15&,tree15_adr%)
  21764. ~RSRC_GADDR(0,tree16&,tree16_adr%)
  21765. ~RSRC_GADDR(0,tree17&,tree17_adr%)
  21766. ~RSRC_GADDR(0,tree18&,tree18_adr%)
  21767. ~RSRC_GADDR(0,tree19&,tree19_adr%)
  21768. ~RSRC_GADDR(0,tree20&,tree20_adr%)
  21769. ~RSRC_GADDR(0,tree21&,tree21_adr%)
  21770. ~RSRC_GADDR(0,tree22&,tree22_adr%)
  21771. ~RSRC_GADDR(0,tree23&,tree23_adr%)
  21772. ~RSRC_GADDR(0,tree24&,tree24_adr%)
  21773. ~RSRC_GADDR(0,tree25&,tree25_adr%)
  21774. ~RSRC_GADDR(0,tree26&,tree26_adr%)
  21775. ~RSRC_GADDR(0,tree27&,tree27_adr%)
  21776. ~RSRC_GADDR(0,tree28&,tree28_adr%)
  21777. ~RSRC_GADDR(0,tree29&,tree29_adr%)
  21778. ~RSRC_GADDR(0,tree30&,tree30_adr%)
  21779. ~RSRC_GADDR(0,tree31&,tree31_adr%)
  21780. ~RSRC_GADDR(0,tree32&,tree32_adr%)
  21781. ~RSRC_GADDR(0,tree33&,tree33_adr%)
  21782. ~RSRC_GADDR(0,tree34&,tree34_adr%)
  21783. ~RSRC_GADDR(0,tree35&,tree35_adr%)
  21784. ~RSRC_GADDR(0,tree36&,tree36_adr%)
  21785. ~RSRC_GADDR(0,tree37&,tree37_adr%)
  21786. ~RSRC_GADDR(0,tree38&,tree38_adr%)
  21787. ~RSRC_GADDR(0,tree39&,tree39_adr%)
  21788. ~RSRC_GADDR(0,tree40&,tree40_adr%)
  21789. ~RSRC_GADDR(0,tree41&,tree41_adr%)
  21790. ~FORM_CENTER(tree6_adr%)
  21791. ~FORM_CENTER(tree7_adr%)
  21792. ~FORM_CENTER(tree8_adr%)
  21793. ~FORM_CENTER(tree10_adr%)
  21794. ~FORM_CENTER(tree11_adr%)
  21795. ~FORM_CENTER(tree12_adr%)
  21796. ~FORM_CENTER(tree13_adr%)
  21797. ~FORM_CENTER(tree14_adr%)
  21798. ~FORM_CENTER(tree15_adr%)
  21799. ~FORM_CENTER(tree16_adr%)
  21800. ~FORM_CENTER(tree17_adr%)
  21801. ~FORM_CENTER(tree18_adr%)
  21802. ~FORM_CENTER(tree19_adr%)
  21803. ~FORM_CENTER(tree20_adr%)
  21804. ~FORM_CENTER(tree21_adr%)
  21805. ~FORM_CENTER(tree22_adr%)
  21806. ~FORM_CENTER(tree23_adr%)
  21807. ~FORM_CENTER(tree24_adr%)
  21808. ~FORM_CENTER(tree26_adr%)
  21809. ~FORM_CENTER(tree27_adr%)
  21810. ~FORM_CENTER(tree28_adr%)
  21811. ~FORM_CENTER(tree29_adr%)
  21812. ~FORM_CENTER(tree30_adr%)
  21813. ~FORM_CENTER(tree31_adr%)
  21814. ~FORM_CENTER(tree32_adr%)
  21815. ~FORM_CENTER(tree33_adr%)
  21816. ~FORM_CENTER(tree35_adr%)
  21817. ~FORM_CENTER(tree36_adr%)
  21818. ~FORM_CENTER(tree37_adr%)
  21819. ~FORM_CENTER(tree38_adr%)
  21820. ~FORM_CENTER(tree39_adr%)
  21821. ~FORM_CENTER(tree40_adr%)
  21822. ~FORM_CENTER(tree41_adr%)
  21823. xt6&=DPEEK(tree6_adr%+16)
  21824. yt6&=DPEEK(tree6_adr%+18)
  21825. bt6&=DPEEK(tree6_adr%+20)
  21826. ht6&=DPEEK(tree6_adr%+22)
  21827. xt7&=DPEEK(tree7_adr%+16)
  21828. yt7&=DPEEK(tree7_adr%+18)
  21829. bt7&=DPEEK(tree7_adr%+20)
  21830. ht7&=DPEEK(tree7_adr%+22)
  21831. xt8&=DPEEK(tree8_adr%+16)
  21832. yt8&=DPEEK(tree8_adr%+18)
  21833. bt8&=DPEEK(tree8_adr%+20)
  21834. ht8&=DPEEK(tree8_adr%+22)
  21835. xt10&=DPEEK(tree10_adr%+16)
  21836. yt10&=DPEEK(tree10_adr%+18)
  21837. bt10&=DPEEK(tree10_adr%+20)
  21838. ht10&=DPEEK(tree10_adr%+22)
  21839. xt11&=DPEEK(tree11_adr%+16)
  21840. yt11&=DPEEK(tree11_adr%+18)
  21841. bt11&=DPEEK(tree11_adr%+20)
  21842. ht11&=DPEEK(tree11_adr%+22)
  21843. xt12&=DPEEK(tree12_adr%+16)
  21844. yt12&=DPEEK(tree12_adr%+18)
  21845. bt12&=DPEEK(tree12_adr%+20)
  21846. ht12&=DPEEK(tree12_adr%+22)
  21847. xt13&=DPEEK(tree13_adr%+16)
  21848. yt13&=DPEEK(tree13_adr%+18)
  21849. bt13&=DPEEK(tree13_adr%+20)
  21850. ht13&=DPEEK(tree13_adr%+22)
  21851. xt14&=DPEEK(tree14_adr%+16)
  21852. yt14&=DPEEK(tree14_adr%+18)
  21853. bt14&=DPEEK(tree14_adr%+20)
  21854. ht14&=DPEEK(tree14_adr%+22)
  21855. xt15&=DPEEK(tree15_adr%+16)
  21856. yt15&=DPEEK(tree15_adr%+18)
  21857. bt15&=DPEEK(tree15_adr%+20)
  21858. ht15&=DPEEK(tree15_adr%+22)
  21859. xt16&=DPEEK(tree16_adr%+16)
  21860. yt16&=DPEEK(tree16_adr%+18)
  21861. bt16&=DPEEK(tree16_adr%+20)
  21862. ht16&=DPEEK(tree16_adr%+22)
  21863. xt17&=DPEEK(tree17_adr%+16)
  21864. yt17&=DPEEK(tree17_adr%+18)
  21865. bt17&=DPEEK(tree17_adr%+20)
  21866. ht17&=DPEEK(tree17_adr%+22)
  21867. xt18&=DPEEK(tree18_adr%+16)
  21868. yt18&=DPEEK(tree18_adr%+18)
  21869. bt18&=DPEEK(tree18_adr%+20)
  21870. ht18&=DPEEK(tree18_adr%+22)
  21871. xt19&=DPEEK(tree19_adr%+16)
  21872. yt19&=DPEEK(tree19_adr%+18)
  21873. bt19&=DPEEK(tree19_adr%+20)
  21874. ht19&=DPEEK(tree19_adr%+22)
  21875. xt20&=DPEEK(tree20_adr%+16)
  21876. yt20&=DPEEK(tree20_adr%+18)
  21877. bt20&=DPEEK(tree20_adr%+20)
  21878. ht20&=DPEEK(tree20_adr%+22)
  21879. xt21&=DPEEK(tree21_adr%+16)
  21880. yt21&=DPEEK(tree21_adr%+18)
  21881. bt21&=DPEEK(tree21_adr%+20)
  21882. ht21&=DPEEK(tree21_adr%+22)
  21883. xt22&=DPEEK(tree22_adr%+16)
  21884. yt22&=DPEEK(tree22_adr%+18)
  21885. bt22&=DPEEK(tree22_adr%+20)
  21886. ht22&=DPEEK(tree22_adr%+22)
  21887. xt23&=DPEEK(tree23_adr%+16)
  21888. yt23&=DPEEK(tree23_adr%+18)
  21889. bt23&=DPEEK(tree23_adr%+20)
  21890. ht23&=DPEEK(tree23_adr%+22)
  21891. DPOKE tree24_adr%+16,DPEEK(tree24_adr%+16)+200
  21892. xt24&=DPEEK(tree24_adr%+16)
  21893. yt24&=DPEEK(tree24_adr%+18)
  21894. bt24&=DPEEK(tree24_adr%+20)
  21895. ht24&=DPEEK(tree24_adr%+22)
  21896. xt26&=DPEEK(tree26_adr%+16)
  21897. yt26&=DPEEK(tree26_adr%+18)
  21898. bt26&=DPEEK(tree26_adr%+20)
  21899. ht26&=DPEEK(tree26_adr%+22)
  21900. xt27&=DPEEK(tree27_adr%+16)
  21901. yt27&=DPEEK(tree27_adr%+18)
  21902. bt27&=DPEEK(tree27_adr%+20)
  21903. ht27&=DPEEK(tree27_adr%+22)
  21904. xt28&=DPEEK(tree28_adr%+16)
  21905. yt28&=DPEEK(tree28_adr%+18)
  21906. bt28&=DPEEK(tree28_adr%+20)
  21907. ht28&=DPEEK(tree28_adr%+22)
  21908. xt29&=DPEEK(tree29_adr%+16)
  21909. yt29&=DPEEK(tree29_adr%+18)
  21910. bt29&=DPEEK(tree29_adr%+20)
  21911. ht29&=DPEEK(tree29_adr%+22)
  21912. xt30&=DPEEK(tree30_adr%+16)
  21913. yt30&=DPEEK(tree30_adr%+18)
  21914. bt30&=DPEEK(tree30_adr%+20)
  21915. ht30&=DPEEK(tree30_adr%+22)
  21916. xt31&=DPEEK(tree31_adr%+16)
  21917. yt31&=DPEEK(tree31_adr%+18)
  21918. bt31&=DPEEK(tree31_adr%+20)
  21919. ht31&=DPEEK(tree31_adr%+22)
  21920. xt32&=DPEEK(tree32_adr%+16)
  21921. yt32&=DPEEK(tree32_adr%+18)
  21922. bt32&=DPEEK(tree32_adr%+20)
  21923. ht32&=DPEEK(tree32_adr%+22)
  21924. xt35&=DPEEK(tree35_adr%+16)
  21925. yt35&=DPEEK(tree35_adr%+18)
  21926. bt35&=DPEEK(tree35_adr%+20)
  21927. ht35&=DPEEK(tree35_adr%+22)
  21928. xt33&=DPEEK(tree33_adr%+16)
  21929. yt33&=DPEEK(tree33_adr%+18)
  21930. bt33&=DPEEK(tree33_adr%+20)
  21931. ht33&=DPEEK(tree33_adr%+22)
  21932. xt36&=DPEEK(tree36_adr%+16)
  21933. yt36&=DPEEK(tree36_adr%+18)
  21934. bt36&=DPEEK(tree36_adr%+20)
  21935. ht36&=DPEEK(tree36_adr%+22)
  21936. xt37&=DPEEK(tree37_adr%+16)
  21937. yt37&=DPEEK(tree37_adr%+18)
  21938. bt37&=DPEEK(tree37_adr%+20)
  21939. ht37&=DPEEK(tree37_adr%+22)
  21940. xt38&=DPEEK(tree38_adr%+16)
  21941. yt38&=DPEEK(tree38_adr%+18)
  21942. bt38&=DPEEK(tree38_adr%+20)
  21943. ht38&=DPEEK(tree38_adr%+22)
  21944. xt39&=DPEEK(tree39_adr%+16)
  21945. yt39&=DPEEK(tree39_adr%+18)
  21946. bt39&=DPEEK(tree39_adr%+20)
  21947. ht39&=DPEEK(tree39_adr%+22)
  21948. xt40&=DPEEK(tree40_adr%+16)
  21949. yt40&=DPEEK(tree40_adr%+18)
  21950. bt40&=DPEEK(tree40_adr%+20)
  21951. ht40&=DPEEK(tree40_adr%+22)
  21952. xt41&=DPEEK(tree41_adr%+16)
  21953. yt41&=DPEEK(tree41_adr%+18)
  21954. bt41&=DPEEK(tree41_adr%+20)
  21955. ht41&=DPEEK(tree41_adr%+22)
  21956. bt_output&=OB_W(tree40_adr%,pl100&)
  21957. CHAR{{OB_SPEC(tree6_adr%,t_hoehe&)}}=STR$(INT(zeichen_hoehe%/100))
  21958. CHAR{{OB_SPEC(tree7_adr%,zabs&)}}=STR$(INT(zeilen_abstand_prozent%))
  21959. CHAR{{OB_SPEC(tree9_adr%,z_char&)}}=CHR$(z_ascii_old%+32)
  21960. CHAR{{OB_SPEC(tree8_adr%,string_text&)}}=abc$
  21961. CHAR{{OB_SPEC(tree12_adr%,bstep&)}}=STR$(b_vari/100)
  21962. CHAR{{OB_SPEC(tree13_adr%,punkte&)}}=STR$(pointer%)
  21963. CHAR{{OB_SPEC(tree13_adr%,rest&)}}=STR$(p_max%-pointer%)
  21964. CHAR{{OB_SPEC(tree13_adr%,version&)}}=revision$
  21965. CHAR{{OB_SPEC(tree14_adr%,rx1&)}}=STR$(folie_x%)
  21966. CHAR{{OB_SPEC(tree14_adr%,ry1&)}}=STR$(folie_y%)
  21967. CHAR{{OB_SPEC(tree14_adr%,rx2&)}}=STR$(folie_x2%)
  21968. CHAR{{OB_SPEC(tree14_adr%,ry2&)}}=STR$(folie_y2%)
  21969. CHAR{{OB_SPEC(tree14_adr%,rx3&)}}=STR$(folie_x3%)
  21970. CHAR{{OB_SPEC(tree14_adr%,ry3&)}}=STR$(folie_y3%)
  21971. CHAR{{OB_SPEC(tree15_adr%,p_init1&)}}=p_init1$
  21972. CHAR{{OB_SPEC(tree15_adr%,p_init2&)}}=p_init2$
  21973. CHAR{{OB_SPEC(tree15_adr%,overcut&)}}=STR$(overcut|/10)
  21974. CHAR{{OB_SPEC(tree15_adr%,ma&)}}=ma$
  21975. CHAR{{OB_SPEC(tree15_adr%,da&)}}=da$
  21976. CHAR{{OB_SPEC(tree17_adr%,outl&)}}="3.0"
  21977. CHAR{{OB_SPEC(tree18_adr%,schraffd&)}}=STR$(schraff_dist/100)
  21978. CHAR{{OB_SPEC(tree18_adr%,schraffi&)}}=STR$(schraff_inc/100)
  21979. CHAR{{OB_SPEC(tree18_adr%,schraffw&)}}=STR$(schraff_winkel)
  21980. CHAR{{OB_SPEC(tree18_adr%,schrafix&)}}=STR$(schraff_fix_abst)
  21981. CHAR{{OB_SPEC(tree21_adr%,t_step&)}}=STR$(bit_count_max|)
  21982. CHAR{{OB_SPEC(tree21_adr%,t_gerade&)}}=STR$(geraden_fehler|)
  21983. CHAR{{OB_SPEC(tree21_adr%,t_schmutz&)}}=STR$(schmutz_filter%)
  21984. CHAR{{OB_SPEC(tree21_adr%,bschwelle&)}}=STR$(lange_gerade%/100)
  21985. CHAR{{OB_SPEC(tree21_adr%,knickwinkel&)}}=STR$(CINT(DEG(knick_winkel_max)))
  21986. CHAR{{OB_SPEC(tree21_adr%,bogen_max&)}}=STR$(CINT(DEG(bogen_max*2)))
  21987. CHAR{{OB_SPEC(tree21_adr%,abweichung_gerade&)}}=STR$(abweichung_gerade%/100)
  21988. CHAR{{OB_SPEC(tree22_adr%,scann_x&)}}="1664"
  21989. CHAR{{OB_SPEC(tree22_adr%,scann_y&)}}="800"
  21990. CHAR{{OB_SPEC(tree23_adr%,radius&)}}="10"
  21991. CHAR{{OB_SPEC(tree27_adr%,calamus_nr&)}}=STR$(calamus_nr%)
  21992. CHAR{{OB_SPEC(tree29_adr%,kostfak&)}}=STR$(kostfak)
  21993. CHAR{{OB_SPEC(tree31_adr%,anz_rot&)}}="3"
  21994. CHAR{{OB_SPEC(tree31_adr%,phi_rot&)}}="90"
  21995. OB_STATE(tree15_adr%,rs232&)=state_rs232&+16
  21996. OB_STATE(tree15_adr%,cent&)=state_rs232& XOR 1+16
  21997. OB_STATE(tree15_adr%,hp&)=state_hp&+16
  21998. OB_STATE(tree15_adr%,gp&)=state_hp& XOR 1+16
  21999. OB_STATE(tree26_adr%,absolut&)=absolut!+18
  22000. OB_STATE(tree26_adr%,relativ&)=absolut!+17
  22001. OB_STATE(tree26_adr%,polar&)=absolut!+17
  22002. IF gdu=1
  22003.   OB_STATE(tree15_adr%,gdu01&)=17
  22004. ELSE
  22005.   IF gdu=2.5
  22006.     OB_STATE(tree15_adr%,gdu025&)=17
  22007.   ELSE
  22008.     IF gdu=5
  22009.       OB_STATE(tree15_adr%,gdu05&)=17
  22010.     ELSE
  22011.       OB_STATE(tree15_adr%,gdu1&)=17
  22012.     ENDIF
  22013.   ENDIF
  22014. ENDIF
  22015. OB_STATE(tree1_adr%,lock&)=1
  22016. IF mimaki!
  22017.   OB_STATE(tree15_adr%,gdu05&)=17
  22018.   OB_STATE(tree15_adr%,gdu01&)=8
  22019.   OB_STATE(tree15_adr%,gdu025&)=8
  22020.   OB_STATE(tree15_adr%,gdu1&)=8
  22021.   OB_STATE(tree15_adr%,rs232&)=17
  22022.   OB_STATE(tree15_adr%,mgl&)=17
  22023.   OB_STATE(tree15_adr%,cent&)=16
  22024.   OB_STATE(tree15_adr%,hp&)=16
  22025.   OB_STATE(tree15_adr%,gp&)=16
  22026. ELSE
  22027.   OB_STATE(tree15_adr%,mgl&)=8
  22028. ENDIF
  22029. ~WIND_GET(0,4)                                   ! get desk size
  22030. BMOVE GINTOUT+2,tree0_adr%+16,8                  ! set into rsc
  22031. BMOVE GINTOUT+2,tree1_adr%+16,8                  ! set into rsc
  22032. BMOVE GINTOUT+2,tree2_adr%+16,8                  ! set into rsc
  22033. BMOVE GINTOUT+2,tree3_adr%+16,8                  ! set into rsc
  22034. BMOVE GINTOUT+2,tree4_adr%+16,8                  ! set into rsc
  22035. BMOVE GINTOUT+2,tree5_adr%+16,8                  ! set into rsc
  22036. BMOVE GINTOUT+2,tree9_adr%+16,8                  ! set into rsc
  22037. BMOVE GINTOUT+2,tree25_adr%+16,8                 ! set into rsc
  22038. BMOVE GINTOUT+2,tree34_adr%+16,8                 ! set into rsc
  22039. wind_newdesk(tree0_adr%,0)                       ! install  Datei Baum
  22040. IF default_font$<>""
  22041.   datei$=ein_space$
  22042.   IF EXIST(pfad_fnt$+"\"+default_font$)
  22043.     load_font(pfad_fnt$+"\"+default_font$)
  22044.     programm_font$=LEFT$(default_font$,LEN(default_font$)-4)
  22045.   ELSE
  22046.     make_new_font(-1)
  22047.   ENDIF
  22048. ELSE
  22049.   make_new_font(-1)
  22050. ENDIF
  22051. m$(0)=""
  22052. m$(1)="  CUTOUT"
  22053. m$(2)="--------------------"
  22054. m$(3)=CHR$(2)
  22055. m$(4)=CHR$(3)
  22056. m$(5)=CHR$(4)
  22057. m$(6)=CHR$(5)
  22058. m$(7)=CHR$(6)
  22059. m$(8)=CHR$(7)
  22060. m$(9)=CHR$(8)
  22061. m$(10)=""
  22062. m$(11)=pd_menu$
  22063. m$(12)=pd_datei$
  22064. m$(13)=pd_editieren$
  22065. m$(14)=pd_fenster$
  22066. m$(15)=pd_schnittpunkt$
  22067. m$(16)=pd_bogen$
  22068. m$(17)="----------------------"
  22069. m$(18)=pd_text$
  22070. m$(19)=pd_zeicheneditor$
  22071. m$(20)=m$(17)
  22072. m$(21)=pd_extra$
  22073. m$(22)=m$(17)
  22074. m$(23)=pd_quit$
  22075. m$(24)=""
  22076. m$(25)=pd_optionen$
  22077. m$(26)=pd_marker_anzeigen$
  22078. m$(27)=pd_tangenten_anzeigen$
  22079. m$(28)=pd_fangradius_klein$
  22080. m$(29)=pd_polygon_modus$
  22081. m$(30)=pd_schnittpunkt_genau$
  22082. m$(31)=pd_koordinaten$
  22083. m$(32)=pd_element_selektieren$
  22084. m$(33)=pd_polygon_selektieren$
  22085. m$(34)=pd_warnmeldungen$
  22086. m$(35)="---------------------------"
  22087. m$(36)=pd_skaliere_alles$
  22088. m$(37)=m$(35)
  22089. m$(38)=pd_punkte_nivellieren$
  22090. m$(39)=pd_tangente$
  22091. m$(40)=m$(35)
  22092. m$(41)=pd_plotflaeche$
  22093. m$(42)=pd_bezier_step_aendern$
  22094. m$(43)=pd_plotter_einstellung$
  22095. m$(44)=pd_kosten_faktor$
  22096. m$(45)=pd_pfad_sichern$
  22097. m$(46)=""
  22098. m$(47)=pd_figur$
  22099. m$(48)=pd_rechteck$
  22100. m$(49)=pd_n_eck$
  22101. m$(50)=pd_polygon_outline$
  22102. m$(51)=pd_aequidistante$
  22103. m$(52)=pd_frame$
  22104. m$(53)="---------------------------"
  22105. m$(54)=pd_polygone_ausrichten$
  22106. m$(55)=pd_polygone_zentrieren$
  22107. m$(56)=pd_polygone_vereinen$
  22108. m$(57)=pd_polygone_fuellen$
  22109. m$(58)=m$(53)
  22110. m$(59)=pd_einzelne_punkte_loeschen$
  22111. m$(60)=""
  22112. m$(61)=pd_linie$
  22113. m$(62)=pd_bezier_vektor$
  22114. m$(63)=pd_bezier_einfuegen$
  22115. m$(64)=pd_tausche_bezier_vektor$
  22116. m$(65)=m$(53)
  22117. m$(66)=pd_knacken$
  22118. m$(67)=pd_trimmen$
  22119. m$(68)=pd_lot$
  22120. m$(69)=pd_verlaengern$
  22121. m$(70)=pd_teilen$
  22122. m$(71)=pd_messen$
  22123. m$(72)=m$(53)
  22124. m$(73)=pd_schnittp_2er$
  22125. m$(74)=pd_schnittp_n$
  22126. m$(75)=""
  22127. m$(76)=pd_effekt$
  22128. m$(77)=pd_parameter_schraffur$
  22129. m$(78)=pd_polygon_schraffieren$
  22130. m$(79)=pd_alles_schraffieren$
  22131. m$(80)="------------------------"
  22132. m$(81)=pd_schatten$
  22133. m$(82)=pd_einpassen$
  22134. m$(83)=m$(80)
  22135. m$(84)=pd_kugel$
  22136. m$(85)=""
  22137. m$(86)=""
  22138. MENU m$()
  22139. IF fangklein!
  22140.   MENU 28,1
  22141. ENDIF
  22142. IF polygonmode!
  22143.   MENU 29,1
  22144. ENDIF
  22145. IF warn!
  22146.   MENU 34,1
  22147. ENDIF
  22148. CLIP 0,0,639,399 OFFSET 0,0
  22149. DEFTEXT 1,0,0,6
  22150. COLOR 1
  22151. TEXT 400,7,"Zoom X:"
  22152. TEXT 400,15,"Zoom Y:"
  22153. TEXT 540,7,"X:"
  22154. TEXT 540,15,"Y:"
  22155. DEFTEXT 1,0,0,4
  22156. TEXT 624,7,"mm"
  22157. TEXT 624,15,"mm"
  22158. LINE 536,0,536,20
  22159. LINE 396,0,396,20
  22160. '
  22161. ~FORM_DIAL(3,0,0,0,0,0,0,desk_breite&,desk_hoehe&)                !redraw all
  22162. '
  22163. layer!=FALSE
  22164. zoom=1
  22165. x_layer%=folie_x%
  22166. y_layer%=folie_y%
  22167. x_layero%=x_layer%
  22168. y_layero%=y_layer%
  22169. res_x%=x_layer%
  22170. res_y%=y_layer%
  22171. x_offset&=0
  22172. y_offset&=0
  22173. res_x_old%=x_layer%
  22174. res_y_old%=y_layer%
  22175. x_offset_old&=0
  22176. y_offset_old&=0
  22177. pointer%=0
  22178. get_desktop
  22179. scrb_old&=scrb&
  22180. scrh_old&=scrh&
  22181. CLOSEW 1
  22182. programm$=noname$
  22183. INT{WINDTAB+2}=&X111111000000
  22184. INT{WINDTAB+4}=scrx&
  22185. INT{WINDTAB+6}=scry&
  22186. INT{WINDTAB+8}=scrb&
  22187. INT{WINDTAB+10}=scrh&
  22188. help_titel
  22189. OPENW 1
  22190. calc_slid
  22191. ~WIND_GET(1,4,x_win&,y_win&,b_window&,h_window&)
  22192. neues_polygon!=TRUE
  22193. do_redraw
  22194. DEFMOUSE 3
  22195. p_zoom(zoom*100,zoom*100)
  22196. CHAR{{OB_SPEC(tree14_adr%,rx1&)}}=STR$(x_layer%)
  22197. CHAR{{OB_SPEC(tree14_adr%,ry1&)}}=STR$(y_layer%)
  22198. ' test_vollbild
  22199. '
  22200. ~OBJC_OFFSET(tree28_adr%,gtprewin&,gtxv&,gtyv&)
  22201. gtxv&=gtxv&-x_win&+1
  22202. gtyv&=gtyv&-y_win&+1
  22203. '
  22204. ON MENU MESSAGE GOSUB message
  22205. ON MENU BUTTON 1,1,1 GOSUB button
  22206. ON MENU GOSUB menu
  22207. ON MENU KEY GOSUB key
  22208. ' ON ERROR GOSUB fehler
  22209. '
  22210. '
  22211. REPEAT
  22212.   ON MENU
  22213. UNTIL end!
  22214. '
  22215. IF modified!
  22216.   IF pointer%>0
  22217.     ALERT 3,"| "+sichere$+daten$,1,ja_nein$,i%
  22218.     IF i%=1
  22219.       @save_vektor
  22220.     ENDIF
  22221.   ENDIF
  22222. ENDIF
  22223. '
  22224. ' Bei fertigen Programmen hier nur QUIT
  22225. '
  22226. reset
  22227. ~WIND_GET(0,10)
  22228. IF DPEEK(GINTOUT+2)
  22229.   ALERT 1,"Accessories",1,"Close|Quit",i%
  22230.   IF i%=2
  22231.     QUIT
  22232.   ENDIF
  22233.   REPEAT
  22234.     ~WIND_GET(0,10)
  22235.   UNTIL DPEEK(GINTOUT+2)=0
  22236. ENDIF
  22237. RESERVE                                ! XBIOS(2)-HIMEM+FRE(0)-16384
  22238. '
  22239. PROCEDURE fehler
  22240.   ALERT 1,fehler$,1,leider$,i%
  22241.   '  RESUME NEXT
  22242. RETURN
  22243. '
  22244. '
  22245. PROCEDURE get_undo
  22246.   LOCAL dp%
  22247.   dp%=daten_ptr%
  22248.   IF (pointer%*9+1<work_space%) AND (NOT layer_geladen!)
  22249.     LONG{dp%}=pointer%
  22250.     ADD dp%,4
  22251.     undo!=TRUE
  22252.     BMOVE VARPTR(punkte_x%(0)),dp%,pointer%*4
  22253.     ADD dp%,pointer%*4
  22254.     BMOVE VARPTR(punkte_y%(0)),dp%,pointer%*4
  22255.     ADD dp%,pointer%*4
  22256.     BMOVE VARPTR(punkte_def|(0)),dp%,pointer%
  22257.     undo!=TRUE
  22258.   ELSE
  22259.     undo!=FALSE
  22260.   ENDIF
  22261. RETURN
  22262. '
  22263. PROCEDURE put_undo
  22264.   LOCAL dp%
  22265.   IF undo!
  22266.     dp%=daten_ptr%
  22267.     pointer%=LONG{dp%}
  22268.     ADD dp%,4
  22269.     BMOVE dp%,VARPTR(punkte_x%(0)),pointer%*4
  22270.     ADD dp%,pointer%*4
  22271.     BMOVE dp%,VARPTR(punkte_y%(0)),pointer%*4
  22272.     ADD dp%,pointer%*4
  22273.     BMOVE dp%,VARPTR(punkte_def|(0)),pointer%
  22274.     undo!=FALSE
  22275.     do_redraw
  22276.   ENDIF
  22277. RETURN
  22278. '
  22279. PROCEDURE output_drucker
  22280.   LOCAL handle&,x_resi&,y_resi&,z_old
  22281.   IF GDOS?
  22282.     ERASE work%()
  22283.     IF FRE(0)>250000
  22284.       RESERVE -250000
  22285.       handle&=V_OPNWK(21)
  22286.       IF handle&<>0
  22287.         V~H=handle&
  22288.         x_resi&=INTOUT(0)
  22289.         y_resi&=INTOUT(1)
  22290.         ~V_CLRWK()
  22291.         z_old=zoom
  22292.         zoom=4
  22293.         redraw_ohne(0)
  22294.         ~V_UPDWK()
  22295.         ~V_CLSWK()
  22296.         zoom=z_old
  22297.       ELSE
  22298.       ENDIF
  22299.       RESERVE
  22300.     ELSE
  22301.     ENDIF
  22302.     DIM work%((FRE(0)-80*1024)/4)
  22303.     daten_ptr%=V:work%(0)
  22304.     work_space%=DIM?(work%())*4
  22305.   ELSE
  22306.   ENDIF
  22307. RETURN
  22308. '
  22309. '
  22310. PROCEDURE scan_a1
  22311.   ALERT 3,"| SCAN Hochformat: ",1,"A3|A2|A1",i%
  22312.   SELECT i%
  22313.   CASE 1
  22314.     scann_x%=INT(17*400/8)       !17
  22315.     scann_y%=INT(12*400)        !12
  22316.   CASE 2
  22317.     scann_x%=INT(25*400/8)
  22318.     scann_y%=INT(17*400)
  22319.   CASE 3
  22320.     scann_x%=INT(34*400/8)
  22321.     scann_y%=INT(25*400)
  22322.   ENDSELECT
  22323.   scan_graphtec(3,400,0,0,scann_x%,scann_y%)
  22324. RETURN
  22325. '
  22326. PROCEDURE scan_graphtec(device&,dpi&,x_0%,y_0%,bytes_x%,lines_y%)
  22327.   LOCAL command_bytes&,bytes_to_transfer%,transfer_dir&
  22328.   LOCAL y_offset%,block&,command_bytes&,bytes_to_transfer%
  22329.   ' IF FN test_unit_ready(device&)=0
  22330.   set_graphtec_window(device&,dpi&,x_0%,y_0%,bytes_x%,lines_y%)
  22331.   command_bytes&=10
  22332.   block&=&HFFFF DIV bytes_x% DIV 3
  22333.   bytes_to_transfer%=bytes_x%*block&*3
  22334.   transfer_dir&=0                               ! LESEN
  22335.   command|(0)=&H28
  22336.   command|(1)=0
  22337.   command|(2)=0
  22338.   command|(3)=0
  22339.   command|(4)=0
  22340.   command|(5)=0
  22341.   command|(6)=0
  22342.   command|(7)=0
  22343.   command|(8)=0
  22344.   command|(9)=0
  22345.   WORD{V:command|(7)}=block&
  22346.   '
  22347.   anzahl&=lines_y% DIV block&
  22348.   rest&=lines_y% MOD block&
  22349.   y_offset%=0
  22350.   FOR i%=1 TO anzahl&
  22351.     $c+
  22352.     fehler%=C:scsi%(device&,command_bytes&,bytes_to_transfer%,transfer_dir&,L:V:command|(0),L:daten_ptr%+y_offset%)
  22353.     $c-
  22354.     ADD y_offset%,block&*bytes_x%
  22355.   NEXT i%
  22356.   IF rest&<>0
  22357.     bytes_to_transfer%=bytes_x%*rest&*3
  22358.     WORD{V:command|(7)}=rest&
  22359.     $c+
  22360.     fehler%=C:scsi%(device&,command_bytes&,bytes_to_transfer%,transfer_dir&,L:V:command|(0),L:daten_ptr%+y_offset%)
  22361.     $c-
  22362.   ENDIF
  22363.   '  status&=AND(CARD(fehler%),&X11110)
  22364.   ' message&=CARD(SWAP(fehler%))
  22365.   layer!=TRUE
  22366.   layer_geladen!=TRUE
  22367.   voll_bild!=TRUE
  22368.   outlined!=FALSE
  22369.   do_change_aufloesung(bytes_x%*8,lines_y%,1)
  22370.   init_bit_blit
  22371.   p_zoom(zoom*100,zoom*100)
  22372.   do_redraw
  22373.   ' ENDIF
  22374. RETURN
  22375. '
  22376. PROCEDURE set_graphtec_window(device&,dpi&,x_0%,y_0%,bytes_x%,lines_y%)
  22377.   LOCAL command_bytes&,bytes_to_transfer%,transfer_dir&
  22378.   command_bytes&=10
  22379.   bytes_to_transfer%=53
  22380.   transfer_dir&=1                               ! LESEN (1=SCHREIBEN)
  22381.   command|(0)=&H24
  22382.   command|(1)=0
  22383.   command|(2)=0
  22384.   command|(3)=0
  22385.   command|(4)=0
  22386.   command|(5)=0
  22387.   command|(6)=0
  22388.   command|(7)=0
  22389.   command|(8)=bytes_to_transfer%
  22390.   command|(9)=0
  22391.   FOR i%=0 TO 6
  22392.     buffer|(i%)=0
  22393.   NEXT i%
  22394.   FOR i%=38 TO 47
  22395.     buffer|(i%)=0
  22396.   NEXT i%
  22397.   buffer|(7)=45                         ! Window Descriptor Block Length
  22398.   buffer|(8)=0                          ! Window ID
  22399.   buffer|(9)=0                          ! reserved
  22400.   WORD{V:buffer|(10)}=dpi&              ! X resolution
  22401.   WORD{V:buffer|(12)}=dpi&              ! Y resolution
  22402.   LONG{V:buffer|(14)}=x_0%*24           ! X Upper Left
  22403.   LONG{V:buffer|(18)}=y_0%*3            ! Y Upper Left
  22404.   LONG{V:buffer|(22)}=bytes_x%*24       ! Width
  22405.   LONG{V:buffer|(26)}=lines_y%*3        ! Length
  22406.   buffer|(30)=0                         ! reserved
  22407.   buffer|(31)=0                         ! Kontrast
  22408.   buffer|(32)=0                         ! reserved
  22409.   buffer|(33)=0                         ! Image composition
  22410.   buffer|(34)=1                         ! Bits per Pixel
  22411.   buffer|(35)=0                         ! reserved
  22412.   buffer|(36)=0                         ! reserved
  22413.   buffer|(37)=0                         ! Reverse Image
  22414.   buffer|(48)=2                         ! Cell length
  22415.   buffer|(49)=5                         ! Function Code
  22416.   buffer|(50)=1                         ! Fine Line
  22417.   buffer|(51)=2                         ! Cell length
  22418.   buffer|(52)=6                         ! Function Code
  22419.   buffer|(53)=1                         ! Scann Speed
  22420.   $c+
  22421.   fehler%=C:scsi%(device&,command_bytes&,bytes_to_transfer%,transfer_dir&,L:V:command|(0),L:V:buffer|(0))
  22422.   $c-
  22423. RETURN
  22424. '
  22425. FUNCTION test_unit_ready(device&)
  22426.   command_bytes&=6
  22427.   bytes_to_transfer%=1
  22428.   transfer_dir&=0                               ! LESEN (1=SCHREIBEN)
  22429.   command|(0)=0
  22430.   command|(1)=0
  22431.   command|(2)=0
  22432.   command|(3)=0
  22433.   command|(4)=bytes_to_transfer%
  22434.   command|(5)=0
  22435.   '
  22436.   $c+
  22437.   fehler%=C:scsi%(device&,command_bytes&,L:bytes_to_transfer%,transfer_dir&,L:V:command|(0),L:V:buffer|(0))
  22438.   $c-
  22439.   status&=AND(CARD(fehler%),&X11110)
  22440.   message&=CARD(SWAP(fehler%))
  22441.   '
  22442.   RETURN status&
  22443. ENDFUNC
  22444. '
  22445. '
  22446. PROCEDURE gt_info(i$)
  22447.   CHAR{{OB_SPEC(tree28_adr%,gtstate&)}}=i$
  22448.   ~OBJC_DRAW(tree28_adr%,gtstate&,8,xt28&,yt28&,bt28&,ht28&)
  22449. RETURN
  22450. '
  22451. PROCEDURE dpi_change(prex0&,prey0&,prex0_min&,prey0_min&)
  22452.   CHAR{{OB_SPEC(tree28_adr%,gtdpi&)}}=STR$(gtdpiv&)
  22453.   ~OBJC_DRAW(tree28_adr%,gtdpi&,8,xt28&,yt28&,bt28&,ht28&)
  22454.   CHAR{{OB_SPEC(tree28_adr%,gtb&)}}=STR$(AND(INT(gtbv&/25.4*gtdpiv&),&HFFF8))
  22455.   CHAR{{OB_SPEC(tree28_adr%,gth&)}}=STR$(AND(INT(gthv&/25.4*gtdpiv&),&HFFF8))
  22456.   ~OBJC_DRAW(tree28_adr%,gtb&,8,xt28&,yt28&,bt28&,ht28&)
  22457.   ~OBJC_DRAW(tree28_adr%,gth&,8,xt28&,yt28&,bt28&,ht28&)
  22458.   CHAR{{OB_SPEC(tree28_adr%,gtx&)}}=STR$(AND(INT((prex0&-prex0_min&)/25.4*gtdpiv&),&HFFF8))
  22459.   CHAR{{OB_SPEC(tree28_adr%,gty&)}}=STR$(AND(INT((prey0&-prey0_min&)/25.4*gtdpiv&),&HFFF8))
  22460.   ~OBJC_DRAW(tree28_adr%,gtx&,8,xt28&,yt28&,bt28&,ht28&)
  22461.   ~OBJC_DRAW(tree28_adr%,gty&,8,xt28&,yt28&,bt28&,ht28&)
  22462. RETURN
  22463. '
  22464. PROCEDURE gt_6000
  22465.   LOCAL prex0&,prey0&,prex0_min&,prey0_min&,x_changed&,y_changed&
  22466.   LOCAL prex&,prey&,gthalbton&
  22467.   DEFMOUSE 0
  22468.   SETMOUSE xt28&+240,yt28&+310,0
  22469.   CLIP 0,0,desk_breite&,desk_hoehe& OFFSET x_win&,y_win&
  22470.   ~OBJC_OFFSET(tree28_adr%,gtprewin&,prex&,prey&)
  22471.   gthalbton&=1
  22472.   prex0&=prex&-x_win&+1
  22473.   prey0&=prey&-y_win&+1
  22474.   prex0_min&=prex0&
  22475.   prey0_min&=prey0&
  22476.   prex0_max&=prex0&+217
  22477.   prey0_max&=prey0&+297
  22478.   prex0&=gtxv&
  22479.   prey0&=gtyv&
  22480.   '
  22481.   CHAR{{OB_SPEC(tree28_adr%,gtx&)}}=STR$(AND(INT((prex0&-prex0_min&)/25.4*gtdpiv&),&HFFF8))
  22482.   CHAR{{OB_SPEC(tree28_adr%,gty&)}}=STR$(AND(INT((prey0&-prey0_min&)/25.4*gtdpiv&),&HFFF8))
  22483.   CHAR{{OB_SPEC(tree28_adr%,gtb&)}}=STR$(AND(INT(gtbv&/25.4*gtdpiv&),&HFFF8))
  22484.   CHAR{{OB_SPEC(tree28_adr%,gth&)}}=STR$(AND(INT(gthv&/25.4*gtdpiv&),&HFFF8))
  22485.   CHAR{{OB_SPEC(tree28_adr%,gtdpi&)}}=STR$(gtdpiv&)
  22486.   CHAR{{OB_SPEC(tree28_adr%,gtstate&)}}=waehle$
  22487.   GET xt28&-4,yt28&-4,xt28&+bt28&+4,yt28&+ht28&+4,rette$
  22488.   ~OBJC_DRAW(tree28_adr%,0,8,xt28&,yt28&,bt28&,ht28&)
  22489.   smfdb%(0)=V:prebuf$
  22490.   smfdb%(1)=208
  22491.   smfdb%(2)=292
  22492.   smfdb%(3)=smfdb%(1)/16
  22493.   smfdb%(5)=1
  22494.   dmfdb%(0)=XBIOS(3)
  22495.   dmfdb%(1)=desk_breite&
  22496.   dmfdb%(2)=desk_hoehe&
  22497.   dmfdb%(3)=dmfdb%(1)/16
  22498.   dmfdb%(5)=1
  22499.   p%(0)=0
  22500.   p%(1)=0
  22501.   p%(2)=207
  22502.   p%(3)=291
  22503.   p%(4)=prex&+1
  22504.   p%(5)=prey&+1
  22505.   p%(6)=p%(4)+207
  22506.   p%(7)=p%(5)+291
  22507.   p%(8)=3
  22508.   BITBLT smfdb%(),dmfdb%(),p%()
  22509.   DEFFILL 1,1,1
  22510.   GRAPHMODE 3
  22511.   BOX prex0&,prey0&,prex0&+gtbv&,prey0&+gthv&
  22512.   PBOX prex0&+gtbv&-8,prey0&+gthv&-8,prex0&+gtbv&,prey0&+gthv&
  22513.   REPEAT
  22514.     DO
  22515.       ~FORM_DO(tree28_adr%,0)
  22516.       IF INT{GINTOUT}>0 AND INT{GINTOUT}<100
  22517.         exit_button&=DPEEK(GINTOUT)
  22518.         OB_STATE(tree28_adr%,exit_button&)=0
  22519.         IF exit_button&<>gtprewin&
  22520.           ~OBJC_DRAW(tree28_adr%,exit_button&,8,xt28&,yt28&,bt28&,ht28&)
  22521.         ENDIF
  22522.       ENDIF
  22523.       SELECT exit_button&
  22524.       CASE gtdpimin&
  22525.         IF gtdpiv&>100
  22526.           IF gtdpiv&=480
  22527.             gtdpiv&=400
  22528.           ELSE
  22529.             IF gtdpiv&=600
  22530.               gtdpiv&=480
  22531.             ELSE
  22532.               SUB gtdpiv&,100
  22533.             ENDIF
  22534.           ENDIF
  22535.           dpi_change(prex0&,prey0&,prex0_min&,prey0_min&)
  22536.         ENDIF
  22537.       CASE gtdpiplu&
  22538.         IF gtdpiv&<600
  22539.           IF gtdpiv&=400
  22540.             gtdpiv&=480
  22541.           ELSE
  22542.             IF gtdpiv&=480
  22543.               gtdpiv&=600
  22544.             ELSE
  22545.               ADD gtdpiv&,100
  22546.             ENDIF
  22547.           ENDIF
  22548.           dpi_change(prex0&,prey0&,prex0_min&,prey0_min&)
  22549.         ENDIF
  22550.       CASE gtprewin&
  22551.         MOUSE x_mouse%,y_mouse%,taste|
  22552.         IF x_mouse%>prex0&+gtbv&-8 AND x_mouse%<prex0&+gtbv& AND y_mouse%>prey0&+gthv&-8 AND y_mouse%<prey0&+gthv&
  22553.           DEFMOUSE 3
  22554.           REPEAT
  22555.             MOUSE x_mouse%,y_mouse%,taste|
  22556.             IF x_mouse%<>x_mouse_old% OR y_mouse%<>y_mouse_old%
  22557.               BOX prex0&,prey0&,prex0&+gtbv&,prey0&+gthv&
  22558.               PBOX prex0&+gtbv&-8,prey0&+gthv&-8,prex0&+gtbv&,prey0&+gthv&
  22559.               IF x_mouse%-prex0_min&<217 AND x_mouse%-prex0&>16
  22560.                 gtbv&=x_mouse%-prex0&
  22561.                 i%=AND(INT(gtbv&/25.4*gtdpiv&),&HFFF0)
  22562.                 gtbv&=CINT(i%*25.4/gtdpiv&)
  22563.               ENDIF
  22564.               IF y_mouse%-prey0_min&<298 AND y_mouse%-prey0&>16
  22565.                 gthv&=y_mouse%-prey0&
  22566.               ENDIF
  22567.               BOX prex0&,prey0&,prex0&+gtbv&,prey0&+gthv&
  22568.               PBOX prex0&+gtbv&-8,prey0&+gthv&-8,prex0&+gtbv&,prey0&+gthv&
  22569.               SHOWM
  22570.               x_mouse_old%=x_mouse%
  22571.               y_mouse_old%=y_mouse%
  22572.               CHAR{{OB_SPEC(tree28_adr%,gtb&)}}=STR$(AND(INT(gtbv&/25.4*gtdpiv&),&HFFF0))
  22573.               CHAR{{OB_SPEC(tree28_adr%,gth&)}}=STR$(INT(gthv&/25.4*gtdpiv&))
  22574.               ~OBJC_DRAW(tree28_adr%,gtb&,8,xt28&,yt28&,bt28&,ht28&)
  22575.               ~OBJC_DRAW(tree28_adr%,gth&,8,xt28&,yt28&,bt28&,ht28&)
  22576.             ENDIF
  22577.           UNTIL taste|=0
  22578.           DEFMOUSE 0
  22579.         ELSE
  22580.           IF x_mouse%>prex0& AND x_mouse%<prex0&+gtbv& AND y_mouse%>prey0& AND y_mouse%<prey0&+gthv&
  22581.             x_mouse_old%=x_mouse%
  22582.             y_mouse_old%=y_mouse%
  22583.             DEFMOUSE 3
  22584.             REPEAT
  22585.               MOUSE x_mouse%,y_mouse%,taste|
  22586.               IF x_mouse%<>x_mouse_old% OR y_mouse%<>y_mouse_old%
  22587.                 x_changed&=x_mouse%-x_mouse_old%
  22588.                 y_changed&=y_mouse%-y_mouse_old%
  22589.                 BOX prex0&,prey0&,prex0&+gtbv&,prey0&+gthv&
  22590.                 PBOX prex0&+gtbv&-8,prey0&+gthv&-8,prex0&+gtbv&,prey0&+gthv&
  22591.                 IF prex0&+x_changed&>=prex0_min& AND prex0&+x_changed&+gtbv&<prex0_max&
  22592.                   ADD prex0&,x_changed&
  22593.                 ENDIF
  22594.                 IF prey0&+y_changed&>=prey0_min& AND prey0&+y_changed&+gthv&<prey0_max&
  22595.                   ADD prey0&,y_changed&
  22596.                 ENDIF
  22597.                 BOX prex0&,prey0&,prex0&+gtbv&,prey0&+gthv&
  22598.                 PBOX prex0&+gtbv&-8,prey0&+gthv&-8,prex0&+gtbv&,prey0&+gthv&
  22599.                 SHOWM
  22600.                 x_mouse_old%=x_mouse%
  22601.                 y_mouse_old%=y_mouse%
  22602.                 CHAR{{OB_SPEC(tree28_adr%,gtx&)}}=STR$(AND(INT((prex0&-prex0_min&)/25.4*gtdpiv&),&HFFF8))
  22603.                 CHAR{{OB_SPEC(tree28_adr%,gty&)}}=STR$(AND(INT((prey0&-prey0_min&)/25.4*gtdpiv&),&HFFF8))
  22604.                 ~OBJC_DRAW(tree28_adr%,gtx&,8,xt28&,yt28&,bt28&,ht28&)
  22605.                 ~OBJC_DRAW(tree28_adr%,gty&,8,xt28&,yt28&,bt28&,ht28&)
  22606.               ENDIF
  22607.             UNTIL taste|=0
  22608.             DEFMOUSE 0
  22609.           ENDIF
  22610.         ENDIF
  22611.       CASE gtpresca&
  22612.         gt_info(scannen$+pre_view$)
  22613.         HIDEM
  22614.         gt6000%=VARPTR(gt6000$)
  22615.         $C+
  22616.         VOID C:gt6000%(1,50,3,3,gthalbton&,0,0,26,292,L:V:prebuf$,L:V:prebuf$+8000)
  22617.         $C-
  22618.         OUT (2),13
  22619.         trigger_0
  22620.         DEFMOUSE 3
  22621.         SHOWM
  22622.         BOX prex0&,prey0&,prex0&+gtbv&,prey0&+gthv&
  22623.         PBOX prex0&+gtbv&-8,prey0&+gthv&-8,prex0&+gtbv&,prey0&+gthv&
  22624.         smfdb%(0)=V:prebuf$
  22625.         BITBLT smfdb%(),dmfdb%(),p%()
  22626.         BOX prex0&,prey0&,prex0&+gtbv&,prey0&+gthv&
  22627.         PBOX prex0&+gtbv&-8,prey0&+gthv&-8,prex0&+gtbv&,prey0&+gthv&
  22628.         gt_info(waehle$)
  22629.       ENDSELECT
  22630.       EXIT IF exit_button&=gtcancel&
  22631.       EXIT IF exit_button&=gtscan&
  22632.     LOOP
  22633.     IF exit_button&=gtcancel&
  22634.       PUT xt28&-4,yt28&-4,rette$
  22635.       ok!=TRUE
  22636.     ENDIF
  22637.     IF exit_button&=gtscan&
  22638.       IF OB_STATE(tree28_adr%,gthart&)=1
  22639.         gthalbton&=0
  22640.       ELSE
  22641.         IF OB_STATE(tree28_adr%,gtweich&)=1
  22642.           gthalbton&=16
  22643.         ELSE
  22644.           IF OB_STATE(tree28_adr%,gtraster&)=1
  22645.             gthalbton&=32
  22646.           ELSE
  22647.             gthalbton&=1
  22648.           ENDIF
  22649.         ENDIF
  22650.       ENDIF
  22651.       IF OB_STATE(tree28_adr%,gtrot&)=1
  22652.         gtfarbev&=0
  22653.       ELSE
  22654.         IF OB_STATE(tree28_adr%,gtgruen&)=1
  22655.           gtfarbev&=1
  22656.         ELSE
  22657.           IF OB_STATE(tree28_adr%,gtblau&)=1
  22658.             gtfarbev&=2
  22659.           ELSE
  22660.             gtfarbev&=3
  22661.           ENDIF
  22662.         ENDIF
  22663.       ENDIF
  22664.       IF OB_STATE(tree28_adr%,k0&)=1
  22665.         gtkontrav&=0
  22666.       ELSE
  22667.         IF OB_STATE(tree28_adr%,k1&)=1
  22668.           gtkontrav&=1
  22669.         ELSE
  22670.           IF OB_STATE(tree28_adr%,k2&)=1
  22671.             gtkontrav&=2
  22672.           ELSE
  22673.             IF OB_STATE(tree28_adr%,k3&)=1
  22674.               gtkontrav&=3
  22675.             ELSE
  22676.               IF OB_STATE(tree28_adr%,k4&)=1
  22677.                 gtkontrav&=4
  22678.               ELSE
  22679.                 IF OB_STATE(tree28_adr%,k5&)=1
  22680.                   gtkontrav&=5
  22681.                 ELSE
  22682.                   gtkontrav&=6
  22683.                 ENDIF
  22684.               ENDIF
  22685.             ENDIF
  22686.           ENDIF
  22687.         ENDIF
  22688.       ENDIF
  22689.       gt_info(scannen$+bereich$)
  22690.       gtxorig&=CINT(AND(INT((prex0&+2-prex0_min&)/25.4*gtdpiv&),&HFFF8)/8)
  22691.       gtyorig&=CINT((prey0&+2-prey0_min&)/25.4*gtdpiv&)
  22692.       gtxbytes&=CINT(AND(INT(gtbv&/25.4*gtdpiv&),&HFFF0)/8)
  22693.       gtyzeilen&=CINT(gthv&/25.4*gtdpiv&)
  22694.       IF gtxbytes&*(gtyzeilen&+1)<work_space%
  22695.         HIDEM
  22696.         gt6000%=VARPTR(gt6000$)
  22697.         $C+
  22698.         i%=C:gt6000%(0,gtdpiv&,gtfarbev&,gtkontrav&,gthalbton&,gtxorig&,gtyorig&,gtxbytes&,gtyzeilen&,L:daten_ptr%,L:daten_ptr%+work_space%)
  22699.         $C-
  22700.         OUT (2),13
  22701.         trigger_0
  22702.         DEFMOUSE 3
  22703.         SHOWM
  22704.       ELSE
  22705.         i%=-1
  22706.       ENDIF
  22707.       IF i%>=0
  22708.         gt_info(waehle$)
  22709.         PUT xt28&-4,yt28&-4,rette$
  22710.         layer!=TRUE
  22711.         layer_geladen!=TRUE
  22712.         voll_bild!=TRUE
  22713.         outlined!=FALSE
  22714.         do_change_aufloesung(AND(INT(gtbv&/25.4*gtdpiv&),&HFFF0),INT(gthv&/25.4*gtdpiv&),1)
  22715.         init_bit_blit
  22716.         p_zoom(zoom*100,zoom*100)
  22717.         do_redraw
  22718.         ok!=TRUE
  22719.       ELSE
  22720.         FOR i%=1 TO 5
  22721.           gt_info(fehler$)
  22722.           PAUSE 15
  22723.           gt_info("      ")
  22724.           PAUSE 15
  22725.         NEXT i%
  22726.         gt_info(waehle$)
  22727.         ok!=FALSE
  22728.       ENDIF
  22729.     ENDIF
  22730.   UNTIL ok!
  22731.   gtxv&=prex0&
  22732.   gtyv&=prey0&
  22733.   ~WIND_GET(1,4)
  22734.   clip(x_window&,y_window&,b_window&,h_window&,INT{GINTOUT+2},INT{GINTOUT+4})
  22735.   set_clip_offset
  22736.   GRAPHMODE 1
  22737.   DEFFILL 0,0
  22738.   DEFMOUSE 3
  22739.   init_bit_blit
  22740. RETURN
  22741. '
  22742. PROCEDURE set_clip_offset
  22743.   INT{WINDTAB+64}=INT{WINDTAB+64}-x_offset&
  22744.   INT{WINDTAB+66}=INT{WINDTAB+66}-y_offset&
  22745. RETURN
  22746. '
  22747. PROCEDURE helpo(help$)
  22748.   TITLEW #1,ein_space$+help$+ein_space$
  22749.   set_clip_offset
  22750. RETURN
  22751. '
  22752. PROCEDURE help(help$)
  22753.   TITLEW #1,ein_space$+waehle$+help$+ein_space$
  22754.   set_clip_offset
  22755. RETURN
  22756. '
  22757. PROCEDURE help_titel
  22758.   TITLEW #1,ein_space$+pfad_vek$+"\"+programm$+".VEK "
  22759.   set_clip_offset
  22760.   DEFMOUSE 3
  22761.   DEFLINE 1
  22762.   COLOR 1
  22763.   GRAPHMODE 1
  22764.   p_xy_info("X:","Y:",0)
  22765.   SHOWM
  22766.   trigger_0
  22767.   zeit%=TIMER
  22768. RETURN
  22769. '
  22770. PROCEDURE polygon_fill
  22771.   REPEAT
  22772.     DEFMOUSE 0
  22773.     GET xt20&-4,yt20&-4,xt20&+bt20&+4,yt20&+ht20&+4,rette$
  22774.     SETMOUSE xt20&+bt20&/2,yt20&+160,0
  22775.     ~OBJC_DRAW(tree20_adr%,0,8,xt20&,yt20&,bt20&,ht20&)
  22776.     ~FORM_DO(tree20_adr%,0)
  22777.     exit_button&=DPEEK(GINTOUT)
  22778.     OB_STATE(tree20_adr%,exit_button&)=0
  22779.     PUT xt20&-4,yt20&-4,rette$
  22780.     IF OB_STATE(tree20_adr%,fill1&)=1
  22781.       DEFFILL 1,2,1
  22782.     ELSE IF OB_STATE(tree20_adr%,fill2&)=1
  22783.       DEFFILL 1,2,2
  22784.     ELSE IF OB_STATE(tree20_adr%,fill3&)=1
  22785.       DEFFILL 1,2,3
  22786.     ELSE IF OB_STATE(tree20_adr%,fill4&)=1
  22787.       DEFFILL 1,2,4
  22788.     ELSE IF OB_STATE(tree20_adr%,fill5&)=1
  22789.       DEFFILL 1,2,5
  22790.     ELSE IF OB_STATE(tree20_adr%,fill6&)=1
  22791.       DEFFILL 1,2,6
  22792.     ELSE IF OB_STATE(tree20_adr%,fill7&)=1
  22793.       DEFFILL 1,2,8
  22794.     ENDIF
  22795.     DEFMOUSE mdaten$
  22796.     help(help_polygon$)
  22797.     IF exit_button&<>fillcancel&
  22798.       REPEAT
  22799.         trigger_0
  22800.         wait_taste
  22801.         IF taste|<>2
  22802.           FILL x_mouse%,y_mouse%
  22803.         ENDIF
  22804.       UNTIL taste|=2
  22805.     ENDIF
  22806.   UNTIL exit_button&=fillcancel&
  22807.   ~FRE(0)
  22808.   DEFFILL 1,1
  22809.   help_titel
  22810. RETURN
  22811. '
  22812. ' *****************************************************************************
  22813. ' *                            TANGENTE NIVELLIEREN                           *
  22814. ' *                                                                           *
  22815. ' *  VERÄNDERT VAR: Punkte_X%(), Punkte_Y%()                                  *
  22816. ' *                                                                           *
  22817. ' *****************************************************************************
  22818. '
  22819. PROCEDURE do_niv_tangente(found_quelle%,von%,bis%,dreh_x%,dreh_y%)
  22820.   LOCAL phi,strecke
  22821.   dx=SUB(dreh_x%,punkte_x%(found%))
  22822.   dy=SUB(dreh_y%,punkte_y%(found%))
  22823.   strecke=SQR(dx*dx+dy*dy)
  22824.   get_phi(dreh_x%,dreh_y%,punkte_x%(found_quelle%),punkte_y%(found_quelle%),phi)
  22825.   redraw_von_bis(von%,bis%,0)
  22826.   punkte_x%(found%)=CINT(dreh_x%-strecke*COS(phi))
  22827.   punkte_y%(found%)=CINT(dreh_y%-strecke*SIN(phi))
  22828.   redraw_von_bis(von%,bis%,1)
  22829. RETURN
  22830. '
  22831. PROCEDURE tangente_nivellieren
  22832.   LOCAL found_quelle%,quelle_def|
  22833.   LOCAL von%,bis%,f%,dreh_x%,dreh_y%
  22834.   IF pointer%>1
  22835.     show_cursor_fang
  22836.     REPEAT
  22837.       trigger_0
  22838.       GRAPHMODE 1
  22839.       REPEAT
  22840.         wait_taste
  22841.         EXIT IF taste|=2
  22842.         find(x_mouse%*100/zoom,y_mouse%*100/zoom)
  22843.         quelle_def|=punkte_def|(found%)
  22844.       UNTIL (quelle_def|>da| AND quelle_def|<b3|)
  22845.       IF taste|<>2
  22846.         found_quelle%=found%
  22847.         IF quelle_def|=b1|
  22848.           IF punkte_def|(found_quelle%-1)=b3|
  22849.             found%=found_quelle%-2
  22850.             von%=found_quelle%-4
  22851.             bis%=von%+3
  22852.             dreh_x%=punkte_x%(found_quelle%-1)
  22853.             dreh_y%=punkte_y%(found_quelle%-1)
  22854.             do_niv_tangente(found_quelle%,von%,bis%,dreh_x%,dreh_y%)
  22855.           ELSE
  22856.             IF punkte_def|(found_quelle%-1)=da|
  22857.               found%=found_quelle%
  22858.               found_quelle%=found%-2
  22859.               von%=found%-1
  22860.               bis%=von%+3
  22861.               dreh_x%=punkte_x%(found%-1)
  22862.               dreh_y%=punkte_y%(found%-1)
  22863.               do_niv_tangente(found_quelle%,von%,bis%,dreh_x%,dreh_y%)
  22864.             ELSE
  22865.               IF punkte_def|(found_quelle%-1)=ma|
  22866.                 found%=found_quelle%
  22867.                 REPEAT
  22868.                   INC found%
  22869.                 UNTIL punkte_def|(found%)=ma|
  22870.                 DEC found%
  22871.                 IF punkte_def|(found%)=b3|
  22872.                   DEC found%
  22873.                   von%=found%-2
  22874.                   bis%=von%+3
  22875.                   dreh_x%=punkte_x%(found_quelle%-1)
  22876.                   dreh_y%=punkte_y%(found_quelle%-1)
  22877.                   do_niv_tangente(found_quelle%,von%,bis%,dreh_x%,dreh_y%)
  22878.                 ELSE
  22879.                   IF punkte_def|(found%)=da|
  22880.                     f%=found_quelle%
  22881.                     found_quelle%=found%-1
  22882.                     found%=f%
  22883.                     von%=found%-1
  22884.                     bis%=von%+3
  22885.                     dreh_x%=punkte_x%(found_quelle%+1)
  22886.                     dreh_y%=punkte_y%(found_quelle%+1)
  22887.                     do_niv_tangente(found_quelle%,von%,bis%,dreh_x%,dreh_y%)
  22888.                   ENDIF
  22889.                 ENDIF
  22890.               ENDIF
  22891.             ENDIF
  22892.           ENDIF
  22893.         ELSE
  22894.           IF quelle_def|=b2|
  22895.             IF punkte_def|(found_quelle%+2)=b1|
  22896.               found%=found_quelle%+2
  22897.               von%=found_quelle%+1
  22898.               bis%=von%+3
  22899.               dreh_x%=punkte_x%(found_quelle%+1)
  22900.               dreh_y%=punkte_y%(found_quelle%+1)
  22901.               do_niv_tangente(found_quelle%,von%,bis%,dreh_x%,dreh_y%)
  22902.             ELSE
  22903.               IF punkte_def|(found_quelle%+2)=da|
  22904.                 found%=found_quelle%
  22905.                 found_quelle%=found%+2
  22906.                 von%=found%-2
  22907.                 bis%=von%+3
  22908.                 dreh_x%=punkte_x%(found%+1)
  22909.                 dreh_y%=punkte_y%(found%+1)
  22910.                 do_niv_tangente(found_quelle%,von%,bis%,dreh_x%,dreh_y%)
  22911.               ELSE
  22912.                 IF punkte_def|(found_quelle%+2)=ma|
  22913.                   found%=found_quelle%
  22914.                   REPEAT
  22915.                     DEC found%
  22916.                   UNTIL punkte_def|(found%)=ma|
  22917.                   INC found%
  22918.                   IF punkte_def|(found%)=b1|
  22919.                     von%=found%-1
  22920.                     bis%=von%+3
  22921.                     dreh_x%=punkte_x%(found_quelle%+1)
  22922.                     dreh_y%=punkte_y%(found_quelle%+1)
  22923.                     do_niv_tangente(found_quelle%,von%,bis%,dreh_x%,dreh_y%)
  22924.                   ELSE
  22925.                     IF punkte_def|(found%)=da|
  22926.                       f%=found_quelle%
  22927.                       found_quelle%=found%
  22928.                       found%=f%
  22929.                       von%=found%-2
  22930.                       bis%=von%+3
  22931.                       dreh_x%=punkte_x%(found_quelle%-1)
  22932.                       dreh_y%=punkte_y%(found_quelle%-1)
  22933.                       do_niv_tangente(found_quelle%,von%,bis%,dreh_x%,dreh_y%)
  22934.                     ENDIF
  22935.                   ENDIF
  22936.                 ENDIF
  22937.               ENDIF
  22938.             ENDIF
  22939.           ENDIF
  22940.         ENDIF
  22941.       ENDIF
  22942.     UNTIL taste|=2
  22943.     DEFMOUSE 3
  22944.   ENDIF
  22945. RETURN
  22946. '
  22947. ' *****************************************************************************
  22948. ' *                               ASCII Editor                                *
  22949. ' *                                                                           *
  22950. ' *                                                                           *
  22951. ' *                                                                          ' ******************************************************************************
  22952. ' *                                                                            *
  22953. ' *                                   CUTOUT                                   *
  22954. ' *                                                                            *
  22955. ' *                                 27.02.1992                                 *
  22956. ' *                                                                            *
  22957. ' ******************************************************************************
  22958. '
  22959. '
  22960. $B+
  22961. $I-
  22962. INLINE scsi%,933
  22963. DIM buffer|(512*2)
  22964. DIM command|(12)
  22965. ' VAR:
  22966. ' apl_id&=APPL_INIT()
  22967. magic%=14031952
  22968. '
  22969. ' serien_nummer$="REGIST00"
  22970. ' serien_nummer_vergleich$="REGIST11"
  22971. serien_nummer$=MKD$(101)
  22972. serien_nummer_vergleich$=MKD$(101 XOR magic%)
  22973. '
  22974. fang_schnittpunkt|=4
  22975. buffer%=0
  22976. buffer_max%=0
  22977. poly_len%=0
  22978. bits%=0
  22979. punkt_eintrag&=0
  22980. x_start&=0
  22981. y_start&=0
  22982. edi_max&=0
  22983. m=0
  22984. m_neu=0
  22985. bit_count|=0
  22986. pixel!=FALSE
  22987. '
  22988. regist_nr%=0
  22989. revision$="1.59"
  22990. zeit%=TIMER
  22991. calamus_nr%=0
  22992. ortho|=45
  22993. ortho=RAD(ortho|)
  22994. ortho2=ortho/2
  22995. x_win&=0                                         ! Window X pos  aktuell
  22996. y_win&=0                                         ! Window Y pos  aktuell
  22997. x_window&=0                                      ! Window X pos  aktuell
  22998. y_window&=0                                      ! Window Y pos  aktuell
  22999. b_window&=0                                      ! Window Breite aktuell
  23000. h_window&=0                                      ! Window Höhe   aktuell
  23001. ~WIND_GET(0,4,scrx&,scry&,scrb&,scrh&)           ! maximaler Desktop
  23002. wmx%=scrb&-62
  23003. wmy%=scrh&-57+scry&
  23004. desk_breite&=scrb&
  23005. desk_hoehe&=scrh&+scry&
  23006. gross_bildschirm!=FALSE
  23007. IF desk_breite&>640 OR desk_hoehe&>400
  23008.   gross_bildschirm!=TRUE
  23009. ENDIF
  23010. ADD scrx&,42                                     ! Position Window X+Menuleiste
  23011. SUB scrb&,42                                     ! Breite   Window
  23012. scrb_old&=scrb&
  23013. scrh_old&=scrh&
  23014. res_x%=0                                         ! Auflösung x in mm
  23015. res_y%=0                                         ! Auflösung y in mm
  23016. res_x_old%=0
  23017. res_y_old%=0
  23018. x_layer%=0
  23019. y_layer%=0
  23020. x_layero%=0
  23021. y_layero%=0
  23022. x_offset&=0                                      ! Nullpunkt x im Fenster
  23023. y_offset&=0                                      ! Nullpunkt y im Fenster
  23024. x_offset_old&=0
  23025. y_offset_old&=0
  23026. x_mouse%=0
  23027. y_mouse%=0
  23028. x_mouse_old%=0
  23029. y_mouse_old%=0
  23030. x_mouse_0%=0
  23031. y_mouse_0%=0
  23032. objectbox_x0%=0
  23033. objectbox_y0%=0
  23034. objectbox_x1%=0
  23035. objectbox_y1%=0
  23036. grid%=10                                        ! raster mm
  23037. schraff_dist=201
  23038. schraff_inc=0
  23039. schraff_fix_abst=0
  23040. schraff_winkel=0
  23041. schraff_start%=0
  23042. schraff_y_min%=0
  23043. bit_count_max|=6
  23044. geraden_fehler|=1
  23045. lange_gerade%=4000
  23046. schmutz_filter%=20
  23047. knick_winkel_max=RAD(140)
  23048. bogen_max=PI/2/2
  23049. abweichung_gerade%=0.5*100
  23050. last_poly_s%=-1
  23051. last_poly_e%=-1
  23052. taste|=0
  23053. zoom=1
  23054. zoom_old=1
  23055. zoom_100=1
  23056. pointer%=0                                       ! Zeiger auf Punkteliste
  23057. found%=0                                         ! gefundener Punkt bei SNAP
  23058. found_t%=0                                       ! gefundener Kurvenparameter
  23059. schnittpunkt_genau%=16                           ! Zerlegung Bezier in Teile
  23060. anz_schnittpunkte%=0                             ! Anzahl Schnittpunkte
  23061. b_vari=100
  23062. i%=0                                             ! allgemeiner Schleifenzähler
  23063. ii%=0
  23064. iii%=0
  23065. d0%=0
  23066. dx%=0
  23067. dy%=0
  23068. dx=0
  23069. dy=0
  23070. schnitt_laenge=0
  23071. kostfak=1
  23072. gkosten=0
  23073. px0%=0
  23074. py0%=0
  23075. px1%=0
  23076. py1%=0
  23077. px2%=0
  23078. py2%=0
  23079. px3%=0
  23080. py3%=0
  23081. m_square_breite&=&H3000
  23082. m_square_hoehe&=&H3000
  23083. kerning_256|=m_square_breite& DIV 256
  23084. len_pair_daten&=0
  23085. z_hoehe_def%=16384                               ! Höhe des definierten Zsatzes
  23086. z_breite_def%=16384                              ! Breite     "
  23087. zeichen_hoehe%=3000                              ! gewünschte Höhe in 1/100 mm
  23088. versal_def%=0                                    ! Versal     Höhe in 1/100 mm
  23089. z_ascii_scale=zeichen_hoehe%/z_hoehe_def%        ! Scaling
  23090. z_ascii_scale_old=z_ascii_scale                  ! save Scaling
  23091. global_kerning%=1280                             ! globales Kerning
  23092. zeilen_abstand_prozent%=125                      ! relativer Zeilen Abstand
  23093. zeilen_abstand%=zeichen_hoehe%*zeilen_abstand_prozent%/100-zeichen_hoehe%
  23094. z_cursor_x_spalte%=0                             ! Start String
  23095. z_cursor_x%=0                                    ! ASCII Zeichen Cursor X
  23096. z_cursor_y%=0                                    ! ASCII Zeichen Cursor y
  23097. z_cursor_x_old%=0                                ! letztes Zeichen Cursor X
  23098. z_cursor_y_old%=0                                ! letztes Zeichen Cursor y
  23099. z_ascii_old%=0                                   ! letztes Zeichen ASCII+32
  23100. z_satz_pointer%=0                                ! Pointer auf Zeichensatz
  23101. state_rs232&=0                                   ! Centronics aktiv
  23102. state_hp&=0                                      ! HPGL aktiv
  23103. folie_x%=1188                                    ! Folien Grö₧e
  23104. folie_y%=840
  23105. plotter_x_min%=0
  23106. plotter_y_min%=0
  23107. gdu=0                                            ! 100*Plottereinheit
  23108. sel_start%=0
  23109. sel_end%=0
  23110. gtxv&=0
  23111. gtyv&=0
  23112. gtbv&=216
  23113. gthv&=297
  23114. gtdpiv&=300
  23115. gtfarbev&=3
  23116. gtkontrav&=3
  23117. exit_button&=0
  23118. cursor_x&=0
  23119. cursor_y&=0
  23120. ofn_ver|=0
  23121. overcut|=0
  23122. geschlossen%=0
  23123. '
  23124. phi_x_3d=0
  23125. phi_y_3d=0
  23126. a2_3d=0
  23127. '
  23128. daten_ptr%=0
  23129. work_space%=0
  23130. '
  23131. ' CONST:
  23132. '
  23133. IF FRE(0)>4000000
  23134.   p_max%=99999
  23135. ELSE
  23136.   p_max%=60000
  23137. ENDIF
  23138. ma|=0
  23139. da|=1
  23140. b1|=2
  23141. b2|=3
  23142. b3|=4
  23143. ein_drittel=1/3
  23144. fmin=2.225073858507E-307
  23145. fmin1=0.005
  23146. max1=0.995
  23147. pimal2=PI*2
  23148. pihalbe=PI/2
  23149. pidrittel=PI/3
  23150. fang_rad%=8*100                                  ! FANGRADIUS
  23151. p_at%=XBIOS(3)+76                                ! PRINT AT FÜR X,Y
  23152. p_at_zoom%=p_at%-12                              ! PRINT AT FÜR ZOOM
  23153. x_bytes%=(scrb&+42)/8                            ! BYTES IN X RICHTUNG DESKTOP
  23154. '
  23155. ' CONST: Menuleiste
  23156. '
  23157. tree00&=0
  23158. tree0_adr%=0
  23159. datei&=3
  23160. eintrag&=4
  23161. mfenster&=10
  23162. mtext&=5
  23163. mzedi&=6
  23164. spezial&=7
  23165. all_clear&=8
  23166. bbogen&=9
  23167. mschnitt&=11
  23168. '
  23169. tree01&=1
  23170. tree1_adr%=0
  23171. back_main&=3
  23172. fwd_main&=4
  23173. gerade&=5
  23174. kurve&=6
  23175. schliess&=7
  23176. verrunde&=8
  23177. loeschen&=9
  23178. lock&=10
  23179. snap&=11
  23180. bild&=12
  23181. zircel&=13
  23182. bezier4&=14
  23183. schere&=15
  23184. ' fenster&=15
  23185. '
  23186. tree02&=2
  23187. tree2_adr%=0
  23188. back_datei&=3
  23189. fwd_datei&=4
  23190. l_vek&=5
  23191. l_merge&=6
  23192. r_macro&=7
  23193. r_cvg&=8
  23194. l_img&=9
  23195. l_pic&=10
  23196. ordner&=11
  23197. s_vek&=12
  23198. s_plt&=13
  23199. a_plotter&=14
  23200. '
  23201. tree03&=3
  23202. tree3_adr%=0
  23203. back_fenster&=3
  23204. fwd_fenster&=4
  23205. fmove&=5
  23206. blitz&=6
  23207. fcopy&=7
  23208. fzoom&=8
  23209. fzoomp&=9
  23210. fdreh&=10
  23211. fspiegel&=11
  23212. fkursiv&=12
  23213. dreh3d&=13
  23214. drehxp&=14
  23215. drehxm&=15
  23216. drehym&=16
  23217. drehyp&=17
  23218. floesch&=18
  23219. fzoom1&=19
  23220. '
  23221. tree04&=4
  23222. tree4_adr%=0
  23223. back_spezial&=3
  23224. gtepson&=4
  23225. handy&=5
  23226. kontour&=6
  23227. filter&=7
  23228. trace&=8
  23229. smooth&=9
  23230. simag&=10
  23231. '
  23232. tree05&=5
  23233. tree5_adr%=0
  23234. back_text&=3
  23235. fwd_text&=4
  23236. z_edit&=5
  23237. z_editor&=6
  23238. z_string&=7
  23239. z_t_hoehe&=8
  23240. z_t_abstand&=9
  23241. z_g_kerning&=10
  23242. z_read_ascii&=11
  23243. l_font&=12
  23244. s_font&=14
  23245. c_font&=13
  23246. '
  23247. tree06&=6
  23248. tree6_adr%=0
  23249. t_hoehe&=1
  23250. '
  23251. tree07&=7
  23252. tree7_adr%=0
  23253. zabs&=1
  23254. '
  23255. tree08&=8                                         ! String Text
  23256. tree8_adr%=0
  23257. string_text&=1
  23258. breite&=3
  23259. string_breite&=4
  23260. versal&=5
  23261. string_versal&=6
  23262. pfad&=7
  23263. do_kerning&=8
  23264. string_kreis&=9
  23265. string_kreis_von&=10
  23266. string_kreis_bis&=11
  23267. fontname&=13
  23268. c_text&=14
  23269. icon_pair&=15
  23270. icon_trep&=16
  23271. '
  23272. tree09&=9                                         ! Zeichen Editor
  23273. tree9_adr%=0
  23274. back_editor&=3
  23275. m_matrix&=4
  23276. z_matrix&=5
  23277. move_matrix&=6
  23278. kerning_links&=7
  23279. kerning_rechts&=8
  23280. kerning_auto&=9
  23281. z_get&=10
  23282. z_muell&=11
  23283. z_up&=13
  23284. z_down&=14
  23285. z_char&=15
  23286. '
  23287. tree10&=10
  23288. tree10_adr%=0
  23289. b_kerning&=2
  23290. g_kerning&=3
  23291. '
  23292. tree11&=11                                       ! Optimier
  23293. tree11_adr%=0
  23294. del_ma&=4
  23295. del_ge&=6
  23296. del_el&=8
  23297. '
  23298. tree12&=12
  23299. tree12_adr%=0
  23300. bstep&=1
  23301. '
  23302. tree13&=13                                       ! Info
  23303. tree13_adr%=0
  23304. vernr&=7
  23305. version&=4
  23306. firma&=4
  23307. strasse&=7
  23308. stadt&=10
  23309. punkte&=15
  23310. rest&=17
  23311. '
  23312. tree14&=14                                       ! Auflösung
  23313. tree14_adr%=0
  23314. rx1&=8
  23315. ry1&=10
  23316. rx2&=12
  23317. ry2&=13
  23318. rx3&=16
  23319. ry3&=17
  23320. get_pf&=19
  23321. r1&=4
  23322. r2&=5
  23323. r3&=6
  23324. '
  23325. tree15&=15                                       ! Plotter INIT
  23326. tree15_adr%=0
  23327. p_init1&=3
  23328. p_init2&=4
  23329. gdu01&=9
  23330. gdu025&=10
  23331. gdu05&=11
  23332. gdu1&=12
  23333. overcut&=16
  23334. cent&=18
  23335. rs232&=20
  23336. hp&=23
  23337. gp&=24
  23338. mgl&=25
  23339. ma&=29
  23340. da&=30
  23341. '
  23342. tree16&=16                                       ! Pfade und Parameter
  23343. tree16_adr%=0
  23344. pv&=5
  23345. pp&=7
  23346. pfi&=9
  23347. pg&=11
  23348. pf&=13
  23349. df&=15
  23350. p1&=17
  23351. p2&=19
  23352. schnitt&=21
  23353. gdu&=23
  23354. foliex&=25
  23355. foliey&=27
  23356. warn&=29
  23357. cancel&=31
  23358. '
  23359. tree17&=17
  23360. tree17_adr%=0
  23361. outl&=1
  23362. outl_anz&=2
  23363. '
  23364. tree18&=18
  23365. tree18_adr%=0
  23366. schraffd&=1
  23367. schraffi&=2
  23368. schrafix&=3
  23369. schraffw&=4
  23370. schraffa&=7
  23371. schrafff&=8
  23372. '
  23373. tree19&=19
  23374. tree19_adr%=0
  23375. necka&=1
  23376. neckp&=2
  23377. '
  23378. tree20&=20                                      ! Füll
  23379. tree20_adr%=0
  23380. fill1&=3
  23381. fill2&=5
  23382. fill3&=7
  23383. fill4&=9
  23384. fill5&=11
  23385. fill6&=13
  23386. fill7&=15
  23387. fillcancel&=17
  23388. '
  23389. tree21&=21                                      ! Trace
  23390. tree21_adr%=0
  23391. t_step&=7
  23392. t_gerade&=8
  23393. t_schmutz&=9
  23394. bschwelle&=21
  23395. knickwinkel&=22
  23396. bogen_max&=23
  23397. abweichung_gerade&=24
  23398. nur_gerade&=13
  23399. trace_cancel&=14
  23400. gerade_bezier&=30
  23401. '
  23402. tree22&=22
  23403. tree22_adr%=0
  23404. scann_x&=1
  23405. scann_y&=2
  23406. '
  23407. tree23&=23
  23408. tree23_adr%=0
  23409. radius&=1
  23410. '
  23411. tree24&=24
  23412. tree24_adr%=0
  23413. grau&=6
  23414. stark&=7
  23415. selgrau0&=4
  23416. selgrau&=5
  23417. sellinie&=8
  23418. alle&=9
  23419. auswahl&=10
  23420. '
  23421. tree25&=25                               ! Bogen
  23422. tree25_adr%=0
  23423. backboge&=3
  23424. vkreis&=4
  23425. kreis3&=5
  23426. kreisbog&=6
  23427. bogen3&=7
  23428. bogen2&=8
  23429. ellipse&=9
  23430. elbogen&=10
  23431. eckrund&=11
  23432. '
  23433. tree26&=26                               ! Koordinaten
  23434. tree26_adr%=0
  23435. absolut&=2
  23436. relativ&=3
  23437. polar&=4
  23438. '
  23439. tree27&=27                               ! Calamus Versions Nr.
  23440. tree27_adr%=0
  23441. calamus_nr&=1
  23442. '
  23443. tree28&=28                               ! GT 6000
  23444. tree28_adr%=0
  23445. gtscan&=47
  23446. gtx&=38
  23447. gty&=44
  23448. gtb&=42
  23449. gth&=43
  23450. gtcancel&=46
  23451. gtpresca&=45
  23452. gtdpi&=35
  23453. gtdpimin&=33
  23454. gtdpiplu&=34
  23455. gtprewin&=1
  23456. gtstate&=5
  23457. gtkeiner&=9
  23458. gtraster&=10
  23459. gtweich&=11
  23460. gthart&=12
  23461. gtkeine&=15
  23462. gtrot&=18
  23463. gtgruen&=17
  23464. gtblau&=16
  23465. k0&=22
  23466. k1&=23
  23467. k2&=24
  23468. k3&=25
  23469. k4&=26
  23470. k5&=27
  23471. k6&=28
  23472. '
  23473. tree29&=29                               ! Kosten
  23474. tree29_adr%=0
  23475. kostfak&=1
  23476. sl&=2
  23477. gkosten&=4
  23478. '
  23479. tree30&=30                               ! Select Filter
  23480. tree30_adr%=0
  23481. abs_filter&=1
  23482. '
  23483. tree31&=31                               ! Select Fenster
  23484. tree31_adr%=0
  23485. ohnecopy&=1
  23486. mitcopy&=6
  23487. anz_rot&=3
  23488. phi_rot&=4
  23489. numohne&=5
  23490. ausricht_vector&=7
  23491. '
  23492. tree32&=32                               ! Select Spiegel
  23493. tree32_adr%=0
  23494. anbox&=2
  23495. anachse&=1
  23496. '
  23497. tree33&=33
  23498. tree33_adr%=0
  23499. teil&=1
  23500. '
  23501. tree34&=34                               ! Schnittpunkt
  23502. tree34_adr%=0
  23503. backschn&=3
  23504. fwdschn&=4
  23505. trimm&=5
  23506. knack&=6
  23507. lot&=7
  23508. teilen&=8
  23509. lang&=9
  23510. schnitt2&=10
  23511. schnittn&=11
  23512. delseg&=12
  23513. delel&=13
  23514. schmelz&=14
  23515. '
  23516. tree35&=35                              ! Select Copy
  23517. tree35_adr%=0
  23518. copysing&=1
  23519. copymul&=2
  23520. cx&=4
  23521. cy&=5
  23522. canz&=6
  23523. cdist&=7
  23524. '
  23525. tree36&=36                              ! Ausrichten
  23526. tree36_adr%=0
  23527. a_olinks&=1
  23528. a_oben&=2
  23529. a_orechts&=3
  23530. a_links&=4
  23531. a_mitte&=5
  23532. a_rechts&=6
  23533. a_ulinks&=7
  23534. a_unten&=8
  23535. a_urechts&=9
  23536. '
  23537. tree37&=37                              ! Scalieren
  23538. tree37_adr%=0
  23539. scale_interactiv&=1
  23540. scale_numerisch&=2
  23541. scale_breite&=4
  23542. scale_hoehe&=5
  23543. '
  23544. tree38&=38                              ! Ordner
  23545. tree38_adr%=0
  23546. ordnert&=1
  23547. ordnerok&=2
  23548. ordnerca&=3
  23549. '
  23550. tree39&=39                              ! Kerning
  23551. tree39_adr%=0
  23552. kerning_box&=1
  23553. kerning_minus&=3
  23554. kerning_plus&=4
  23555. kerning_last&=2
  23556. kerning_next&=5
  23557. kerning_exit&=6
  23558. kerning_minus2&=9
  23559. kerning_plus2&=10
  23560. kerning_last2&=8
  23561. kerning_next2&=11
  23562. kerning_clear&=7
  23563. kerning_info&=13
  23564. kerning_pair&=15
  23565. '
  23566. tree40&=40                              ! Plotter OUTPUT
  23567. tree40_adr%=0
  23568. pl100&=3
  23569. plschieber&=4
  23570. plschere&=7
  23571. plschereauf&=5
  23572. plscherezu&=6
  23573. plschere&=7
  23574. '
  23575. tree41&=41                              ! Select Neigen
  23576. tree41_adr%=0
  23577. neige_grad&=2
  23578. neige_vertical&=3
  23579. neige_horizontal&=4
  23580. neige_interaktiv&=5
  23581. '
  23582. ' FLAG:
  23583. '
  23584. undo!=FALSE
  23585. geschlossen!=FALSE
  23586. ok!=FALSE                                        ! allgemein
  23587. layer_geladen!=FALSE                             ! ist  Layer geladen
  23588. layer!=FALSE                                     ! soll Layer gezeigt werden
  23589. window_fulled!=TRUE                              ! ist  Fenster schon gro₧
  23590. voll_bild!=FALSE                                 ! ist  Fenster komplett auf Crt
  23591. eintragen!=FALSE                                 ! ist  eintragen aktiv
  23592. bogen!=FALSE
  23593. mtext!=FALSE
  23594. meditor!=FALSE
  23595. datei!=FALSE
  23596. fenster!=FALSE
  23597. schnittpunktm!=FALSE
  23598. loeschen!=FALSE                                  ! ist  loeschen aktiv
  23599. neues_polygon!=TRUE                              ! erster Punkt im Polygon
  23600. found!=FALSE                                     ! gefunden bei Fangradius
  23601. marker!=FALSE                                    ! sollen Marker gezeigt werden
  23602. marker_select!=FALSE                             ! soll   Marker selectiert
  23603. modified!=FALSE                                  ! wurde Vektorbild geändert
  23604. font_geladen!=FALSE                              ! ist ein Font geladen
  23605. outlined!=FALSE                                  ! wurde Bitmap schon outlined
  23606. auto_schraff!=TRUE
  23607. schraff_fix_abst!=FALSE
  23608. einpassen!=FALSE
  23609. tangente!=FALSE
  23610. tangenten_lock!=TRUE
  23611. warn!=FALSE
  23612. gp_gl!=FALSE                                     ! HPGL oder GPGL
  23613. tasten_rep!=FALSE
  23614. absolut!=TRUE
  23615. relativ!=FALSE
  23616. polar!=FALSE
  23617. absolut_old!=FALSE
  23618. polar_old!=FALSE
  23619. fangklein!=FALSE                                 ! Fangradius gro₧
  23620. fadenkreuz!=FALSE
  23621. polygonmode!=TRUE                                ! Polygonmodus
  23622. ortho!=FALSE
  23623. grid!=FALSE
  23624. scrolled!=FALSE
  23625. move!=FALSE
  23626. drei_d!=FALSE
  23627. status_wechsel!=FALSE
  23628. grid_wechsel!=FALSE
  23629. swap!=FALSE
  23630. '
  23631. ' ARRAY:
  23632. '
  23633. DIM smfdb%(8),dmfdb%(8),p%(8)
  23634. DIM z_smfdb%(8),z_dmfdb%(8),z_p%(8),q_dmfdb%(8)
  23635. DIM punkte_x%(p_max%),punkte_y%(p_max%),punkte_def|(p_max%),buffer%(p_max%/2)
  23636. DIM x_meta%(127),y_meta%(127),punkte_def1|(32)
  23637. ARRAYFILL punkte_def1|(),1
  23638. DIM bezier_x&(33),bezier_y&(33)
  23639. DIM m$(87)
  23640. DIM mk%(60,2)
  23641. DIM m_square%(5)
  23642. DIM z_editor%(32)
  23643. DIM z_ascii%(224),z_kerning&(224*16),z_daten&(224*280),z_pair&(224),z_pair|(224),z_pair_daten|(2000)
  23644. DIM sx1%(9),sy1%(9),sx2%(9),sy2%(9),sp1(9),sp2(9)
  23645. DIM zeilen_buffer$(60)
  23646. rette$=SPACE$(32000)
  23647. pfad$=SPACE$(80)
  23648. kerning_string$=SPACE$(60)
  23649. pfad_pic$=SPACE$(80)
  23650. pfad_img$=SPACE$(80)
  23651. pfad_vek$=SPACE$(80)
  23652. pfad_vek_root$=SPACE$(80)
  23653. pfad_cvg$=SPACE$(80)
  23654. pfad_fnt$=SPACE$(80)
  23655. pfad_cfn$=SPACE$(80)
  23656. default_font$=SPACE$(10)
  23657. programm$=SPACE$(10)
  23658. programm_font$=SPACE$(10)
  23659. test_datei$=SPACE$(10)
  23660. object$=SPACE$(80)
  23661. p_init1$=SPACE$(40)
  23662. p_init2$=SPACE$(40)
  23663. abc$="CutOut Test"
  23664. ma$="M"
  23665. da$="D"
  23666. cutout_font$="CUTOUTOFN"
  23667. calamus_font_grafik$=MKI$(159)+MKI$(15)+MKI$(1)+SPACE$(320)
  23668. ok$="OK"
  23669. ein_space$=" "
  23670. x_y$="X|Y"
  23671. erster$="1. "
  23672. zweiter$="2. "
  23673. help_on$="ON "
  23674. help_off$="OFF"
  23675. vek$="VEK"
  23676. cvg$="CVG"
  23677. img$="IMG"
  23678. plt$="PLT"
  23679. calamus$="CALAMUS"
  23680. cutout$="CutOut"
  23681. ' ****************************************************************************
  23682. OPEN "I",#1,"SYS\LANGUAGE.DRV"
  23683. LINE INPUT #1,pd_menu$
  23684. LINE INPUT #1,pd_datei$
  23685. LINE INPUT #1,pd_editieren$
  23686. LINE INPUT #1,pd_fenster$
  23687. LINE INPUT #1,pd_schnittpunkt$
  23688. LINE INPUT #1,pd_bogen$
  23689. LINE INPUT #1,pd_text$
  23690. LINE INPUT #1,pd_zeicheneditor$
  23691. LINE INPUT #1,pd_extra$
  23692. LINE INPUT #1,pd_quit$
  23693. '
  23694. LINE INPUT #1,pd_optionen$
  23695. LINE INPUT #1,pd_marker_anzeigen$
  23696. LINE INPUT #1,pd_tangenten_anzeigen$
  23697. LINE INPUT #1,pd_fangradius_klein$
  23698. LINE INPUT #1,pd_polygon_modus$
  23699. LINE INPUT #1,pd_schnittpunkt_genau$
  23700. LINE INPUT #1,pd_koordinaten$
  23701. LINE INPUT #1,pd_element_selektieren$
  23702. LINE INPUT #1,pd_polygon_selektieren$
  23703. LINE INPUT #1,pd_warnmeldungen$
  23704. LINE INPUT #1,pd_skaliere_alles$
  23705. LINE INPUT #1,pd_punkte_nivellieren$
  23706. LINE INPUT #1,pd_tangente$
  23707. LINE INPUT #1,pd_plotflaeche$
  23708. LINE INPUT #1,pd_bezier_step_aendern$
  23709. LINE INPUT #1,pd_plotter_einstellung$
  23710. LINE INPUT #1,pd_kosten_faktor$
  23711. LINE INPUT #1,pd_pfad_sichern$
  23712. '
  23713. LINE INPUT #1,pd_figur$
  23714. LINE INPUT #1,pd_rechteck$
  23715. LINE INPUT #1,pd_n_eck$
  23716. LINE INPUT #1,pd_polygon_outline$
  23717. LINE INPUT #1,pd_aequidistante$
  23718. LINE INPUT #1,pd_frame$
  23719. LINE INPUT #1,pd_polygone_ausrichten$
  23720. LINE INPUT #1,pd_polygone_zentrieren$
  23721. LINE INPUT #1,pd_polygone_vereinen$
  23722. LINE INPUT #1,pd_polygone_fuellen$
  23723. LINE INPUT #1,pd_einzelne_punkte_loeschen$
  23724. '
  23725. LINE INPUT #1,pd_linie$
  23726. LINE INPUT #1,pd_bezier_vektor$
  23727. LINE INPUT #1,pd_bezier_einfuegen$
  23728. LINE INPUT #1,pd_tausche_bezier_vektor$
  23729. LINE INPUT #1,pd_knacken$
  23730. LINE INPUT #1,pd_trimmen$
  23731. LINE INPUT #1,pd_lot$
  23732. LINE INPUT #1,pd_verlaengern$
  23733. LINE INPUT #1,pd_teilen$
  23734. LINE INPUT #1,pd_messen$
  23735. LINE INPUT #1,pd_schnittp_2er$
  23736. LINE INPUT #1,pd_schnittp_n$
  23737. '
  23738. LINE INPUT #1,pd_effekt$
  23739. LINE INPUT #1,pd_parameter_schraffur$
  23740. LINE INPUT #1,pd_polygon_schraffieren$
  23741. LINE INPUT #1,pd_alles_schraffieren$
  23742. LINE INPUT #1,pd_schatten$
  23743. LINE INPUT #1,pd_einpassen$
  23744. LINE INPUT #1,pd_kugel$
  23745. '
  23746. LINE INPUT #1,lade$
  23747. LINE INPUT #1,sichere$
  23748. LINE INPUT #1,fuege_ein$
  23749. LINE INPUT #1,vektor$
  23750. LINE INPUT #1,macro$
  23751. LINE INPUT #1,daten$
  23752. LINE INPUT #1,zeichensatz$
  23753. LINE INPUT #1,kein$
  23754. LINE INPUT #1,keine$
  23755. LINE INPUT #1,ja_nein$
  23756. LINE INPUT #1,waehle$
  23757. LINE INPUT #1,fehler$
  23758. LINE INPUT #1,scannen$
  23759. LINE INPUT #1,pre_view$
  23760. LINE INPUT #1,ascii_importieren$
  23761. LINE INPUT #1,ascii_exportieren$
  23762. LINE INPUT #1,schriftblock$
  23763. LINE INPUT #1,radius_zu$
  23764. LINE INPUT #1,winkel_zu$
  23765. LINE INPUT #1,leider$
  23766. LINE INPUT #1,winkel_einstellen$
  23767. LINE INPUT #1,spiegelachse$
  23768. LINE INPUT #1,lupe_mal$
  23769. LINE INPUT #1,fensterbereich$
  23770. LINE INPUT #1,drehzentrum$
  23771. LINE INPUT #1,ordner_exist$
  23772. LINE INPUT #1,kein_leer$
  23773. LINE INPUT #1,suche_schnittpunkte$
  23774. LINE INPUT #1,gleiches_polygon$
  23775. LINE INPUT #1,bezugs$
  23776. LINE INPUT #1,zentriere$
  23777. LINE INPUT #1,huellkurve$
  23778. LINE INPUT #1,huellkurve1$
  23779. LINE INPUT #1,berechne$
  23780. LINE INPUT #1,rechte_taste$
  23781. LINE INPUT #1,endpunkt$
  23782. LINE INPUT #1,lot_an$
  23783. LINE INPUT #1,noname$
  23784. LINE INPUT #1,symbol$
  23785. LINE INPUT #1,orginal_fenster$
  23786. LINE INPUT #1,dmc_font$
  23787. LINE INPUT #1,bild_datei_zu$
  23788. LINE INPUT #1,stad_laden$
  23789. LINE INPUT #1,plotter_ist_off$
  23790. LINE INPUT #1,plot_datei$
  23791. LINE INPUT #1,kein_treiber$
  23792. LINE INPUT #1,schnittstelle_auf$
  23793. LINE INPUT #1,polygone_vereinen$
  23794. LINE INPUT #1,loesche_einzelne$
  23795. LINE INPUT #1,quelle$
  23796. LINE INPUT #1,ziel$
  23797. LINE INPUT #1,nivelliere$
  23798. LINE INPUT #1,alle_daten_l$
  23799. LINE INPUT #1,ganzer_zeichensatz$
  23800. LINE INPUT #1,font_daten_loeschen$
  23801. LINE INPUT #1,zeichen_matrix$
  23802. LINE INPUT #1,datei_existiert$
  23803. LINE INPUT #1,datei_ueberschreiben$
  23804. LINE INPUT #1,glaetten_mit$
  23805. LINE INPUT #1,gerade_bezier$
  23806. LINE INPUT #1,glaetten$
  23807. LINE INPUT #1,bereich$
  23808. LINE INPUT #1,path$
  23809. LINE INPUT #1,help_mittelpunkt$
  23810. LINE INPUT #1,help_radius$
  23811. LINE INPUT #1,help_position$
  23812. LINE INPUT #1,help_startwinkel$
  23813. LINE INPUT #1,help_endwinkel$
  23814. LINE INPUT #1,help_polygon$
  23815. LINE INPUT #1,help_punkt$
  23816. LINE INPUT #1,help_linie$
  23817. LINE INPUT #1,help_element$
  23818. LINE INPUT #1,help_verrund$
  23819. LINE INPUT #1,help_loesche$
  23820. LINE INPUT #1,help_trenn$
  23821. LINE INPUT #1,help_move$
  23822. LINE INPUT #1,help_sel$
  23823. LINE INPUT #1,help_move_window$
  23824. LINE INPUT #1,help_rahmen$
  23825. LINE INPUT #1,help_edit$
  23826. LINE INPUT #1,help_bezier$
  23827. LINE INPUT #1,help_status$
  23828. LINE INPUT #1,help_ortho$
  23829. LINE INPUT #1,help_grid$
  23830. LINE INPUT #1,help_free$
  23831. LINE INPUT #1,help_snap$
  23832. LINE INPUT #1,help_editor$
  23833. LINE INPUT #1,help_pfad$
  23834. CLOSE #1
  23835. ' ****************************************************************************
  23836. integer%=VARPTR(punkte_x%(1))-VARPTR(punkte_x%(0))  ! Länge in Bytes Integer
  23837. '
  23838. z_editor%(0)=2048                                   ! Top      Line   Y
  23839. z_editor%(1)=3072                                   ! Ascent   Line   Y
  23840. z_editor%(2)=6144                                   ! Half     Line   Y
  23841. z_editor%(3)=11264                                  ! Base     Line   Y
  23842. z_editor%(4)=13952                                  ! Descent  Line   Y
  23843. z_editor%(5)=14336                                  ! Bottom   Line   Y
  23844. '
  23845. z_editor%(6)=0                                      ! Matrix   links  X
  23846. z_editor%(7)=16384                                  ! Matrix   rechts X
  23847. z_editor%(8)=1280                                   ! Kerning  links  X
  23848. z_editor%(9)=1280                                   ! Kerning  links  X
  23849. z_editor%(10)=1280                                  ! Kerning  links  X
  23850. z_editor%(11)=1280                                  ! Kerning  links  X
  23851. z_editor%(12)=1280                                  ! Kerning  links  X
  23852. z_editor%(13)=1280                                  ! Kerning  links  X
  23853. z_editor%(14)=1280                                  ! Kerning  links  X
  23854. z_editor%(15)=1280                                  ! Kerning  links  X
  23855. z_editor%(16)=15104                                 ! Kerning  rechts X
  23856. z_editor%(17)=15104                                 ! Kerning  rechts X
  23857. z_editor%(18)=15104                                 ! Kerning  rechts X
  23858. z_editor%(19)=15104                                 ! Kerning  rechts X
  23859. z_editor%(20)=15104                                 ! Kerning  rechts X
  23860. z_editor%(21)=15104                                 ! Kerning  rechts X
  23861. z_editor%(22)=15104                                 ! Kerning  rechts X
  23862. z_editor%(23)=15104                                 ! Kerning  rechts X
  23863. z_editor%(24)=z_editor%(0)                          ! Kerning         Y
  23864. z_editor%(25)=(z_editor%(5)-z_editor%(0))/8         ! Kerning         Y
  23865. z_editor%(26)=z_editor%(24)+z_editor%(25)           ! Kerning         Y
  23866. z_editor%(27)=z_editor%(26)+z_editor%(25)           ! Kerning         Y
  23867. z_editor%(28)=z_editor%(27)+z_editor%(25)           ! Kerning         Y
  23868. z_editor%(29)=z_editor%(28)+z_editor%(25)           ! Kerning         Y
  23869. z_editor%(30)=z_editor%(29)+z_editor%(25)           ! Kerning         Y
  23870. z_editor%(31)=z_editor%(30)+z_editor%(25)           ! Kerning         Y
  23871. z_editor%(32)=0                                     ! Matrix oben     Y
  23872. '
  23873. ' ******************************************************************************
  23874. ' *                                                                            *
  23875. ' *                             MENU INITIALISIERUNG                           *
  23876. ' *                                                                            *
  23877. ' ******************************************************************************
  23878. '
  23879. BMOVE V:serien_nummer$,V:serien_nummer,8
  23880. BMOVE V:serien_nummer_vergleich$,V:serien_nummer_vergleich,8
  23881. regist_nr%=serien_nummer_vergleich
  23882. IF serien_nummer<>(serien_nummer_vergleich XOR magic%)
  23883.   PRINT "SORRY HACKER"
  23884.   PAUSE 300
  23885.   SYSTEM
  23886. ENDIF
  23887. INLINE zasm_ptr%,4136
  23888. INLINE pack_img%,958
  23889. INLINE calc_bezier%,1050
  23890. INLINE p_num%,360
  23891. INLINE find_line%,356
  23892. INLINE kontour%,216
  23893. INLINE staddec%,184
  23894. INLINE imgdec%,228
  23895. INLINE findexcept%,52
  23896. INLINE findpointexcept%,70
  23897. mfang$=MKI$(7)+MKI$(7)+MKI$(1)+MKI$(0)+MKI$(1)
  23898. mfang$=mfang$+MKI$(&X1111111111111110)
  23899. mfang$=mfang$+MKI$(&X1111111111111110)
  23900. mfang$=mfang$+MKI$(&X1100001110000110)
  23901. mfang$=mfang$+MKI$(&X1100001110000110)
  23902. mfang$=mfang$+MKI$(&X1100001110000110)
  23903. mfang$=mfang$+MKI$(&X1100001110000110)
  23904. mfang$=mfang$+MKI$(&X1111110001111110)
  23905. mfang$=mfang$+MKI$(&X1111110001111110)
  23906. mfang$=mfang$+MKI$(&X1111110001111110)
  23907. mfang$=mfang$+MKI$(&X1100001110000110)
  23908. mfang$=mfang$+MKI$(&X1100001110000110)
  23909. mfang$=mfang$+MKI$(&X1100001110000110)
  23910. mfang$=mfang$+MKI$(&X1100001110000110)
  23911. mfang$=mfang$+MKI$(&X1111111111111110)
  23912. mfang$=mfang$+MKI$(&X1111111111111110)
  23913. mfang$=mfang$+MKI$(&X0)
  23914. '
  23915. mfang$=mfang$+MKI$(&X1111111111111110)
  23916. mfang$=mfang$+MKI$(&X1000000100000010)
  23917. mfang$=mfang$+MKI$(&X1000000100000010)
  23918. mfang$=mfang$+MKI$(&X1000000100000010)
  23919. mfang$=mfang$+MKI$(&X1000000100000010)
  23920. mfang$=mfang$+MKI$(&X1000000100000010)
  23921. mfang$=mfang$+MKI$(&X1000000000000010)
  23922. mfang$=mfang$+MKI$(&X1111110001111110)
  23923. mfang$=mfang$+MKI$(&X1000000000000010)
  23924. mfang$=mfang$+MKI$(&X1000000100000010)
  23925. mfang$=mfang$+MKI$(&X1000000100000010)
  23926. mfang$=mfang$+MKI$(&X1000000100000010)
  23927. mfang$=mfang$+MKI$(&X1000000100000010)
  23928. mfang$=mfang$+MKI$(&X1000000100000010)
  23929. mfang$=mfang$+MKI$(&X1111111111111110)
  23930. mfang$=mfang$+MKI$(&X0)
  23931. '
  23932. mfang_klein$=MKI$(7)+MKI$(7)+MKI$(1)+MKI$(0)+MKI$(1)
  23933. mfang_klein$=mfang_klein$+MKI$(&X0)
  23934. mfang_klein$=mfang_klein$+MKI$(&X0)
  23935. mfang_klein$=mfang_klein$+MKI$(&X11111111111000)
  23936. mfang_klein$=mfang_klein$+MKI$(&X11111111111000)
  23937. mfang_klein$=mfang_klein$+MKI$(&X11001110011000)
  23938. mfang_klein$=mfang_klein$+MKI$(&X11001110011000)
  23939. mfang_klein$=mfang_klein$+MKI$(&X11110001111000)
  23940. mfang_klein$=mfang_klein$+MKI$(&X11110001111000)
  23941. mfang_klein$=mfang_klein$+MKI$(&X11110001111000)
  23942. mfang_klein$=mfang_klein$+MKI$(&X11001110011000)
  23943. mfang_klein$=mfang_klein$+MKI$(&X11001110011000)
  23944. mfang_klein$=mfang_klein$+MKI$(&X11111111111000)
  23945. mfang_klein$=mfang_klein$+MKI$(&X11111111111000)
  23946. mfang_klein$=mfang_klein$+MKI$(&X0)
  23947. mfang_klein$=mfang_klein$+MKI$(&X0)
  23948. mfang_klein$=mfang_klein$+MKI$(&X0)
  23949. '
  23950. mfang_klein$=mfang_klein$+MKI$(&X0)
  23951. mfang_klein$=mfang_klein$+MKI$(&X0)
  23952. mfang_klein$=mfang_klein$+MKI$(&X0)
  23953. mfang_klein$=mfang_klein$+MKI$(&X1111111110000)
  23954. mfang_klein$=mfang_klein$+MKI$(&X1000100010000)
  23955. mfang_klein$=mfang_klein$+MKI$(&X1000100010000)
  23956. mfang_klein$=mfang_klein$+MKI$(&X1000000010000)
  23957. mfang_klein$=mfang_klein$+MKI$(&X1110001110000)
  23958. mfang_klein$=mfang_klein$+MKI$(&X1000000010000)
  23959. mfang_klein$=mfang_klein$+MKI$(&X1000100010000)
  23960. mfang_klein$=mfang_klein$+MKI$(&X1000100010000)
  23961. mfang_klein$=mfang_klein$+MKI$(&X1111111110000)
  23962. mfang_klein$=mfang_klein$+MKI$(&X0)
  23963. mfang_klein$=mfang_klein$+MKI$(&X0)
  23964. mfang_klein$=mfang_klein$+MKI$(&X0)
  23965. mfang_klein$=mfang_klein$+MKI$(&X0)
  23966. '
  23967. mdaten$=MKI$(7)+MKI$(7)+MKI$(1)+MKI$(0)+MKI$(1)
  23968. mdaten$=mdaten$+MKI$(&X1110000000)
  23969. mdaten$=mdaten$+MKI$(&X1110000000)
  23970. mdaten$=mdaten$+MKI$(&X1110000000)
  23971. mdaten$=mdaten$+MKI$(&X1110000000)
  23972. mdaten$=mdaten$+MKI$(&X1110000000)
  23973. mdaten$=mdaten$+MKI$(&X1110000000)
  23974. mdaten$=mdaten$+MKI$(&X1111110001111110)
  23975. mdaten$=mdaten$+MKI$(&X1111110001111110)
  23976. mdaten$=mdaten$+MKI$(&X1111110001111110)
  23977. mdaten$=mdaten$+MKI$(&X1110000000)
  23978. mdaten$=mdaten$+MKI$(&X1110000000)
  23979. mdaten$=mdaten$+MKI$(&X1110000000)
  23980. mdaten$=mdaten$+MKI$(&X1110000000)
  23981. mdaten$=mdaten$+MKI$(&X1110000000)
  23982. mdaten$=mdaten$+MKI$(&X1110000000)
  23983. mdaten$=mdaten$+MKI$(&X0)
  23984. '
  23985. mdaten$=mdaten$+MKI$(&X100000000)
  23986. mdaten$=mdaten$+MKI$(&X100000000)
  23987. mdaten$=mdaten$+MKI$(&X100000000)
  23988. mdaten$=mdaten$+MKI$(&X100000000)
  23989. mdaten$=mdaten$+MKI$(&X100000000)
  23990. mdaten$=mdaten$+MKI$(&X100000000)
  23991. mdaten$=mdaten$+MKI$(&X0)
  23992. mdaten$=mdaten$+MKI$(&X1111110001111110)
  23993. mdaten$=mdaten$+MKI$(&X0)
  23994. mdaten$=mdaten$+MKI$(&X100000000)
  23995. mdaten$=mdaten$+MKI$(&X100000000)
  23996. mdaten$=mdaten$+MKI$(&X100000000)
  23997. mdaten$=mdaten$+MKI$(&X100000000)
  23998. mdaten$=mdaten$+MKI$(&X100000000)
  23999. mdaten$=mdaten$+MKI$(&X100000000)
  24000. mdaten$=mdaten$+MKI$(&X0)
  24001. '
  24002. schwer$=MKI$(7)+MKI$(7)+MKI$(-1)+MKI$(0)+MKI$(1)
  24003. schwer$=schwer$+MKI$(&X0)                     !
  24004. schwer$=schwer$+MKI$(&X0)
  24005. schwer$=schwer$+MKI$(&X11111000000)           !
  24006. schwer$=schwer$+MKI$(&X11111000000)
  24007. schwer$=schwer$+MKI$(&X1100111110000)         !
  24008. schwer$=schwer$+MKI$(&X1100111110000)
  24009. schwer$=schwer$+MKI$(&X10000111111000)        !
  24010. schwer$=schwer$+MKI$(&X10000111111000)
  24011. schwer$=schwer$+MKI$(&X10000111111000)        !
  24012. schwer$=schwer$+MKI$(&X10000111111000)
  24013. schwer$=schwer$+MKI$(&X100000111111100)       !
  24014. schwer$=schwer$+MKI$(&X100000111111100)
  24015. schwer$=schwer$+MKI$(&X100000111111100)       !
  24016. schwer$=schwer$+MKI$(&X100000111111100)
  24017. schwer$=schwer$+MKI$(&X111111011111100)       !!
  24018. schwer$=schwer$+MKI$(&X111111011111100)
  24019. schwer$=schwer$+MKI$(&X111111100000100)       !
  24020. schwer$=schwer$+MKI$(&X111111100000100)
  24021. schwer$=schwer$+MKI$(&X111111100000100)       !
  24022. schwer$=schwer$+MKI$(&X111111100000100)
  24023. schwer$=schwer$+MKI$(&X11111100001000)        !
  24024. schwer$=schwer$+MKI$(&X11111100001000)
  24025. schwer$=schwer$+MKI$(&X11111100001000)        !
  24026. schwer$=schwer$+MKI$(&X11111100001000)
  24027. schwer$=schwer$+MKI$(&X1111100110000)         !
  24028. schwer$=schwer$+MKI$(&X1111100110000)
  24029. schwer$=schwer$+MKI$(&X11111000000)           !
  24030. schwer$=schwer$+MKI$(&X11111000000)
  24031. schwer$=schwer$+MKI$(&X0)                     !
  24032. schwer$=schwer$+MKI$(&X0)
  24033. schwer$=schwer$+MKI$(&X0)                     !
  24034. schwer$=schwer$+MKI$(&X0)
  24035. pfad_read
  24036. reset
  24037. RESERVE -64*1024
  24038. DIM work%((FRE(0)-80*1024)/4)
  24039. daten_ptr%=V:work%(0)
  24040. work_space%=DIM?(work%())*4
  24041. KEYPAD 8
  24042. ~RSRC_LOAD("SYS\CUTOUT.RSC")
  24043. ~RSRC_GADDR(0,tree00&,tree0_adr%)
  24044. ~RSRC_GADDR(0,tree01&,tree1_adr%)
  24045. ~RSRC_GADDR(0,tree02&,tree2_adr%)
  24046. ~RSRC_GADDR(0,tree03&,tree3_adr%)
  24047. ~RSRC_GADDR(0,tree04&,tree4_adr%)
  24048. ~RSRC_GADDR(0,tree05&,tree5_adr%)
  24049. ~RSRC_GADDR(0,tree06&,tree6_adr%)
  24050. ~RSRC_GADDR(0,tree07&,tree7_adr%)
  24051. ~RSRC_GADDR(0,tree08&,tree8_adr%)
  24052. ~RSRC_GADDR(0,tree09&,tree9_adr%)
  24053. ~RSRC_GADDR(0,tree10&,tree10_adr%)
  24054. ~RSRC_GADDR(0,tree11&,tree11_adr%)
  24055. ~RSRC_GADDR(0,tree12&,tree12_adr%)
  24056. ~RSRC_GADDR(0,tree13&,tree13_adr%)
  24057. ~RSRC_GADDR(0,tree14&,tree14_adr%)
  24058. ~RSRC_GADDR(0,tree15&,tree15_adr%)
  24059. ~RSRC_GADDR(0,tree16&,tree16_adr%)
  24060. ~RSRC_GADDR(0,tree17&,tree17_adr%)
  24061. ~RSRC_GADDR(0,tree18&,tree18_adr%)
  24062. ~RSRC_GADDR(0,tree19&,tree19_adr%)
  24063. ~RSRC_GADDR(0,tree20&,tree20_adr%)
  24064. ~RSRC_GADDR(0,tree21&,tree21_adr%)
  24065. ~RSRC_GADDR(0,tree22&,tree22_adr%)
  24066. ~RSRC_GADDR(0,tree23&,tree23_adr%)
  24067. ~RSRC_GADDR(0,tree24&,tree24_adr%)
  24068. ~RSRC_GADDR(0,tree25&,tree25_adr%)
  24069. ~RSRC_GADDR(0,tree26&,tree26_adr%)
  24070. ~RSRC_GADDR(0,tree27&,tree27_adr%)
  24071. ~RSRC_GADDR(0,tree28&,tree28_adr%)
  24072. ~RSRC_GADDR(0,tree29&,tree29_adr%)
  24073. ~RSRC_GADDR(0,tree30&,tree30_adr%)
  24074. ~RSRC_GADDR(0,tree31&,tree31_adr%)
  24075. ~RSRC_GADDR(0,tree32&,tree32_adr%)
  24076. ~RSRC_GADDR(0,tree33&,tree33_adr%)
  24077. ~RSRC_GADDR(0,tree34&,tree34_adr%)
  24078. ~RSRC_GADDR(0,tree35&,tree35_adr%)
  24079. ~RSRC_GADDR(0,tree36&,tree36_adr%)
  24080. ~RSRC_GADDR(0,tree37&,tree37_adr%)
  24081. ~RSRC_GADDR(0,tree38&,tree38_adr%)
  24082. ~RSRC_GADDR(0,tree39&,tree39_adr%)
  24083. ~RSRC_GADDR(0,tree40&,tree40_adr%)
  24084. ~RSRC_GADDR(0,tree41&,tree41_adr%)
  24085. ~FORM_CENTER(tree6_adr%)
  24086. ~FORM_CENTER(tree7_adr%)
  24087. ~FORM_CENTER(tree8_adr%)
  24088. ~FORM_CENTER(tree10_adr%)
  24089. ~FORM_CENTER(tree11_adr%)
  24090. ~FORM_CENTER(tree12_adr%)
  24091. ~FORM_CENTER(tree13_adr%)
  24092. ~FORM_CENTER(tree14_adr%)
  24093. ~FORM_CENTER(tree15_adr%)
  24094. ~FORM_CENTER(tree16_adr%)
  24095. ~FORM_CENTER(tree17_adr%)
  24096. ~FORM_CENTER(tree18_adr%)
  24097. ~FORM_CENTER(tree19_adr%)
  24098. ~FORM_CENTER(tree20_adr%)
  24099. ~FORM_CENTER(tree21_adr%)
  24100. ~FORM_CENTER(tree22_adr%)
  24101. ~FORM_CENTER(tree23_adr%)
  24102. ~FORM_CENTER(tree24_adr%)
  24103. ~FORM_CENTER(tree26_adr%)
  24104. ~FORM_CENTER(tree27_adr%)
  24105. ~FORM_CENTER(tree28_adr%)
  24106. ~FORM_CENTER(tree29_adr%)
  24107. ~FORM_CENTER(tree30_adr%)
  24108. ~FORM_CENTER(tree31_adr%)
  24109. ~FORM_CENTER(tree32_adr%)
  24110. ~FORM_CENTER(tree33_adr%)
  24111. ~FORM_CENTER(tree35_adr%)
  24112. ~FORM_CENTER(tree36_adr%)
  24113. ~FORM_CENTER(tree37_adr%)
  24114. ~FORM_CENTER(tree38_adr%)
  24115. ~FORM_CENTER(tree39_adr%)
  24116. ~FORM_CENTER(tree40_adr%)
  24117. ~FORM_CENTER(tree41_adr%)
  24118. xt6&=DPEEK(tree6_adr%+16)
  24119. yt6&=DPEEK(tree6_adr%+18)
  24120. bt6&=DPEEK(tree6_adr%+20)
  24121. ht6&=DPEEK(tree6_adr%+22)
  24122. xt7&=DPEEK(tree7_adr%+16)
  24123. yt7&=DPEEK(tree7_adr%+18)
  24124. bt7&=DPEEK(tree7_adr%+20)
  24125. ht7&=DPEEK(tree7_adr%+22)
  24126. xt8&=DPEEK(tree8_adr%+16)
  24127. yt8&=DPEEK(tree8_adr%+18)
  24128. bt8&=DPEEK(tree8_adr%+20)
  24129. ht8&=DPEEK(tree8_adr%+22)
  24130. xt10&=DPEEK(tree10_adr%+16)
  24131. yt10&=DPEEK(tree10_adr%+18)
  24132. bt10&=DPEEK(tree10_adr%+20)
  24133. ht10&=DPEEK(tree10_adr%+22)
  24134. xt11&=DPEEK(tree11_adr%+16)
  24135. yt11&=DPEEK(tree11_adr%+18)
  24136. bt11&=DPEEK(tree11_adr%+20)
  24137. ht11&=DPEEK(tree11_adr%+22)
  24138. xt12&=DPEEK(tree12_adr%+16)
  24139. yt12&=DPEEK(tree12_adr%+18)
  24140. bt12&=DPEEK(tree12_adr%+20)
  24141. ht12&=DPEEK(tree12_adr%+22)
  24142. xt13&=DPEEK(tree13_adr%+16)
  24143. yt13&=DPEEK(tree13_adr%+18)
  24144. bt13&=DPEEK(tree13_adr%+20)
  24145. ht13&=DPEEK(tree13_adr%+22)
  24146. xt14&=DPEEK(tree14_adr%+16)
  24147. yt14&=DPEEK(tree14_adr%+18)
  24148. bt14&=DPEEK(tree14_adr%+20)
  24149. ht14&=DPEEK(tree14_adr%+22)
  24150. xt15&=DPEEK(tree15_adr%+16)
  24151. yt15&=DPEEK(tree15_adr%+18)
  24152. bt15&=DPEEK(tree15_adr%+20)
  24153. ht15&=DPEEK(tree15_adr%+22)
  24154. xt16&=DPEEK(tree16_adr%+16)
  24155. yt16&=DPEEK(tree16_adr%+18)
  24156. bt16&=DPEEK(tree16_adr%+20)
  24157. ht16&=DPEEK(tree16_adr%+22)
  24158. xt17&=DPEEK(tree17_adr%+16)
  24159. yt17&=DPEEK(tree17_adr%+18)
  24160. bt17&=DPEEK(tree17_adr%+20)
  24161. ht17&=DPEEK(tree17_adr%+22)
  24162. xt18&=DPEEK(tree18_adr%+16)
  24163. yt18&=DPEEK(tree18_adr%+18)
  24164. bt18&=DPEEK(tree18_adr%+20)
  24165. ht18&=DPEEK(tree18_adr%+22)
  24166. xt19&=DPEEK(tree19_adr%+16)
  24167. yt19&=DPEEK(tree19_adr%+18)
  24168. bt19&=DPEEK(tree19_adr%+20)
  24169. ht19&=DPEEK(tree19_adr%+22)
  24170. xt20&=DPEEK(tree20_adr%+16)
  24171. yt20&=DPEEK(tree20_adr%+18)
  24172. bt20&=DPEEK(tree20_adr%+20)
  24173. ht20&=DPEEK(tree20_adr%+22)
  24174. xt21&=DPEEK(tree21_adr%+16)
  24175. yt21&=DPEEK(tree21_adr%+18)
  24176. bt21&=DPEEK(tree21_adr%+20)
  24177. ht21&=DPEEK(tree21_adr%+22)
  24178. xt22&=DPEEK(tree22_adr%+16)
  24179. yt22&=DPEEK(tree22_adr%+18)
  24180. bt22&=DPEEK(tree22_adr%+20)
  24181. ht22&=DPEEK(tree22_adr%+22)
  24182. xt23&=DPEEK(tree23_adr%+16)
  24183. yt23&=DPEEK(tree23_adr%+18)
  24184. bt23&=DPEEK(tree23_adr%+20)
  24185. ht23&=DPEEK(tree23_adr%+22)
  24186. DPOKE tree24_adr%+16,DPEEK(tree24_adr%+16)+200
  24187. xt24&=DPEEK(tree24_adr%+16)
  24188. yt24&=DPEEK(tree24_adr%+18)
  24189. bt24&=DPEEK(tree24_adr%+20)
  24190. ht24&=DPEEK(tree24_adr%+22)
  24191. xt26&=DPEEK(tree26_adr%+16)
  24192. yt26&=DPEEK(tree26_adr%+18)
  24193. bt26&=DPEEK(tree26_adr%+20)
  24194. ht26&=DPEEK(tree26_adr%+22)
  24195. xt27&=DPEEK(tree27_adr%+16)
  24196. yt27&=DPEEK(tree27_adr%+18)
  24197. bt27&=DPEEK(tree27_adr%+20)
  24198. ht27&=DPEEK(tree27_adr%+22)
  24199. xt28&=DPEEK(tree28_adr%+16)
  24200. yt28&=DPEEK(tree28_adr%+18)
  24201. bt28&=DPEEK(tree28_adr%+20)
  24202. ht28&=DPEEK(tree28_adr%+22)
  24203. xt29&=DPEEK(tree29_adr%+16)
  24204. yt29&=DPEEK(tree29_adr%+18)
  24205. bt29&=DPEEK(tree29_adr%+20)
  24206. ht29&=DPEEK(tree29_adr%+22)
  24207. xt30&=DPEEK(tree30_adr%+16)
  24208. yt30&=DPEEK(tree30_adr%+18)
  24209. bt30&=DPEEK(tree30_adr%+20)
  24210. ht30&=DPEEK(tree30_adr%+22)
  24211. xt31&=DPEEK(tree31_adr%+16)
  24212. yt31&=DPEEK(tree31_adr%+18)
  24213. bt31&=DPEEK(tree31_adr%+20)
  24214. ht31&=DPEEK(tree31_adr%+22)
  24215. xt32&=DPEEK(tree32_adr%+16)
  24216. yt32&=DPEEK(tree32_adr%+18)
  24217. bt32&=DPEEK(tree32_adr%+20)
  24218. ht32&=DPEEK(tree32_adr%+22)
  24219. xt35&=DPEEK(tree35_adr%+16)
  24220. yt35&=DPEEK(tree35_adr%+18)
  24221. bt35&=DPEEK(tree35_adr%+20)
  24222. ht35&=DPEEK(tree35_adr%+22)
  24223. xt33&=DPEEK(tree33_adr%+16)
  24224. yt33&=DPEEK(tree33_adr%+18)
  24225. bt33&=DPEEK(tree33_adr%+20)
  24226. ht33&=DPEEK(tree33_adr%+22)
  24227. xt36&=DPEEK(tree36_adr%+16)
  24228. yt36&=DPEEK(tree36_adr%+18)
  24229. bt36&=DPEEK(tree36_adr%+20)
  24230. ht36&=DPEEK(tree36_adr%+22)
  24231. xt37&=DPEEK(tree37_adr%+16)
  24232. yt37&=DPEEK(tree37_adr%+18)
  24233. bt37&=DPEEK(tree37_adr%+20)
  24234. ht37&=DPEEK(tree37_adr%+22)
  24235. xt38&=DPEEK(tree38_adr%+16)
  24236. yt38&=DPEEK(tree38_adr%+18)
  24237. bt38&=DPEEK(tree38_adr%+20)
  24238. ht38&=DPEEK(tree38_adr%+22)
  24239. xt39&=DPEEK(tree39_adr%+16)
  24240. yt39&=DPEEK(tree39_adr%+18)
  24241. bt39&=DPEEK(tree39_adr%+20)
  24242. ht39&=DPEEK(tree39_adr%+22)
  24243. xt40&=DPEEK(tree40_adr%+16)
  24244. yt40&=DPEEK(tree40_adr%+18)
  24245. bt40&=DPEEK(tree40_adr%+20)
  24246. ht40&=DPEEK(tree40_adr%+22)
  24247. xt41&=DPEEK(tree41_adr%+16)
  24248. yt41&=DPEEK(tree41_adr%+18)
  24249. bt41&=DPEEK(tree41_adr%+20)
  24250. ht41&=DPEEK(tree41_adr%+22)
  24251. bt_output&=OB_W(tree40_adr%,pl100&)
  24252. CHAR{{OB_SPEC(tree6_adr%,t_hoehe&)}}=STR$(INT(zeichen_hoehe%/100))
  24253. CHAR{{OB_SPEC(tree7_adr%,zabs&)}}=STR$(INT(zeilen_abstand_prozent%))
  24254. CHAR{{OB_SPEC(tree9_adr%,z_char&)}}=CHR$(z_ascii_old%+32)
  24255. CHAR{{OB_SPEC(tree8_adr%,string_text&)}}=abc$
  24256. CHAR{{OB_SPEC(tree12_adr%,bstep&)}}=STR$(b_vari/100)
  24257. CHAR{{OB_SPEC(tree13_adr%,punkte&)}}=STR$(pointer%)
  24258. CHAR{{OB_SPEC(tree13_adr%,rest&)}}=STR$(p_max%-pointer%)
  24259. CHAR{{OB_SPEC(tree13_adr%,version&)}}=revision$
  24260. CHAR{{OB_SPEC(tree14_adr%,rx1&)}}=STR$(folie_x%)
  24261. CHAR{{OB_SPEC(tree14_adr%,ry1&)}}=STR$(folie_y%)
  24262. CHAR{{OB_SPEC(tree14_adr%,rx2&)}}=STR$(folie_x2%)
  24263. CHAR{{OB_SPEC(tree14_adr%,ry2&)}}=STR$(folie_y2%)
  24264. CHAR{{OB_SPEC(tree14_adr%,rx3&)}}=STR$(folie_x3%)
  24265. CHAR{{OB_SPEC(tree14_adr%,ry3&)}}=STR$(folie_y3%)
  24266. CHAR{{OB_SPEC(tree15_adr%,p_init1&)}}=p_init1$
  24267. CHAR{{OB_SPEC(tree15_adr%,p_init2&)}}=p_init2$
  24268. CHAR{{OB_SPEC(tree15_adr%,overcut&)}}=STR$(overcut|/10)
  24269. CHAR{{OB_SPEC(tree15_adr%,ma&)}}=ma$
  24270. CHAR{{OB_SPEC(tree15_adr%,da&)}}=da$
  24271. CHAR{{OB_SPEC(tree17_adr%,outl&)}}="3.0"
  24272. CHAR{{OB_SPEC(tree18_adr%,schraffd&)}}=STR$(schraff_dist/100)
  24273. CHAR{{OB_SPEC(tree18_adr%,schraffi&)}}=STR$(schraff_inc/100)
  24274. CHAR{{OB_SPEC(tree18_adr%,schraffw&)}}=STR$(schraff_winkel)
  24275. CHAR{{OB_SPEC(tree18_adr%,schrafix&)}}=STR$(schraff_fix_abst)
  24276. CHAR{{OB_SPEC(tree21_adr%,t_step&)}}=STR$(bit_count_max|)
  24277. CHAR{{OB_SPEC(tree21_adr%,t_gerade&)}}=STR$(geraden_fehler|)
  24278. CHAR{{OB_SPEC(tree21_adr%,t_schmutz&)}}=STR$(schmutz_filter%)
  24279. CHAR{{OB_SPEC(tree21_adr%,bschwelle&)}}=STR$(lange_gerade%/100)
  24280. CHAR{{OB_SPEC(tree21_adr%,knickwinkel&)}}=STR$(CINT(DEG(knick_winkel_max)))
  24281. CHAR{{OB_