home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Vectronix 2
/
VECTRONIX2.iso
/
FILES_07
/
CUTOUT.LST
< prev
next >
Wrap
File List
|
1996-04-28
|
692KB
|
24,281 lines
' ******************************************************************************
' * *
' * CUTOUT *
' * *
' * 27.02.1992 *
' * *
' ******************************************************************************
'
'
$B+
$I-
INLINE scsi%,933
DIM buffer|(512*2)
DIM command|(12)
' VAR:
' apl_id&=APPL_INIT()
magic%=14031952
'
' serien_nummer$="REGIST00"
' serien_nummer_vergleich$="REGIST11"
serien_nummer$=MKD$(101)
serien_nummer_vergleich$=MKD$(101 XOR magic%)
'
fang_schnittpunkt|=4
buffer%=0
buffer_max%=0
poly_len%=0
bits%=0
punkt_eintrag&=0
x_start&=0
y_start&=0
edi_max&=0
m=0
m_neu=0
bit_count|=0
pixel!=FALSE
'
regist_nr%=0
revision$="1.59"
zeit%=TIMER
calamus_nr%=0
ortho|=45
ortho=RAD(ortho|)
ortho2=ortho/2
x_win&=0 ! Window X pos aktuell
y_win&=0 ! Window Y pos aktuell
x_window&=0 ! Window X pos aktuell
y_window&=0 ! Window Y pos aktuell
b_window&=0 ! Window Breite aktuell
h_window&=0 ! Window Höhe aktuell
~WIND_GET(0,4,scrx&,scry&,scrb&,scrh&) ! maximaler Desktop
wmx%=scrb&-62
wmy%=scrh&-57+scry&
desk_breite&=scrb&
desk_hoehe&=scrh&+scry&
gross_bildschirm!=FALSE
IF desk_breite&>640 OR desk_hoehe&>400
gross_bildschirm!=TRUE
ENDIF
ADD scrx&,42 ! Position Window X+Menuleiste
SUB scrb&,42 ! Breite Window
scrb_old&=scrb&
scrh_old&=scrh&
res_x%=0 ! Auflösung x in mm
res_y%=0 ! Auflösung y in mm
res_x_old%=0
res_y_old%=0
x_layer%=0
y_layer%=0
x_layero%=0
y_layero%=0
x_offset&=0 ! Nullpunkt x im Fenster
y_offset&=0 ! Nullpunkt y im Fenster
x_offset_old&=0
y_offset_old&=0
x_mouse%=0
y_mouse%=0
x_mouse_old%=0
y_mouse_old%=0
x_mouse_0%=0
y_mouse_0%=0
objectbox_x0%=0
objectbox_y0%=0
objectbox_x1%=0
objectbox_y1%=0
grid%=10 ! raster mm
schraff_dist=201
schraff_inc=0
schraff_fix_abst=0
schraff_winkel=0
schraff_start%=0
schraff_y_min%=0
bit_count_max|=6
geraden_fehler|=1
lange_gerade%=4000
schmutz_filter%=20
knick_winkel_max=RAD(140)
bogen_max=PI/2/2
abweichung_gerade%=0.5*100
last_poly_s%=-1
last_poly_e%=-1
taste|=0
zoom=1
zoom_old=1
zoom_100=1
pointer%=0 ! Zeiger auf Punkteliste
found%=0 ! gefundener Punkt bei SNAP
found_t%=0 ! gefundener Kurvenparameter
schnittpunkt_genau%=16 ! Zerlegung Bezier in Teile
anz_schnittpunkte%=0 ! Anzahl Schnittpunkte
b_vari=100
i%=0 ! allgemeiner Schleifenzähler
ii%=0
iii%=0
d0%=0
dx%=0
dy%=0
dx=0
dy=0
schnitt_laenge=0
kostfak=1
gkosten=0
px0%=0
py0%=0
px1%=0
py1%=0
px2%=0
py2%=0
px3%=0
py3%=0
m_square_breite&=&H3000
m_square_hoehe&=&H3000
kerning_256|=m_square_breite& DIV 256
len_pair_daten&=0
z_hoehe_def%=16384 ! Höhe des definierten Zsatzes
z_breite_def%=16384 ! Breite "
zeichen_hoehe%=3000 ! gewünschte Höhe in 1/100 mm
versal_def%=0 ! Versal Höhe in 1/100 mm
z_ascii_scale=zeichen_hoehe%/z_hoehe_def% ! Scaling
z_ascii_scale_old=z_ascii_scale ! save Scaling
global_kerning%=1280 ! globales Kerning
zeilen_abstand_prozent%=125 ! relativer Zeilen Abstand
zeilen_abstand%=zeichen_hoehe%*zeilen_abstand_prozent%/100-zeichen_hoehe%
z_cursor_x_spalte%=0 ! Start String
z_cursor_x%=0 ! ASCII Zeichen Cursor X
z_cursor_y%=0 ! ASCII Zeichen Cursor y
z_cursor_x_old%=0 ! letztes Zeichen Cursor X
z_cursor_y_old%=0 ! letztes Zeichen Cursor y
z_ascii_old%=0 ! letztes Zeichen ASCII+32
z_satz_pointer%=0 ! Pointer auf Zeichensatz
state_rs232&=0 ! Centronics aktiv
state_hp&=0 ! HPGL aktiv
folie_x%=1188 ! Folien Grö₧e
folie_y%=840
plotter_x_min%=0
plotter_y_min%=0
gdu=0 ! 100*Plottereinheit
sel_start%=0
sel_end%=0
gtxv&=0
gtyv&=0
gtbv&=216
gthv&=297
gtdpiv&=300
gtfarbev&=3
gtkontrav&=3
exit_button&=0
cursor_x&=0
cursor_y&=0
ofn_ver|=0
overcut|=0
geschlossen%=0
'
phi_x_3d=0
phi_y_3d=0
a2_3d=0
'
daten_ptr%=0
work_space%=0
'
' CONST:
'
IF FRE(0)>4000000
p_max%=99999
ELSE
p_max%=60000
ENDIF
ma|=0
da|=1
b1|=2
b2|=3
b3|=4
ein_drittel=1/3
fmin=2.225073858507E-307
fmin1=0.005
max1=0.995
pimal2=PI*2
pihalbe=PI/2
pidrittel=PI/3
fang_rad%=8*100 ! FANGRADIUS
p_at%=XBIOS(3)+76 ! PRINT AT FÜR X,Y
p_at_zoom%=p_at%-12 ! PRINT AT FÜR ZOOM
x_bytes%=(scrb&+42)/8 ! BYTES IN X RICHTUNG DESKTOP
'
' CONST: Menuleiste
'
tree00&=0
tree0_adr%=0
datei&=3
eintrag&=4
mfenster&=10
mtext&=5
mzedi&=6
spezial&=7
all_clear&=8
bbogen&=9
mschnitt&=11
'
tree01&=1
tree1_adr%=0
back_main&=3
fwd_main&=4
gerade&=5
kurve&=6
schliess&=7
verrunde&=8
loeschen&=9
lock&=10
snap&=11
bild&=12
zircel&=13
bezier4&=14
schere&=15
' fenster&=15
'
tree02&=2
tree2_adr%=0
back_datei&=3
fwd_datei&=4
l_vek&=5
l_merge&=6
r_macro&=7
r_cvg&=8
l_img&=9
l_pic&=10
ordner&=11
s_vek&=12
s_plt&=13
a_plotter&=14
'
tree03&=3
tree3_adr%=0
back_fenster&=3
fwd_fenster&=4
fmove&=5
blitz&=6
fcopy&=7
fzoom&=8
fzoomp&=9
fdreh&=10
fspiegel&=11
fkursiv&=12
dreh3d&=13
drehxp&=14
drehxm&=15
drehym&=16
drehyp&=17
floesch&=18
fzoom1&=19
'
tree04&=4
tree4_adr%=0
back_spezial&=3
gtepson&=4
handy&=5
kontour&=6
filter&=7
trace&=8
smooth&=9
simag&=10
'
tree05&=5
tree5_adr%=0
back_text&=3
fwd_text&=4
z_edit&=5
z_editor&=6
z_string&=7
z_t_hoehe&=8
z_t_abstand&=9
z_g_kerning&=10
z_read_ascii&=11
l_font&=12
s_font&=14
c_font&=13
'
tree06&=6
tree6_adr%=0
t_hoehe&=1
'
tree07&=7
tree7_adr%=0
zabs&=1
'
tree08&=8 ! String Text
tree8_adr%=0
string_text&=1
breite&=3
string_breite&=4
versal&=5
string_versal&=6
pfad&=7
do_kerning&=8
string_kreis&=9
string_kreis_von&=10
string_kreis_bis&=11
fontname&=13
c_text&=14
icon_pair&=15
icon_trep&=16
'
tree09&=9 ! Zeichen Editor
tree9_adr%=0
back_editor&=3
m_matrix&=4
z_matrix&=5
move_matrix&=6
kerning_links&=7
kerning_rechts&=8
kerning_auto&=9
z_get&=10
z_muell&=11
z_up&=13
z_down&=14
z_char&=15
'
tree10&=10
tree10_adr%=0
b_kerning&=2
g_kerning&=3
'
tree11&=11 ! Optimier
tree11_adr%=0
del_ma&=4
del_ge&=6
del_el&=8
'
tree12&=12
tree12_adr%=0
bstep&=1
'
tree13&=13 ! Info
tree13_adr%=0
vernr&=7
version&=4
firma&=4
strasse&=7
stadt&=10
punkte&=15
rest&=17
'
tree14&=14 ! Auflösung
tree14_adr%=0
rx1&=8
ry1&=10
rx2&=12
ry2&=13
rx3&=16
ry3&=17
get_pf&=19
r1&=4
r2&=5
r3&=6
'
tree15&=15 ! Plotter INIT
tree15_adr%=0
p_init1&=3
p_init2&=4
gdu01&=9
gdu025&=10
gdu05&=11
gdu1&=12
overcut&=16
cent&=18
rs232&=20
hp&=23
gp&=24
mgl&=25
ma&=29
da&=30
'
tree16&=16 ! Pfade und Parameter
tree16_adr%=0
pv&=5
pp&=7
pfi&=9
pg&=11
pf&=13
df&=15
p1&=17
p2&=19
schnitt&=21
gdu&=23
foliex&=25
foliey&=27
warn&=29
cancel&=31
'
tree17&=17
tree17_adr%=0
outl&=1
outl_anz&=2
'
tree18&=18
tree18_adr%=0
schraffd&=1
schraffi&=2
schrafix&=3
schraffw&=4
schraffa&=7
schrafff&=8
'
tree19&=19
tree19_adr%=0
necka&=1
neckp&=2
'
tree20&=20 ! Füll
tree20_adr%=0
fill1&=3
fill2&=5
fill3&=7
fill4&=9
fill5&=11
fill6&=13
fill7&=15
fillcancel&=17
'
tree21&=21 ! Trace
tree21_adr%=0
t_step&=7
t_gerade&=8
t_schmutz&=9
bschwelle&=21
knickwinkel&=22
bogen_max&=23
abweichung_gerade&=24
nur_gerade&=13
trace_cancel&=14
gerade_bezier&=30
'
tree22&=22
tree22_adr%=0
scann_x&=1
scann_y&=2
'
tree23&=23
tree23_adr%=0
radius&=1
'
tree24&=24
tree24_adr%=0
grau&=6
stark&=7
selgrau0&=4
selgrau&=5
sellinie&=8
alle&=9
auswahl&=10
'
tree25&=25 ! Bogen
tree25_adr%=0
backboge&=3
vkreis&=4
kreis3&=5
kreisbog&=6
bogen3&=7
bogen2&=8
ellipse&=9
elbogen&=10
eckrund&=11
'
tree26&=26 ! Koordinaten
tree26_adr%=0
absolut&=2
relativ&=3
polar&=4
'
tree27&=27 ! Calamus Versions Nr.
tree27_adr%=0
calamus_nr&=1
'
tree28&=28 ! GT 6000
tree28_adr%=0
gtscan&=47
gtx&=38
gty&=44
gtb&=42
gth&=43
gtcancel&=46
gtpresca&=45
gtdpi&=35
gtdpimin&=33
gtdpiplu&=34
gtprewin&=1
gtstate&=5
gtkeiner&=9
gtraster&=10
gtweich&=11
gthart&=12
gtkeine&=15
gtrot&=18
gtgruen&=17
gtblau&=16
k0&=22
k1&=23
k2&=24
k3&=25
k4&=26
k5&=27
k6&=28
'
tree29&=29 ! Kosten
tree29_adr%=0
kostfak&=1
sl&=2
gkosten&=4
'
tree30&=30 ! Select Filter
tree30_adr%=0
abs_filter&=1
'
tree31&=31 ! Select Fenster
tree31_adr%=0
ohnecopy&=1
mitcopy&=6
anz_rot&=3
phi_rot&=4
numohne&=5
ausricht_vector&=7
'
tree32&=32 ! Select Spiegel
tree32_adr%=0
anbox&=2
anachse&=1
'
tree33&=33
tree33_adr%=0
teil&=1
'
tree34&=34 ! Schnittpunkt
tree34_adr%=0
backschn&=3
fwdschn&=4
trimm&=5
knack&=6
lot&=7
teilen&=8
lang&=9
schnitt2&=10
schnittn&=11
delseg&=12
delel&=13
schmelz&=14
'
tree35&=35 ! Select Copy
tree35_adr%=0
copysing&=1
copymul&=2
cx&=4
cy&=5
canz&=6
cdist&=7
'
tree36&=36 ! Ausrichten
tree36_adr%=0
a_olinks&=1
a_oben&=2
a_orechts&=3
a_links&=4
a_mitte&=5
a_rechts&=6
a_ulinks&=7
a_unten&=8
a_urechts&=9
'
tree37&=37 ! Scalieren
tree37_adr%=0
scale_interactiv&=1
scale_numerisch&=2
scale_breite&=4
scale_hoehe&=5
'
tree38&=38 ! Ordner
tree38_adr%=0
ordnert&=1
ordnerok&=2
ordnerca&=3
'
tree39&=39 ! Kerning
tree39_adr%=0
kerning_box&=1
kerning_minus&=3
kerning_plus&=4
kerning_last&=2
kerning_next&=5
kerning_exit&=6
kerning_minus2&=9
kerning_plus2&=10
kerning_last2&=8
kerning_next2&=11
kerning_clear&=7
kerning_info&=13
kerning_pair&=15
'
tree40&=40 ! Plotter OUTPUT
tree40_adr%=0
pl100&=3
plschieber&=4
plschere&=7
plschereauf&=5
plscherezu&=6
plschere&=7
'
tree41&=41 ! Select Neigen
tree41_adr%=0
neige_grad&=2
neige_vertical&=3
neige_horizontal&=4
neige_interaktiv&=5
'
' FLAG:
'
undo!=FALSE
geschlossen!=FALSE
ok!=FALSE ! allgemein
layer_geladen!=FALSE ! ist Layer geladen
layer!=FALSE ! soll Layer gezeigt werden
window_fulled!=TRUE ! ist Fenster schon gro₧
voll_bild!=FALSE ! ist Fenster komplett auf Crt
eintragen!=FALSE ! ist eintragen aktiv
bogen!=FALSE
mtext!=FALSE
meditor!=FALSE
datei!=FALSE
fenster!=FALSE
schnittpunktm!=FALSE
loeschen!=FALSE ! ist loeschen aktiv
neues_polygon!=TRUE ! erster Punkt im Polygon
found!=FALSE ! gefunden bei Fangradius
marker!=FALSE ! sollen Marker gezeigt werden
marker_select!=FALSE ! soll Marker selectiert
modified!=FALSE ! wurde Vektorbild geändert
font_geladen!=FALSE ! ist ein Font geladen
outlined!=FALSE ! wurde Bitmap schon outlined
auto_schraff!=TRUE
schraff_fix_abst!=FALSE
einpassen!=FALSE
tangente!=FALSE
tangenten_lock!=TRUE
warn!=FALSE
gp_gl!=FALSE ! HPGL oder GPGL
tasten_rep!=FALSE
absolut!=TRUE
relativ!=FALSE
polar!=FALSE
absolut_old!=FALSE
polar_old!=FALSE
fangklein!=FALSE ! Fangradius gro₧
fadenkreuz!=FALSE
polygonmode!=TRUE ! Polygonmodus
ortho!=FALSE
grid!=FALSE
scrolled!=FALSE
move!=FALSE
drei_d!=FALSE
status_wechsel!=FALSE
grid_wechsel!=FALSE
swap!=FALSE
'
' ARRAY:
'
DIM smfdb%(8),dmfdb%(8),p%(8)
DIM z_smfdb%(8),z_dmfdb%(8),z_p%(8),q_dmfdb%(8)
DIM punkte_x%(p_max%),punkte_y%(p_max%),punkte_def|(p_max%),buffer%(p_max%/2)
DIM x_meta%(127),y_meta%(127),punkte_def1|(32)
ARRAYFILL punkte_def1|(),1
DIM bezier_x&(33),bezier_y&(33)
DIM m$(87)
DIM mk%(60,2)
DIM m_square%(5)
DIM z_editor%(32)
DIM z_ascii%(224),z_kerning&(224*16),z_daten&(224*280),z_pair&(224),z_pair|(224),z_pair_daten|(2000)
DIM sx1%(9),sy1%(9),sx2%(9),sy2%(9),sp1(9),sp2(9)
DIM zeilen_buffer$(60)
rette$=SPACE$(32000)
pfad$=SPACE$(80)
kerning_string$=SPACE$(60)
pfad_pic$=SPACE$(80)
pfad_img$=SPACE$(80)
pfad_vek$=SPACE$(80)
pfad_vek_root$=SPACE$(80)
pfad_cvg$=SPACE$(80)
pfad_fnt$=SPACE$(80)
pfad_cfn$=SPACE$(80)
default_font$=SPACE$(10)
programm$=SPACE$(10)
programm_font$=SPACE$(10)
test_datei$=SPACE$(10)
object$=SPACE$(80)
p_init1$=SPACE$(40)
p_init2$=SPACE$(40)
abc$="CutOut Test"
ma$="M"
da$="D"
cutout_font$="CUTOUTOFN"
calamus_font_grafik$=MKI$(159)+MKI$(15)+MKI$(1)+SPACE$(320)
ok$="OK"
ein_space$=" "
x_y$="X|Y"
erster$="1. "
zweiter$="2. "
help_on$="ON "
help_off$="OFF"
vek$="VEK"
cvg$="CVG"
img$="IMG"
plt$="PLT"
calamus$="CALAMUS"
cutout$="CutOut"
' ****************************************************************************
OPEN "I",#1,"SYS\LANGUAGE.DRV"
LINE INPUT #1,pd_menu$
LINE INPUT #1,pd_datei$
LINE INPUT #1,pd_editieren$
LINE INPUT #1,pd_fenster$
LINE INPUT #1,pd_schnittpunkt$
LINE INPUT #1,pd_bogen$
LINE INPUT #1,pd_text$
LINE INPUT #1,pd_zeicheneditor$
LINE INPUT #1,pd_extra$
LINE INPUT #1,pd_quit$
'
LINE INPUT #1,pd_optionen$
LINE INPUT #1,pd_marker_anzeigen$
LINE INPUT #1,pd_tangenten_anzeigen$
LINE INPUT #1,pd_fangradius_klein$
LINE INPUT #1,pd_polygon_modus$
LINE INPUT #1,pd_schnittpunkt_genau$
LINE INPUT #1,pd_koordinaten$
LINE INPUT #1,pd_element_selektieren$
LINE INPUT #1,pd_polygon_selektieren$
LINE INPUT #1,pd_warnmeldungen$
LINE INPUT #1,pd_skaliere_alles$
LINE INPUT #1,pd_punkte_nivellieren$
LINE INPUT #1,pd_tangente$
LINE INPUT #1,pd_plotflaeche$
LINE INPUT #1,pd_bezier_step_aendern$
LINE INPUT #1,pd_plotter_einstellung$
LINE INPUT #1,pd_kosten_faktor$
LINE INPUT #1,pd_pfad_sichern$
'
LINE INPUT #1,pd_figur$
LINE INPUT #1,pd_rechteck$
LINE INPUT #1,pd_n_eck$
LINE INPUT #1,pd_polygon_outline$
LINE INPUT #1,pd_aequidistante$
LINE INPUT #1,pd_frame$
LINE INPUT #1,pd_polygone_ausrichten$
LINE INPUT #1,pd_polygone_zentrieren$
LINE INPUT #1,pd_polygone_vereinen$
LINE INPUT #1,pd_polygone_fuellen$
LINE INPUT #1,pd_einzelne_punkte_loeschen$
'
LINE INPUT #1,pd_linie$
LINE INPUT #1,pd_bezier_vektor$
LINE INPUT #1,pd_bezier_einfuegen$
LINE INPUT #1,pd_tausche_bezier_vektor$
LINE INPUT #1,pd_knacken$
LINE INPUT #1,pd_trimmen$
LINE INPUT #1,pd_lot$
LINE INPUT #1,pd_verlaengern$
LINE INPUT #1,pd_teilen$
LINE INPUT #1,pd_messen$
LINE INPUT #1,pd_schnittp_2er$
LINE INPUT #1,pd_schnittp_n$
'
LINE INPUT #1,pd_effekt$
LINE INPUT #1,pd_parameter_schraffur$
LINE INPUT #1,pd_polygon_schraffieren$
LINE INPUT #1,pd_alles_schraffieren$
LINE INPUT #1,pd_schatten$
LINE INPUT #1,pd_einpassen$
LINE INPUT #1,pd_kugel$
'
LINE INPUT #1,lade$
LINE INPUT #1,sichere$
LINE INPUT #1,fuege_ein$
LINE INPUT #1,vektor$
LINE INPUT #1,macro$
LINE INPUT #1,daten$
LINE INPUT #1,zeichensatz$
LINE INPUT #1,kein$
LINE INPUT #1,keine$
LINE INPUT #1,ja_nein$
LINE INPUT #1,waehle$
LINE INPUT #1,fehler$
LINE INPUT #1,scannen$
LINE INPUT #1,pre_view$
LINE INPUT #1,ascii_importieren$
LINE INPUT #1,ascii_exportieren$
LINE INPUT #1,schriftblock$
LINE INPUT #1,radius_zu$
LINE INPUT #1,winkel_zu$
LINE INPUT #1,leider$
LINE INPUT #1,winkel_einstellen$
LINE INPUT #1,spiegelachse$
LINE INPUT #1,lupe_mal$
LINE INPUT #1,fensterbereich$
LINE INPUT #1,drehzentrum$
LINE INPUT #1,ordner_exist$
LINE INPUT #1,kein_leer$
LINE INPUT #1,suche_schnittpunkte$
LINE INPUT #1,gleiches_polygon$
LINE INPUT #1,bezugs$
LINE INPUT #1,zentriere$
LINE INPUT #1,huellkurve$
LINE INPUT #1,huellkurve1$
LINE INPUT #1,berechne$
LINE INPUT #1,rechte_taste$
LINE INPUT #1,endpunkt$
LINE INPUT #1,lot_an$
LINE INPUT #1,noname$
LINE INPUT #1,symbol$
LINE INPUT #1,orginal_fenster$
LINE INPUT #1,dmc_font$
LINE INPUT #1,bild_datei_zu$
LINE INPUT #1,stad_laden$
LINE INPUT #1,plotter_ist_off$
LINE INPUT #1,plot_datei$
LINE INPUT #1,kein_treiber$
LINE INPUT #1,schnittstelle_auf$
LINE INPUT #1,polygone_vereinen$
LINE INPUT #1,loesche_einzelne$
LINE INPUT #1,quelle$
LINE INPUT #1,ziel$
LINE INPUT #1,nivelliere$
LINE INPUT #1,alle_daten_l$
LINE INPUT #1,ganzer_zeichensatz$
LINE INPUT #1,font_daten_loeschen$
LINE INPUT #1,zeichen_matrix$
LINE INPUT #1,datei_existiert$
LINE INPUT #1,datei_ueberschreiben$
LINE INPUT #1,glaetten_mit$
LINE INPUT #1,gerade_bezier$
LINE INPUT #1,glaetten$
LINE INPUT #1,bereich$
LINE INPUT #1,path$
LINE INPUT #1,help_mittelpunkt$
LINE INPUT #1,help_radius$
LINE INPUT #1,help_position$
LINE INPUT #1,help_startwinkel$
LINE INPUT #1,help_endwinkel$
LINE INPUT #1,help_polygon$
LINE INPUT #1,help_punkt$
LINE INPUT #1,help_linie$
LINE INPUT #1,help_element$
LINE INPUT #1,help_verrund$
LINE INPUT #1,help_loesche$
LINE INPUT #1,help_trenn$
LINE INPUT #1,help_move$
LINE INPUT #1,help_sel$
LINE INPUT #1,help_move_window$
LINE INPUT #1,help_rahmen$
LINE INPUT #1,help_edit$
LINE INPUT #1,help_bezier$
LINE INPUT #1,help_status$
LINE INPUT #1,help_ortho$
LINE INPUT #1,help_grid$
LINE INPUT #1,help_free$
LINE INPUT #1,help_snap$
LINE INPUT #1,help_editor$
LINE INPUT #1,help_pfad$
CLOSE #1
' ****************************************************************************
integer%=VARPTR(punkte_x%(1))-VARPTR(punkte_x%(0)) ! Länge in Bytes Integer
'
z_editor%(0)=2048 ! Top Line Y
z_editor%(1)=3072 ! Ascent Line Y
z_editor%(2)=6144 ! Half Line Y
z_editor%(3)=11264 ! Base Line Y
z_editor%(4)=13952 ! Descent Line Y
z_editor%(5)=14336 ! Bottom Line Y
'
z_editor%(6)=0 ! Matrix links X
z_editor%(7)=16384 ! Matrix rechts X
z_editor%(8)=1280 ! Kerning links X
z_editor%(9)=1280 ! Kerning links X
z_editor%(10)=1280 ! Kerning links X
z_editor%(11)=1280 ! Kerning links X
z_editor%(12)=1280 ! Kerning links X
z_editor%(13)=1280 ! Kerning links X
z_editor%(14)=1280 ! Kerning links X
z_editor%(15)=1280 ! Kerning links X
z_editor%(16)=15104 ! Kerning rechts X
z_editor%(17)=15104 ! Kerning rechts X
z_editor%(18)=15104 ! Kerning rechts X
z_editor%(19)=15104 ! Kerning rechts X
z_editor%(20)=15104 ! Kerning rechts X
z_editor%(21)=15104 ! Kerning rechts X
z_editor%(22)=15104 ! Kerning rechts X
z_editor%(23)=15104 ! Kerning rechts X
z_editor%(24)=z_editor%(0) ! Kerning Y
z_editor%(25)=(z_editor%(5)-z_editor%(0))/8 ! Kerning Y
z_editor%(26)=z_editor%(24)+z_editor%(25) ! Kerning Y
z_editor%(27)=z_editor%(26)+z_editor%(25) ! Kerning Y
z_editor%(28)=z_editor%(27)+z_editor%(25) ! Kerning Y
z_editor%(29)=z_editor%(28)+z_editor%(25) ! Kerning Y
z_editor%(30)=z_editor%(29)+z_editor%(25) ! Kerning Y
z_editor%(31)=z_editor%(30)+z_editor%(25) ! Kerning Y
z_editor%(32)=0 ! Matrix oben Y
'
' ******************************************************************************
' * *
' * MENU INITIALISIERUNG *
' * *
' ******************************************************************************
'
BMOVE V:serien_nummer$,V:serien_nummer,8
BMOVE V:serien_nummer_vergleich$,V:serien_nummer_vergleich,8
regist_nr%=serien_nummer_vergleich
IF serien_nummer<>(serien_nummer_vergleich XOR magic%)
PRINT "SORRY HACKER"
PAUSE 300
SYSTEM
ENDIF
INLINE zasm_ptr%,4136
INLINE pack_img%,958
INLINE calc_bezier%,1050
INLINE p_num%,360
INLINE find_line%,356
INLINE kontour%,216
INLINE staddec%,184
INLINE imgdec%,228
INLINE findexcept%,52
INLINE findpointexcept%,70
mfang$=MKI$(7)+MKI$(7)+MKI$(1)+MKI$(0)+MKI$(1)
mfang$=mfang$+MKI$(&X1111111111111110)
mfang$=mfang$+MKI$(&X1111111111111110)
mfang$=mfang$+MKI$(&X1100001110000110)
mfang$=mfang$+MKI$(&X1100001110000110)
mfang$=mfang$+MKI$(&X1100001110000110)
mfang$=mfang$+MKI$(&X1100001110000110)
mfang$=mfang$+MKI$(&X1111110001111110)
mfang$=mfang$+MKI$(&X1111110001111110)
mfang$=mfang$+MKI$(&X1111110001111110)
mfang$=mfang$+MKI$(&X1100001110000110)
mfang$=mfang$+MKI$(&X1100001110000110)
mfang$=mfang$+MKI$(&X1100001110000110)
mfang$=mfang$+MKI$(&X1100001110000110)
mfang$=mfang$+MKI$(&X1111111111111110)
mfang$=mfang$+MKI$(&X1111111111111110)
mfang$=mfang$+MKI$(&X0)
'
mfang$=mfang$+MKI$(&X1111111111111110)
mfang$=mfang$+MKI$(&X1000000100000010)
mfang$=mfang$+MKI$(&X1000000100000010)
mfang$=mfang$+MKI$(&X1000000100000010)
mfang$=mfang$+MKI$(&X1000000100000010)
mfang$=mfang$+MKI$(&X1000000100000010)
mfang$=mfang$+MKI$(&X1000000000000010)
mfang$=mfang$+MKI$(&X1111110001111110)
mfang$=mfang$+MKI$(&X1000000000000010)
mfang$=mfang$+MKI$(&X1000000100000010)
mfang$=mfang$+MKI$(&X1000000100000010)
mfang$=mfang$+MKI$(&X1000000100000010)
mfang$=mfang$+MKI$(&X1000000100000010)
mfang$=mfang$+MKI$(&X1000000100000010)
mfang$=mfang$+MKI$(&X1111111111111110)
mfang$=mfang$+MKI$(&X0)
'
mfang_klein$=MKI$(7)+MKI$(7)+MKI$(1)+MKI$(0)+MKI$(1)
mfang_klein$=mfang_klein$+MKI$(&X0)
mfang_klein$=mfang_klein$+MKI$(&X0)
mfang_klein$=mfang_klein$+MKI$(&X11111111111000)
mfang_klein$=mfang_klein$+MKI$(&X11111111111000)
mfang_klein$=mfang_klein$+MKI$(&X11001110011000)
mfang_klein$=mfang_klein$+MKI$(&X11001110011000)
mfang_klein$=mfang_klein$+MKI$(&X11110001111000)
mfang_klein$=mfang_klein$+MKI$(&X11110001111000)
mfang_klein$=mfang_klein$+MKI$(&X11110001111000)
mfang_klein$=mfang_klein$+MKI$(&X11001110011000)
mfang_klein$=mfang_klein$+MKI$(&X11001110011000)
mfang_klein$=mfang_klein$+MKI$(&X11111111111000)
mfang_klein$=mfang_klein$+MKI$(&X11111111111000)
mfang_klein$=mfang_klein$+MKI$(&X0)
mfang_klein$=mfang_klein$+MKI$(&X0)
mfang_klein$=mfang_klein$+MKI$(&X0)
'
mfang_klein$=mfang_klein$+MKI$(&X0)
mfang_klein$=mfang_klein$+MKI$(&X0)
mfang_klein$=mfang_klein$+MKI$(&X0)
mfang_klein$=mfang_klein$+MKI$(&X1111111110000)
mfang_klein$=mfang_klein$+MKI$(&X1000100010000)
mfang_klein$=mfang_klein$+MKI$(&X1000100010000)
mfang_klein$=mfang_klein$+MKI$(&X1000000010000)
mfang_klein$=mfang_klein$+MKI$(&X1110001110000)
mfang_klein$=mfang_klein$+MKI$(&X1000000010000)
mfang_klein$=mfang_klein$+MKI$(&X1000100010000)
mfang_klein$=mfang_klein$+MKI$(&X1000100010000)
mfang_klein$=mfang_klein$+MKI$(&X1111111110000)
mfang_klein$=mfang_klein$+MKI$(&X0)
mfang_klein$=mfang_klein$+MKI$(&X0)
mfang_klein$=mfang_klein$+MKI$(&X0)
mfang_klein$=mfang_klein$+MKI$(&X0)
'
mdaten$=MKI$(7)+MKI$(7)+MKI$(1)+MKI$(0)+MKI$(1)
mdaten$=mdaten$+MKI$(&X1110000000)
mdaten$=mdaten$+MKI$(&X1110000000)
mdaten$=mdaten$+MKI$(&X1110000000)
mdaten$=mdaten$+MKI$(&X1110000000)
mdaten$=mdaten$+MKI$(&X1110000000)
mdaten$=mdaten$+MKI$(&X1110000000)
mdaten$=mdaten$+MKI$(&X1111110001111110)
mdaten$=mdaten$+MKI$(&X1111110001111110)
mdaten$=mdaten$+MKI$(&X1111110001111110)
mdaten$=mdaten$+MKI$(&X1110000000)
mdaten$=mdaten$+MKI$(&X1110000000)
mdaten$=mdaten$+MKI$(&X1110000000)
mdaten$=mdaten$+MKI$(&X1110000000)
mdaten$=mdaten$+MKI$(&X1110000000)
mdaten$=mdaten$+MKI$(&X1110000000)
mdaten$=mdaten$+MKI$(&X0)
'
mdaten$=mdaten$+MKI$(&X100000000)
mdaten$=mdaten$+MKI$(&X100000000)
mdaten$=mdaten$+MKI$(&X100000000)
mdaten$=mdaten$+MKI$(&X100000000)
mdaten$=mdaten$+MKI$(&X100000000)
mdaten$=mdaten$+MKI$(&X100000000)
mdaten$=mdaten$+MKI$(&X0)
mdaten$=mdaten$+MKI$(&X1111110001111110)
mdaten$=mdaten$+MKI$(&X0)
mdaten$=mdaten$+MKI$(&X100000000)
mdaten$=mdaten$+MKI$(&X100000000)
mdaten$=mdaten$+MKI$(&X100000000)
mdaten$=mdaten$+MKI$(&X100000000)
mdaten$=mdaten$+MKI$(&X100000000)
mdaten$=mdaten$+MKI$(&X100000000)
mdaten$=mdaten$+MKI$(&X0)
'
schwer$=MKI$(7)+MKI$(7)+MKI$(-1)+MKI$(0)+MKI$(1)
schwer$=schwer$+MKI$(&X0) !
schwer$=schwer$+MKI$(&X0)
schwer$=schwer$+MKI$(&X11111000000) !
schwer$=schwer$+MKI$(&X11111000000)
schwer$=schwer$+MKI$(&X1100111110000) !
schwer$=schwer$+MKI$(&X1100111110000)
schwer$=schwer$+MKI$(&X10000111111000) !
schwer$=schwer$+MKI$(&X10000111111000)
schwer$=schwer$+MKI$(&X10000111111000) !
schwer$=schwer$+MKI$(&X10000111111000)
schwer$=schwer$+MKI$(&X100000111111100) !
schwer$=schwer$+MKI$(&X100000111111100)
schwer$=schwer$+MKI$(&X100000111111100) !
schwer$=schwer$+MKI$(&X100000111111100)
schwer$=schwer$+MKI$(&X111111011111100) !!
schwer$=schwer$+MKI$(&X111111011111100)
schwer$=schwer$+MKI$(&X111111100000100) !
schwer$=schwer$+MKI$(&X111111100000100)
schwer$=schwer$+MKI$(&X111111100000100) !
schwer$=schwer$+MKI$(&X111111100000100)
schwer$=schwer$+MKI$(&X11111100001000) !
schwer$=schwer$+MKI$(&X11111100001000)
schwer$=schwer$+MKI$(&X11111100001000) !
schwer$=schwer$+MKI$(&X11111100001000)
schwer$=schwer$+MKI$(&X1111100110000) !
schwer$=schwer$+MKI$(&X1111100110000)
schwer$=schwer$+MKI$(&X11111000000) !
schwer$=schwer$+MKI$(&X11111000000)
schwer$=schwer$+MKI$(&X0) !
schwer$=schwer$+MKI$(&X0)
schwer$=schwer$+MKI$(&X0) !
schwer$=schwer$+MKI$(&X0)
pfad_read
reset
RESERVE -64*1024
DIM work%((FRE(0)-80*1024)/4)
daten_ptr%=V:work%(0)
work_space%=DIM?(work%())*4
KEYPAD 8
~RSRC_LOAD("SYS\CUTOUT.RSC")
~RSRC_GADDR(0,tree00&,tree0_adr%)
~RSRC_GADDR(0,tree01&,tree1_adr%)
~RSRC_GADDR(0,tree02&,tree2_adr%)
~RSRC_GADDR(0,tree03&,tree3_adr%)
~RSRC_GADDR(0,tree04&,tree4_adr%)
~RSRC_GADDR(0,tree05&,tree5_adr%)
~RSRC_GADDR(0,tree06&,tree6_adr%)
~RSRC_GADDR(0,tree07&,tree7_adr%)
~RSRC_GADDR(0,tree08&,tree8_adr%)
~RSRC_GADDR(0,tree09&,tree9_adr%)
~RSRC_GADDR(0,tree10&,tree10_adr%)
~RSRC_GADDR(0,tree11&,tree11_adr%)
~RSRC_GADDR(0,tree12&,tree12_adr%)
~RSRC_GADDR(0,tree13&,tree13_adr%)
~RSRC_GADDR(0,tree14&,tree14_adr%)
~RSRC_GADDR(0,tree15&,tree15_adr%)
~RSRC_GADDR(0,tree16&,tree16_adr%)
~RSRC_GADDR(0,tree17&,tree17_adr%)
~RSRC_GADDR(0,tree18&,tree18_adr%)
~RSRC_GADDR(0,tree19&,tree19_adr%)
~RSRC_GADDR(0,tree20&,tree20_adr%)
~RSRC_GADDR(0,tree21&,tree21_adr%)
~RSRC_GADDR(0,tree22&,tree22_adr%)
~RSRC_GADDR(0,tree23&,tree23_adr%)
~RSRC_GADDR(0,tree24&,tree24_adr%)
~RSRC_GADDR(0,tree25&,tree25_adr%)
~RSRC_GADDR(0,tree26&,tree26_adr%)
~RSRC_GADDR(0,tree27&,tree27_adr%)
~RSRC_GADDR(0,tree28&,tree28_adr%)
~RSRC_GADDR(0,tree29&,tree29_adr%)
~RSRC_GADDR(0,tree30&,tree30_adr%)
~RSRC_GADDR(0,tree31&,tree31_adr%)
~RSRC_GADDR(0,tree32&,tree32_adr%)
~RSRC_GADDR(0,tree33&,tree33_adr%)
~RSRC_GADDR(0,tree34&,tree34_adr%)
~RSRC_GADDR(0,tree35&,tree35_adr%)
~RSRC_GADDR(0,tree36&,tree36_adr%)
~RSRC_GADDR(0,tree37&,tree37_adr%)
~RSRC_GADDR(0,tree38&,tree38_adr%)
~RSRC_GADDR(0,tree39&,tree39_adr%)
~RSRC_GADDR(0,tree40&,tree40_adr%)
~RSRC_GADDR(0,tree41&,tree41_adr%)
~FORM_CENTER(tree6_adr%)
~FORM_CENTER(tree7_adr%)
~FORM_CENTER(tree8_adr%)
~FORM_CENTER(tree10_adr%)
~FORM_CENTER(tree11_adr%)
~FORM_CENTER(tree12_adr%)
~FORM_CENTER(tree13_adr%)
~FORM_CENTER(tree14_adr%)
~FORM_CENTER(tree15_adr%)
~FORM_CENTER(tree16_adr%)
~FORM_CENTER(tree17_adr%)
~FORM_CENTER(tree18_adr%)
~FORM_CENTER(tree19_adr%)
~FORM_CENTER(tree20_adr%)
~FORM_CENTER(tree21_adr%)
~FORM_CENTER(tree22_adr%)
~FORM_CENTER(tree23_adr%)
~FORM_CENTER(tree24_adr%)
~FORM_CENTER(tree26_adr%)
~FORM_CENTER(tree27_adr%)
~FORM_CENTER(tree28_adr%)
~FORM_CENTER(tree29_adr%)
~FORM_CENTER(tree30_adr%)
~FORM_CENTER(tree31_adr%)
~FORM_CENTER(tree32_adr%)
~FORM_CENTER(tree33_adr%)
~FORM_CENTER(tree35_adr%)
~FORM_CENTER(tree36_adr%)
~FORM_CENTER(tree37_adr%)
~FORM_CENTER(tree38_adr%)
~FORM_CENTER(tree39_adr%)
~FORM_CENTER(tree40_adr%)
~FORM_CENTER(tree41_adr%)
xt6&=DPEEK(tree6_adr%+16)
yt6&=DPEEK(tree6_adr%+18)
bt6&=DPEEK(tree6_adr%+20)
ht6&=DPEEK(tree6_adr%+22)
xt7&=DPEEK(tree7_adr%+16)
yt7&=DPEEK(tree7_adr%+18)
bt7&=DPEEK(tree7_adr%+20)
ht7&=DPEEK(tree7_adr%+22)
xt8&=DPEEK(tree8_adr%+16)
yt8&=DPEEK(tree8_adr%+18)
bt8&=DPEEK(tree8_adr%+20)
ht8&=DPEEK(tree8_adr%+22)
xt10&=DPEEK(tree10_adr%+16)
yt10&=DPEEK(tree10_adr%+18)
bt10&=DPEEK(tree10_adr%+20)
ht10&=DPEEK(tree10_adr%+22)
xt11&=DPEEK(tree11_adr%+16)
yt11&=DPEEK(tree11_adr%+18)
bt11&=DPEEK(tree11_adr%+20)
ht11&=DPEEK(tree11_adr%+22)
xt12&=DPEEK(tree12_adr%+16)
yt12&=DPEEK(tree12_adr%+18)
bt12&=DPEEK(tree12_adr%+20)
ht12&=DPEEK(tree12_adr%+22)
xt13&=DPEEK(tree13_adr%+16)
yt13&=DPEEK(tree13_adr%+18)
bt13&=DPEEK(tree13_adr%+20)
ht13&=DPEEK(tree13_adr%+22)
xt14&=DPEEK(tree14_adr%+16)
yt14&=DPEEK(tree14_adr%+18)
bt14&=DPEEK(tree14_adr%+20)
ht14&=DPEEK(tree14_adr%+22)
xt15&=DPEEK(tree15_adr%+16)
yt15&=DPEEK(tree15_adr%+18)
bt15&=DPEEK(tree15_adr%+20)
ht15&=DPEEK(tree15_adr%+22)
xt16&=DPEEK(tree16_adr%+16)
yt16&=DPEEK(tree16_adr%+18)
bt16&=DPEEK(tree16_adr%+20)
ht16&=DPEEK(tree16_adr%+22)
xt17&=DPEEK(tree17_adr%+16)
yt17&=DPEEK(tree17_adr%+18)
bt17&=DPEEK(tree17_adr%+20)
ht17&=DPEEK(tree17_adr%+22)
xt18&=DPEEK(tree18_adr%+16)
yt18&=DPEEK(tree18_adr%+18)
bt18&=DPEEK(tree18_adr%+20)
ht18&=DPEEK(tree18_adr%+22)
xt19&=DPEEK(tree19_adr%+16)
yt19&=DPEEK(tree19_adr%+18)
bt19&=DPEEK(tree19_adr%+20)
ht19&=DPEEK(tree19_adr%+22)
xt20&=DPEEK(tree20_adr%+16)
yt20&=DPEEK(tree20_adr%+18)
bt20&=DPEEK(tree20_adr%+20)
ht20&=DPEEK(tree20_adr%+22)
xt21&=DPEEK(tree21_adr%+16)
yt21&=DPEEK(tree21_adr%+18)
bt21&=DPEEK(tree21_adr%+20)
ht21&=DPEEK(tree21_adr%+22)
xt22&=DPEEK(tree22_adr%+16)
yt22&=DPEEK(tree22_adr%+18)
bt22&=DPEEK(tree22_adr%+20)
ht22&=DPEEK(tree22_adr%+22)
xt23&=DPEEK(tree23_adr%+16)
yt23&=DPEEK(tree23_adr%+18)
bt23&=DPEEK(tree23_adr%+20)
ht23&=DPEEK(tree23_adr%+22)
DPOKE tree24_adr%+16,DPEEK(tree24_adr%+16)+200
xt24&=DPEEK(tree24_adr%+16)
yt24&=DPEEK(tree24_adr%+18)
bt24&=DPEEK(tree24_adr%+20)
ht24&=DPEEK(tree24_adr%+22)
xt26&=DPEEK(tree26_adr%+16)
yt26&=DPEEK(tree26_adr%+18)
bt26&=DPEEK(tree26_adr%+20)
ht26&=DPEEK(tree26_adr%+22)
xt27&=DPEEK(tree27_adr%+16)
yt27&=DPEEK(tree27_adr%+18)
bt27&=DPEEK(tree27_adr%+20)
ht27&=DPEEK(tree27_adr%+22)
xt28&=DPEEK(tree28_adr%+16)
yt28&=DPEEK(tree28_adr%+18)
bt28&=DPEEK(tree28_adr%+20)
ht28&=DPEEK(tree28_adr%+22)
xt29&=DPEEK(tree29_adr%+16)
yt29&=DPEEK(tree29_adr%+18)
bt29&=DPEEK(tree29_adr%+20)
ht29&=DPEEK(tree29_adr%+22)
xt30&=DPEEK(tree30_adr%+16)
yt30&=DPEEK(tree30_adr%+18)
bt30&=DPEEK(tree30_adr%+20)
ht30&=DPEEK(tree30_adr%+22)
xt31&=DPEEK(tree31_adr%+16)
yt31&=DPEEK(tree31_adr%+18)
bt31&=DPEEK(tree31_adr%+20)
ht31&=DPEEK(tree31_adr%+22)
xt32&=DPEEK(tree32_adr%+16)
yt32&=DPEEK(tree32_adr%+18)
bt32&=DPEEK(tree32_adr%+20)
ht32&=DPEEK(tree32_adr%+22)
xt35&=DPEEK(tree35_adr%+16)
yt35&=DPEEK(tree35_adr%+18)
bt35&=DPEEK(tree35_adr%+20)
ht35&=DPEEK(tree35_adr%+22)
xt33&=DPEEK(tree33_adr%+16)
yt33&=DPEEK(tree33_adr%+18)
bt33&=DPEEK(tree33_adr%+20)
ht33&=DPEEK(tree33_adr%+22)
xt36&=DPEEK(tree36_adr%+16)
yt36&=DPEEK(tree36_adr%+18)
bt36&=DPEEK(tree36_adr%+20)
ht36&=DPEEK(tree36_adr%+22)
xt37&=DPEEK(tree37_adr%+16)
yt37&=DPEEK(tree37_adr%+18)
bt37&=DPEEK(tree37_adr%+20)
ht37&=DPEEK(tree37_adr%+22)
xt38&=DPEEK(tree38_adr%+16)
yt38&=DPEEK(tree38_adr%+18)
bt38&=DPEEK(tree38_adr%+20)
ht38&=DPEEK(tree38_adr%+22)
xt39&=DPEEK(tree39_adr%+16)
yt39&=DPEEK(tree39_adr%+18)
bt39&=DPEEK(tree39_adr%+20)
ht39&=DPEEK(tree39_adr%+22)
xt40&=DPEEK(tree40_adr%+16)
yt40&=DPEEK(tree40_adr%+18)
bt40&=DPEEK(tree40_adr%+20)
ht40&=DPEEK(tree40_adr%+22)
xt41&=DPEEK(tree41_adr%+16)
yt41&=DPEEK(tree41_adr%+18)
bt41&=DPEEK(tree41_adr%+20)
ht41&=DPEEK(tree41_adr%+22)
bt_output&=OB_W(tree40_adr%,pl100&)
CHAR{{OB_SPEC(tree6_adr%,t_hoehe&)}}=STR$(INT(zeichen_hoehe%/100))
CHAR{{OB_SPEC(tree7_adr%,zabs&)}}=STR$(INT(zeilen_abstand_prozent%))
CHAR{{OB_SPEC(tree9_adr%,z_char&)}}=CHR$(z_ascii_old%+32)
CHAR{{OB_SPEC(tree8_adr%,string_text&)}}=abc$
CHAR{{OB_SPEC(tree12_adr%,bstep&)}}=STR$(b_vari/100)
CHAR{{OB_SPEC(tree13_adr%,punkte&)}}=STR$(pointer%)
CHAR{{OB_SPEC(tree13_adr%,rest&)}}=STR$(p_max%-pointer%)
CHAR{{OB_SPEC(tree13_adr%,version&)}}=revision$
CHAR{{OB_SPEC(tree14_adr%,rx1&)}}=STR$(folie_x%)
CHAR{{OB_SPEC(tree14_adr%,ry1&)}}=STR$(folie_y%)
CHAR{{OB_SPEC(tree14_adr%,rx2&)}}=STR$(folie_x2%)
CHAR{{OB_SPEC(tree14_adr%,ry2&)}}=STR$(folie_y2%)
CHAR{{OB_SPEC(tree14_adr%,rx3&)}}=STR$(folie_x3%)
CHAR{{OB_SPEC(tree14_adr%,ry3&)}}=STR$(folie_y3%)
CHAR{{OB_SPEC(tree15_adr%,p_init1&)}}=p_init1$
CHAR{{OB_SPEC(tree15_adr%,p_init2&)}}=p_init2$
CHAR{{OB_SPEC(tree15_adr%,overcut&)}}=STR$(overcut|/10)
CHAR{{OB_SPEC(tree15_adr%,ma&)}}=ma$
CHAR{{OB_SPEC(tree15_adr%,da&)}}=da$
CHAR{{OB_SPEC(tree17_adr%,outl&)}}="3.0"
CHAR{{OB_SPEC(tree18_adr%,schraffd&)}}=STR$(schraff_dist/100)
CHAR{{OB_SPEC(tree18_adr%,schraffi&)}}=STR$(schraff_inc/100)
CHAR{{OB_SPEC(tree18_adr%,schraffw&)}}=STR$(schraff_winkel)
CHAR{{OB_SPEC(tree18_adr%,schrafix&)}}=STR$(schraff_fix_abst)
CHAR{{OB_SPEC(tree21_adr%,t_step&)}}=STR$(bit_count_max|)
CHAR{{OB_SPEC(tree21_adr%,t_gerade&)}}=STR$(geraden_fehler|)
CHAR{{OB_SPEC(tree21_adr%,t_schmutz&)}}=STR$(schmutz_filter%)
CHAR{{OB_SPEC(tree21_adr%,bschwelle&)}}=STR$(lange_gerade%/100)
CHAR{{OB_SPEC(tree21_adr%,knickwinkel&)}}=STR$(CINT(DEG(knick_winkel_max)))
CHAR{{OB_SPEC(tree21_adr%,bogen_max&)}}=STR$(CINT(DEG(bogen_max*2)))
CHAR{{OB_SPEC(tree21_adr%,abweichung_gerade&)}}=STR$(abweichung_gerade%/100)
CHAR{{OB_SPEC(tree22_adr%,scann_x&)}}="1664"
CHAR{{OB_SPEC(tree22_adr%,scann_y&)}}="800"
CHAR{{OB_SPEC(tree23_adr%,radius&)}}="10"
CHAR{{OB_SPEC(tree27_adr%,calamus_nr&)}}=STR$(calamus_nr%)
CHAR{{OB_SPEC(tree29_adr%,kostfak&)}}=STR$(kostfak)
CHAR{{OB_SPEC(tree31_adr%,anz_rot&)}}="3"
CHAR{{OB_SPEC(tree31_adr%,phi_rot&)}}="90"
OB_STATE(tree15_adr%,rs232&)=state_rs232&+16
OB_STATE(tree15_adr%,cent&)=state_rs232& XOR 1+16
OB_STATE(tree15_adr%,hp&)=state_hp&+16
OB_STATE(tree15_adr%,gp&)=state_hp& XOR 1+16
OB_STATE(tree26_adr%,absolut&)=absolut!+18
OB_STATE(tree26_adr%,relativ&)=absolut!+17
OB_STATE(tree26_adr%,polar&)=absolut!+17
IF gdu=1
OB_STATE(tree15_adr%,gdu01&)=17
ELSE
IF gdu=2.5
OB_STATE(tree15_adr%,gdu025&)=17
ELSE
IF gdu=5
OB_STATE(tree15_adr%,gdu05&)=17
ELSE
OB_STATE(tree15_adr%,gdu1&)=17
ENDIF
ENDIF
ENDIF
OB_STATE(tree1_adr%,lock&)=1
IF mimaki!
OB_STATE(tree15_adr%,gdu05&)=17
OB_STATE(tree15_adr%,gdu01&)=8
OB_STATE(tree15_adr%,gdu025&)=8
OB_STATE(tree15_adr%,gdu1&)=8
OB_STATE(tree15_adr%,rs232&)=17
OB_STATE(tree15_adr%,mgl&)=17
OB_STATE(tree15_adr%,cent&)=16
OB_STATE(tree15_adr%,hp&)=16
OB_STATE(tree15_adr%,gp&)=16
ELSE
OB_STATE(tree15_adr%,mgl&)=8
ENDIF
~WIND_GET(0,4) ! get desk size
BMOVE GINTOUT+2,tree0_adr%+16,8 ! set into rsc
BMOVE GINTOUT+2,tree1_adr%+16,8 ! set into rsc
BMOVE GINTOUT+2,tree2_adr%+16,8 ! set into rsc
BMOVE GINTOUT+2,tree3_adr%+16,8 ! set into rsc
BMOVE GINTOUT+2,tree4_adr%+16,8 ! set into rsc
BMOVE GINTOUT+2,tree5_adr%+16,8 ! set into rsc
BMOVE GINTOUT+2,tree9_adr%+16,8 ! set into rsc
BMOVE GINTOUT+2,tree25_adr%+16,8 ! set into rsc
BMOVE GINTOUT+2,tree34_adr%+16,8 ! set into rsc
wind_newdesk(tree0_adr%,0) ! install Datei Baum
IF default_font$<>""
datei$=ein_space$
IF EXIST(pfad_fnt$+"\"+default_font$)
load_font(pfad_fnt$+"\"+default_font$)
programm_font$=LEFT$(default_font$,LEN(default_font$)-4)
ELSE
make_new_font(-1)
ENDIF
ELSE
make_new_font(-1)
ENDIF
m$(0)=""
m$(1)=" CUTOUT"
m$(2)="--------------------"
m$(3)=CHR$(2)
m$(4)=CHR$(3)
m$(5)=CHR$(4)
m$(6)=CHR$(5)
m$(7)=CHR$(6)
m$(8)=CHR$(7)
m$(9)=CHR$(8)
m$(10)=""
m$(11)=pd_menu$
m$(12)=pd_datei$
m$(13)=pd_editieren$
m$(14)=pd_fenster$
m$(15)=pd_schnittpunkt$
m$(16)=pd_bogen$
m$(17)="----------------------"
m$(18)=pd_text$
m$(19)=pd_zeicheneditor$
m$(20)=m$(17)
m$(21)=pd_extra$
m$(22)=m$(17)
m$(23)=pd_quit$
m$(24)=""
m$(25)=pd_optionen$
m$(26)=pd_marker_anzeigen$
m$(27)=pd_tangenten_anzeigen$
m$(28)=pd_fangradius_klein$
m$(29)=pd_polygon_modus$
m$(30)=pd_schnittpunkt_genau$
m$(31)=pd_koordinaten$
m$(32)=pd_element_selektieren$
m$(33)=pd_polygon_selektieren$
m$(34)=pd_warnmeldungen$
m$(35)="---------------------------"
m$(36)=pd_skaliere_alles$
m$(37)=m$(35)
m$(38)=pd_punkte_nivellieren$
m$(39)=pd_tangente$
m$(40)=m$(35)
m$(41)=pd_plotflaeche$
m$(42)=pd_bezier_step_aendern$
m$(43)=pd_plotter_einstellung$
m$(44)=pd_kosten_faktor$
m$(45)=pd_pfad_sichern$
m$(46)=""
m$(47)=pd_figur$
m$(48)=pd_rechteck$
m$(49)=pd_n_eck$
m$(50)=pd_polygon_outline$
m$(51)=pd_aequidistante$
m$(52)=pd_frame$
m$(53)="---------------------------"
m$(54)=pd_polygone_ausrichten$
m$(55)=pd_polygone_zentrieren$
m$(56)=pd_polygone_vereinen$
m$(57)=pd_polygone_fuellen$
m$(58)=m$(53)
m$(59)=pd_einzelne_punkte_loeschen$
m$(60)=""
m$(61)=pd_linie$
m$(62)=pd_bezier_vektor$
m$(63)=pd_bezier_einfuegen$
m$(64)=pd_tausche_bezier_vektor$
m$(65)=m$(53)
m$(66)=pd_knacken$
m$(67)=pd_trimmen$
m$(68)=pd_lot$
m$(69)=pd_verlaengern$
m$(70)=pd_teilen$
m$(71)=pd_messen$
m$(72)=m$(53)
m$(73)=pd_schnittp_2er$
m$(74)=pd_schnittp_n$
m$(75)=""
m$(76)=pd_effekt$
m$(77)=pd_parameter_schraffur$
m$(78)=pd_polygon_schraffieren$
m$(79)=pd_alles_schraffieren$
m$(80)="------------------------"
m$(81)=pd_schatten$
m$(82)=pd_einpassen$
m$(83)=m$(80)
m$(84)=pd_kugel$
m$(85)=""
m$(86)=""
MENU m$()
IF fangklein!
MENU 28,1
ENDIF
IF polygonmode!
MENU 29,1
ENDIF
IF warn!
MENU 34,1
ENDIF
CLIP 0,0,639,399 OFFSET 0,0
DEFTEXT 1,0,0,6
COLOR 1
TEXT 400,7,"Zoom X:"
TEXT 400,15,"Zoom Y:"
TEXT 540,7,"X:"
TEXT 540,15,"Y:"
DEFTEXT 1,0,0,4
TEXT 624,7,"mm"
TEXT 624,15,"mm"
LINE 536,0,536,20
LINE 396,0,396,20
'
~FORM_DIAL(3,0,0,0,0,0,0,desk_breite&,desk_hoehe&) !redraw all
'
layer!=FALSE
zoom=1
x_layer%=folie_x%
y_layer%=folie_y%
x_layero%=x_layer%
y_layero%=y_layer%
res_x%=x_layer%
res_y%=y_layer%
x_offset&=0
y_offset&=0
res_x_old%=x_layer%
res_y_old%=y_layer%
x_offset_old&=0
y_offset_old&=0
pointer%=0
get_desktop
scrb_old&=scrb&
scrh_old&=scrh&
CLOSEW 1
programm$=noname$
INT{WINDTAB+2}=&X111111000000
INT{WINDTAB+4}=scrx&
INT{WINDTAB+6}=scry&
INT{WINDTAB+8}=scrb&
INT{WINDTAB+10}=scrh&
help_titel
OPENW 1
calc_slid
~WIND_GET(1,4,x_win&,y_win&,b_window&,h_window&)
neues_polygon!=TRUE
do_redraw
DEFMOUSE 3
p_zoom(zoom*100,zoom*100)
CHAR{{OB_SPEC(tree14_adr%,rx1&)}}=STR$(x_layer%)
CHAR{{OB_SPEC(tree14_adr%,ry1&)}}=STR$(y_layer%)
' test_vollbild
'
~OBJC_OFFSET(tree28_adr%,gtprewin&,gtxv&,gtyv&)
gtxv&=gtxv&-x_win&+1
gtyv&=gtyv&-y_win&+1
'
ON MENU MESSAGE GOSUB message
ON MENU BUTTON 1,1,1 GOSUB button
ON MENU GOSUB menu
ON MENU KEY GOSUB key
' ON ERROR GOSUB fehler
'
'
REPEAT
ON MENU
UNTIL end!
'
IF modified!
IF pointer%>0
ALERT 3,"| "+sichere$+daten$,1,ja_nein$,i%
IF i%=1
@save_vektor
ENDIF
ENDIF
ENDIF
'
' Bei fertigen Programmen hier nur QUIT
'
reset
~WIND_GET(0,10)
IF DPEEK(GINTOUT+2)
ALERT 1,"Accessories",1,"Close|Quit",i%
IF i%=2
QUIT
ENDIF
REPEAT
~WIND_GET(0,10)
UNTIL DPEEK(GINTOUT+2)=0
ENDIF
RESERVE ! XBIOS(2)-HIMEM+FRE(0)-16384
'
PROCEDURE fehler
ALERT 1,fehler$,1,leider$,i%
' RESUME NEXT
RETURN
'
'
PROCEDURE get_undo
LOCAL dp%
dp%=daten_ptr%
IF (pointer%*9+1<work_space%) AND (NOT layer_geladen!)
LONG{dp%}=pointer%
ADD dp%,4
undo!=TRUE
BMOVE VARPTR(punkte_x%(0)),dp%,pointer%*4
ADD dp%,pointer%*4
BMOVE VARPTR(punkte_y%(0)),dp%,pointer%*4
ADD dp%,pointer%*4
BMOVE VARPTR(punkte_def|(0)),dp%,pointer%
undo!=TRUE
ELSE
undo!=FALSE
ENDIF
RETURN
'
PROCEDURE put_undo
LOCAL dp%
IF undo!
dp%=daten_ptr%
pointer%=LONG{dp%}
ADD dp%,4
BMOVE dp%,VARPTR(punkte_x%(0)),pointer%*4
ADD dp%,pointer%*4
BMOVE dp%,VARPTR(punkte_y%(0)),pointer%*4
ADD dp%,pointer%*4
BMOVE dp%,VARPTR(punkte_def|(0)),pointer%
undo!=FALSE
do_redraw
ENDIF
RETURN
'
PROCEDURE output_drucker
LOCAL handle&,x_resi&,y_resi&,z_old
IF GDOS?
ERASE work%()
IF FRE(0)>250000
RESERVE -250000
handle&=V_OPNWK(21)
IF handle&<>0
V~H=handle&
x_resi&=INTOUT(0)
y_resi&=INTOUT(1)
~V_CLRWK()
z_old=zoom
zoom=4
redraw_ohne(0)
~V_UPDWK()
~V_CLSWK()
zoom=z_old
ELSE
ENDIF
RESERVE
ELSE
ENDIF
DIM work%((FRE(0)-80*1024)/4)
daten_ptr%=V:work%(0)
work_space%=DIM?(work%())*4
ELSE
ENDIF
RETURN
'
'
PROCEDURE scan_a1
ALERT 3,"| SCAN Hochformat: ",1,"A3|A2|A1",i%
SELECT i%
CASE 1
scann_x%=INT(17*400/8) !17
scann_y%=INT(12*400) !12
CASE 2
scann_x%=INT(25*400/8)
scann_y%=INT(17*400)
CASE 3
scann_x%=INT(34*400/8)
scann_y%=INT(25*400)
ENDSELECT
scan_graphtec(3,400,0,0,scann_x%,scann_y%)
RETURN
'
PROCEDURE scan_graphtec(device&,dpi&,x_0%,y_0%,bytes_x%,lines_y%)
LOCAL command_bytes&,bytes_to_transfer%,transfer_dir&
LOCAL y_offset%,block&,command_bytes&,bytes_to_transfer%
' IF FN test_unit_ready(device&)=0
set_graphtec_window(device&,dpi&,x_0%,y_0%,bytes_x%,lines_y%)
command_bytes&=10
block&=&HFFFF DIV bytes_x% DIV 3
bytes_to_transfer%=bytes_x%*block&*3
transfer_dir&=0 ! LESEN
command|(0)=&H28
command|(1)=0
command|(2)=0
command|(3)=0
command|(4)=0
command|(5)=0
command|(6)=0
command|(7)=0
command|(8)=0
command|(9)=0
WORD{V:command|(7)}=block&
'
anzahl&=lines_y% DIV block&
rest&=lines_y% MOD block&
y_offset%=0
FOR i%=1 TO anzahl&
$c+
fehler%=C:scsi%(device&,command_bytes&,bytes_to_transfer%,transfer_dir&,L:V:command|(0),L:daten_ptr%+y_offset%)
$c-
ADD y_offset%,block&*bytes_x%
NEXT i%
IF rest&<>0
bytes_to_transfer%=bytes_x%*rest&*3
WORD{V:command|(7)}=rest&
$c+
fehler%=C:scsi%(device&,command_bytes&,bytes_to_transfer%,transfer_dir&,L:V:command|(0),L:daten_ptr%+y_offset%)
$c-
ENDIF
' status&=AND(CARD(fehler%),&X11110)
' message&=CARD(SWAP(fehler%))
layer!=TRUE
layer_geladen!=TRUE
voll_bild!=TRUE
outlined!=FALSE
do_change_aufloesung(bytes_x%*8,lines_y%,1)
init_bit_blit
p_zoom(zoom*100,zoom*100)
do_redraw
' ENDIF
RETURN
'
PROCEDURE set_graphtec_window(device&,dpi&,x_0%,y_0%,bytes_x%,lines_y%)
LOCAL command_bytes&,bytes_to_transfer%,transfer_dir&
command_bytes&=10
bytes_to_transfer%=53
transfer_dir&=1 ! LESEN (1=SCHREIBEN)
command|(0)=&H24
command|(1)=0
command|(2)=0
command|(3)=0
command|(4)=0
command|(5)=0
command|(6)=0
command|(7)=0
command|(8)=bytes_to_transfer%
command|(9)=0
FOR i%=0 TO 6
buffer|(i%)=0
NEXT i%
FOR i%=38 TO 47
buffer|(i%)=0
NEXT i%
buffer|(7)=45 ! Window Descriptor Block Length
buffer|(8)=0 ! Window ID
buffer|(9)=0 ! reserved
WORD{V:buffer|(10)}=dpi& ! X resolution
WORD{V:buffer|(12)}=dpi& ! Y resolution
LONG{V:buffer|(14)}=x_0%*24 ! X Upper Left
LONG{V:buffer|(18)}=y_0%*3 ! Y Upper Left
LONG{V:buffer|(22)}=bytes_x%*24 ! Width
LONG{V:buffer|(26)}=lines_y%*3 ! Length
buffer|(30)=0 ! reserved
buffer|(31)=0 ! Kontrast
buffer|(32)=0 ! reserved
buffer|(33)=0 ! Image composition
buffer|(34)=1 ! Bits per Pixel
buffer|(35)=0 ! reserved
buffer|(36)=0 ! reserved
buffer|(37)=0 ! Reverse Image
buffer|(48)=2 ! Cell length
buffer|(49)=5 ! Function Code
buffer|(50)=1 ! Fine Line
buffer|(51)=2 ! Cell length
buffer|(52)=6 ! Function Code
buffer|(53)=1 ! Scann Speed
$c+
fehler%=C:scsi%(device&,command_bytes&,bytes_to_transfer%,transfer_dir&,L:V:command|(0),L:V:buffer|(0))
$c-
RETURN
'
FUNCTION test_unit_ready(device&)
command_bytes&=6
bytes_to_transfer%=1
transfer_dir&=0 ! LESEN (1=SCHREIBEN)
command|(0)=0
command|(1)=0
command|(2)=0
command|(3)=0
command|(4)=bytes_to_transfer%
command|(5)=0
'
$c+
fehler%=C:scsi%(device&,command_bytes&,L:bytes_to_transfer%,transfer_dir&,L:V:command|(0),L:V:buffer|(0))
$c-
status&=AND(CARD(fehler%),&X11110)
message&=CARD(SWAP(fehler%))
'
RETURN status&
ENDFUNC
'
'
PROCEDURE gt_info(i$)
CHAR{{OB_SPEC(tree28_adr%,gtstate&)}}=i$
~OBJC_DRAW(tree28_adr%,gtstate&,8,xt28&,yt28&,bt28&,ht28&)
RETURN
'
PROCEDURE dpi_change(prex0&,prey0&,prex0_min&,prey0_min&)
CHAR{{OB_SPEC(tree28_adr%,gtdpi&)}}=STR$(gtdpiv&)
~OBJC_DRAW(tree28_adr%,gtdpi&,8,xt28&,yt28&,bt28&,ht28&)
CHAR{{OB_SPEC(tree28_adr%,gtb&)}}=STR$(AND(INT(gtbv&/25.4*gtdpiv&),&HFFF8))
CHAR{{OB_SPEC(tree28_adr%,gth&)}}=STR$(AND(INT(gthv&/25.4*gtdpiv&),&HFFF8))
~OBJC_DRAW(tree28_adr%,gtb&,8,xt28&,yt28&,bt28&,ht28&)
~OBJC_DRAW(tree28_adr%,gth&,8,xt28&,yt28&,bt28&,ht28&)
CHAR{{OB_SPEC(tree28_adr%,gtx&)}}=STR$(AND(INT((prex0&-prex0_min&)/25.4*gtdpiv&),&HFFF8))
CHAR{{OB_SPEC(tree28_adr%,gty&)}}=STR$(AND(INT((prey0&-prey0_min&)/25.4*gtdpiv&),&HFFF8))
~OBJC_DRAW(tree28_adr%,gtx&,8,xt28&,yt28&,bt28&,ht28&)
~OBJC_DRAW(tree28_adr%,gty&,8,xt28&,yt28&,bt28&,ht28&)
RETURN
'
PROCEDURE gt_6000
LOCAL prex0&,prey0&,prex0_min&,prey0_min&,x_changed&,y_changed&
LOCAL prex&,prey&,gthalbton&
DEFMOUSE 0
SETMOUSE xt28&+240,yt28&+310,0
CLIP 0,0,desk_breite&,desk_hoehe& OFFSET x_win&,y_win&
~OBJC_OFFSET(tree28_adr%,gtprewin&,prex&,prey&)
gthalbton&=1
prex0&=prex&-x_win&+1
prey0&=prey&-y_win&+1
prex0_min&=prex0&
prey0_min&=prey0&
prex0_max&=prex0&+217
prey0_max&=prey0&+297
prex0&=gtxv&
prey0&=gtyv&
'
CHAR{{OB_SPEC(tree28_adr%,gtx&)}}=STR$(AND(INT((prex0&-prex0_min&)/25.4*gtdpiv&),&HFFF8))
CHAR{{OB_SPEC(tree28_adr%,gty&)}}=STR$(AND(INT((prey0&-prey0_min&)/25.4*gtdpiv&),&HFFF8))
CHAR{{OB_SPEC(tree28_adr%,gtb&)}}=STR$(AND(INT(gtbv&/25.4*gtdpiv&),&HFFF8))
CHAR{{OB_SPEC(tree28_adr%,gth&)}}=STR$(AND(INT(gthv&/25.4*gtdpiv&),&HFFF8))
CHAR{{OB_SPEC(tree28_adr%,gtdpi&)}}=STR$(gtdpiv&)
CHAR{{OB_SPEC(tree28_adr%,gtstate&)}}=waehle$
GET xt28&-4,yt28&-4,xt28&+bt28&+4,yt28&+ht28&+4,rette$
~OBJC_DRAW(tree28_adr%,0,8,xt28&,yt28&,bt28&,ht28&)
smfdb%(0)=V:prebuf$
smfdb%(1)=208
smfdb%(2)=292
smfdb%(3)=smfdb%(1)/16
smfdb%(5)=1
dmfdb%(0)=XBIOS(3)
dmfdb%(1)=desk_breite&
dmfdb%(2)=desk_hoehe&
dmfdb%(3)=dmfdb%(1)/16
dmfdb%(5)=1
p%(0)=0
p%(1)=0
p%(2)=207
p%(3)=291
p%(4)=prex&+1
p%(5)=prey&+1
p%(6)=p%(4)+207
p%(7)=p%(5)+291
p%(8)=3
BITBLT smfdb%(),dmfdb%(),p%()
DEFFILL 1,1,1
GRAPHMODE 3
BOX prex0&,prey0&,prex0&+gtbv&,prey0&+gthv&
PBOX prex0&+gtbv&-8,prey0&+gthv&-8,prex0&+gtbv&,prey0&+gthv&
REPEAT
DO
~FORM_DO(tree28_adr%,0)
IF INT{GINTOUT}>0 AND INT{GINTOUT}<100
exit_button&=DPEEK(GINTOUT)
OB_STATE(tree28_adr%,exit_button&)=0
IF exit_button&<>gtprewin&
~OBJC_DRAW(tree28_adr%,exit_button&,8,xt28&,yt28&,bt28&,ht28&)
ENDIF
ENDIF
SELECT exit_button&
CASE gtdpimin&
IF gtdpiv&>100
IF gtdpiv&=480
gtdpiv&=400
ELSE
IF gtdpiv&=600
gtdpiv&=480
ELSE
SUB gtdpiv&,100
ENDIF
ENDIF
dpi_change(prex0&,prey0&,prex0_min&,prey0_min&)
ENDIF
CASE gtdpiplu&
IF gtdpiv&<600
IF gtdpiv&=400
gtdpiv&=480
ELSE
IF gtdpiv&=480
gtdpiv&=600
ELSE
ADD gtdpiv&,100
ENDIF
ENDIF
dpi_change(prex0&,prey0&,prex0_min&,prey0_min&)
ENDIF
CASE gtprewin&
MOUSE x_mouse%,y_mouse%,taste|
IF x_mouse%>prex0&+gtbv&-8 AND x_mouse%<prex0&+gtbv& AND y_mouse%>prey0&+gthv&-8 AND y_mouse%<prey0&+gthv&
DEFMOUSE 3
REPEAT
MOUSE x_mouse%,y_mouse%,taste|
IF x_mouse%<>x_mouse_old% OR y_mouse%<>y_mouse_old%
BOX prex0&,prey0&,prex0&+gtbv&,prey0&+gthv&
PBOX prex0&+gtbv&-8,prey0&+gthv&-8,prex0&+gtbv&,prey0&+gthv&
IF x_mouse%-prex0_min&<217 AND x_mouse%-prex0&>16
gtbv&=x_mouse%-prex0&
i%=AND(INT(gtbv&/25.4*gtdpiv&),&HFFF0)
gtbv&=CINT(i%*25.4/gtdpiv&)
ENDIF
IF y_mouse%-prey0_min&<298 AND y_mouse%-prey0&>16
gthv&=y_mouse%-prey0&
ENDIF
BOX prex0&,prey0&,prex0&+gtbv&,prey0&+gthv&
PBOX prex0&+gtbv&-8,prey0&+gthv&-8,prex0&+gtbv&,prey0&+gthv&
SHOWM
x_mouse_old%=x_mouse%
y_mouse_old%=y_mouse%
CHAR{{OB_SPEC(tree28_adr%,gtb&)}}=STR$(AND(INT(gtbv&/25.4*gtdpiv&),&HFFF0))
CHAR{{OB_SPEC(tree28_adr%,gth&)}}=STR$(INT(gthv&/25.4*gtdpiv&))
~OBJC_DRAW(tree28_adr%,gtb&,8,xt28&,yt28&,bt28&,ht28&)
~OBJC_DRAW(tree28_adr%,gth&,8,xt28&,yt28&,bt28&,ht28&)
ENDIF
UNTIL taste|=0
DEFMOUSE 0
ELSE
IF x_mouse%>prex0& AND x_mouse%<prex0&+gtbv& AND y_mouse%>prey0& AND y_mouse%<prey0&+gthv&
x_mouse_old%=x_mouse%
y_mouse_old%=y_mouse%
DEFMOUSE 3
REPEAT
MOUSE x_mouse%,y_mouse%,taste|
IF x_mouse%<>x_mouse_old% OR y_mouse%<>y_mouse_old%
x_changed&=x_mouse%-x_mouse_old%
y_changed&=y_mouse%-y_mouse_old%
BOX prex0&,prey0&,prex0&+gtbv&,prey0&+gthv&
PBOX prex0&+gtbv&-8,prey0&+gthv&-8,prex0&+gtbv&,prey0&+gthv&
IF prex0&+x_changed&>=prex0_min& AND prex0&+x_changed&+gtbv&<prex0_max&
ADD prex0&,x_changed&
ENDIF
IF prey0&+y_changed&>=prey0_min& AND prey0&+y_changed&+gthv&<prey0_max&
ADD prey0&,y_changed&
ENDIF
BOX prex0&,prey0&,prex0&+gtbv&,prey0&+gthv&
PBOX prex0&+gtbv&-8,prey0&+gthv&-8,prex0&+gtbv&,prey0&+gthv&
SHOWM
x_mouse_old%=x_mouse%
y_mouse_old%=y_mouse%
CHAR{{OB_SPEC(tree28_adr%,gtx&)}}=STR$(AND(INT((prex0&-prex0_min&)/25.4*gtdpiv&),&HFFF8))
CHAR{{OB_SPEC(tree28_adr%,gty&)}}=STR$(AND(INT((prey0&-prey0_min&)/25.4*gtdpiv&),&HFFF8))
~OBJC_DRAW(tree28_adr%,gtx&,8,xt28&,yt28&,bt28&,ht28&)
~OBJC_DRAW(tree28_adr%,gty&,8,xt28&,yt28&,bt28&,ht28&)
ENDIF
UNTIL taste|=0
DEFMOUSE 0
ENDIF
ENDIF
CASE gtpresca&
gt_info(scannen$+pre_view$)
HIDEM
gt6000%=VARPTR(gt6000$)
$C+
VOID C:gt6000%(1,50,3,3,gthalbton&,0,0,26,292,L:V:prebuf$,L:V:prebuf$+8000)
$C-
OUT (2),13
trigger_0
DEFMOUSE 3
SHOWM
BOX prex0&,prey0&,prex0&+gtbv&,prey0&+gthv&
PBOX prex0&+gtbv&-8,prey0&+gthv&-8,prex0&+gtbv&,prey0&+gthv&
smfdb%(0)=V:prebuf$
BITBLT smfdb%(),dmfdb%(),p%()
BOX prex0&,prey0&,prex0&+gtbv&,prey0&+gthv&
PBOX prex0&+gtbv&-8,prey0&+gthv&-8,prex0&+gtbv&,prey0&+gthv&
gt_info(waehle$)
ENDSELECT
EXIT IF exit_button&=gtcancel&
EXIT IF exit_button&=gtscan&
LOOP
IF exit_button&=gtcancel&
PUT xt28&-4,yt28&-4,rette$
ok!=TRUE
ENDIF
IF exit_button&=gtscan&
IF OB_STATE(tree28_adr%,gthart&)=1
gthalbton&=0
ELSE
IF OB_STATE(tree28_adr%,gtweich&)=1
gthalbton&=16
ELSE
IF OB_STATE(tree28_adr%,gtraster&)=1
gthalbton&=32
ELSE
gthalbton&=1
ENDIF
ENDIF
ENDIF
IF OB_STATE(tree28_adr%,gtrot&)=1
gtfarbev&=0
ELSE
IF OB_STATE(tree28_adr%,gtgruen&)=1
gtfarbev&=1
ELSE
IF OB_STATE(tree28_adr%,gtblau&)=1
gtfarbev&=2
ELSE
gtfarbev&=3
ENDIF
ENDIF
ENDIF
IF OB_STATE(tree28_adr%,k0&)=1
gtkontrav&=0
ELSE
IF OB_STATE(tree28_adr%,k1&)=1
gtkontrav&=1
ELSE
IF OB_STATE(tree28_adr%,k2&)=1
gtkontrav&=2
ELSE
IF OB_STATE(tree28_adr%,k3&)=1
gtkontrav&=3
ELSE
IF OB_STATE(tree28_adr%,k4&)=1
gtkontrav&=4
ELSE
IF OB_STATE(tree28_adr%,k5&)=1
gtkontrav&=5
ELSE
gtkontrav&=6
ENDIF
ENDIF
ENDIF
ENDIF
ENDIF
ENDIF
gt_info(scannen$+bereich$)
gtxorig&=CINT(AND(INT((prex0&+2-prex0_min&)/25.4*gtdpiv&),&HFFF8)/8)
gtyorig&=CINT((prey0&+2-prey0_min&)/25.4*gtdpiv&)
gtxbytes&=CINT(AND(INT(gtbv&/25.4*gtdpiv&),&HFFF0)/8)
gtyzeilen&=CINT(gthv&/25.4*gtdpiv&)
IF gtxbytes&*(gtyzeilen&+1)<work_space%
HIDEM
gt6000%=VARPTR(gt6000$)
$C+
i%=C:gt6000%(0,gtdpiv&,gtfarbev&,gtkontrav&,gthalbton&,gtxorig&,gtyorig&,gtxbytes&,gtyzeilen&,L:daten_ptr%,L:daten_ptr%+work_space%)
$C-
OUT (2),13
trigger_0
DEFMOUSE 3
SHOWM
ELSE
i%=-1
ENDIF
IF i%>=0
gt_info(waehle$)
PUT xt28&-4,yt28&-4,rette$
layer!=TRUE
layer_geladen!=TRUE
voll_bild!=TRUE
outlined!=FALSE
do_change_aufloesung(AND(INT(gtbv&/25.4*gtdpiv&),&HFFF0),INT(gthv&/25.4*gtdpiv&),1)
init_bit_blit
p_zoom(zoom*100,zoom*100)
do_redraw
ok!=TRUE
ELSE
FOR i%=1 TO 5
gt_info(fehler$)
PAUSE 15
gt_info(" ")
PAUSE 15
NEXT i%
gt_info(waehle$)
ok!=FALSE
ENDIF
ENDIF
UNTIL ok!
gtxv&=prex0&
gtyv&=prey0&
~WIND_GET(1,4)
clip(x_window&,y_window&,b_window&,h_window&,INT{GINTOUT+2},INT{GINTOUT+4})
set_clip_offset
GRAPHMODE 1
DEFFILL 0,0
DEFMOUSE 3
init_bit_blit
RETURN
'
PROCEDURE set_clip_offset
INT{WINDTAB+64}=INT{WINDTAB+64}-x_offset&
INT{WINDTAB+66}=INT{WINDTAB+66}-y_offset&
RETURN
'
PROCEDURE helpo(help$)
TITLEW #1,ein_space$+help$+ein_space$
set_clip_offset
RETURN
'
PROCEDURE help(help$)
TITLEW #1,ein_space$+waehle$+help$+ein_space$
set_clip_offset
RETURN
'
PROCEDURE help_titel
TITLEW #1,ein_space$+pfad_vek$+"\"+programm$+".VEK "
set_clip_offset
DEFMOUSE 3
DEFLINE 1
COLOR 1
GRAPHMODE 1
p_xy_info("X:","Y:",0)
SHOWM
trigger_0
zeit%=TIMER
RETURN
'
PROCEDURE polygon_fill
REPEAT
DEFMOUSE 0
GET xt20&-4,yt20&-4,xt20&+bt20&+4,yt20&+ht20&+4,rette$
SETMOUSE xt20&+bt20&/2,yt20&+160,0
~OBJC_DRAW(tree20_adr%,0,8,xt20&,yt20&,bt20&,ht20&)
~FORM_DO(tree20_adr%,0)
exit_button&=DPEEK(GINTOUT)
OB_STATE(tree20_adr%,exit_button&)=0
PUT xt20&-4,yt20&-4,rette$
IF OB_STATE(tree20_adr%,fill1&)=1
DEFFILL 1,2,1
ELSE IF OB_STATE(tree20_adr%,fill2&)=1
DEFFILL 1,2,2
ELSE IF OB_STATE(tree20_adr%,fill3&)=1
DEFFILL 1,2,3
ELSE IF OB_STATE(tree20_adr%,fill4&)=1
DEFFILL 1,2,4
ELSE IF OB_STATE(tree20_adr%,fill5&)=1
DEFFILL 1,2,5
ELSE IF OB_STATE(tree20_adr%,fill6&)=1
DEFFILL 1,2,6
ELSE IF OB_STATE(tree20_adr%,fill7&)=1
DEFFILL 1,2,8
ENDIF
DEFMOUSE mdaten$
help(help_polygon$)
IF exit_button&<>fillcancel&
REPEAT
trigger_0
wait_taste
IF taste|<>2
FILL x_mouse%,y_mouse%
ENDIF
UNTIL taste|=2
ENDIF
UNTIL exit_button&=fillcancel&
~FRE(0)
DEFFILL 1,1
help_titel
RETURN
'
' *****************************************************************************
' * TANGENTE NIVELLIEREN *
' * *
' * VERÄNDERT VAR: Punkte_X%(), Punkte_Y%() *
' * *
' *****************************************************************************
'
PROCEDURE do_niv_tangente(found_quelle%,von%,bis%,dreh_x%,dreh_y%)
LOCAL phi,strecke
dx=SUB(dreh_x%,punkte_x%(found%))
dy=SUB(dreh_y%,punkte_y%(found%))
strecke=SQR(dx*dx+dy*dy)
get_phi(dreh_x%,dreh_y%,punkte_x%(found_quelle%),punkte_y%(found_quelle%),phi)
redraw_von_bis(von%,bis%,0)
punkte_x%(found%)=CINT(dreh_x%-strecke*COS(phi))
punkte_y%(found%)=CINT(dreh_y%-strecke*SIN(phi))
redraw_von_bis(von%,bis%,1)
RETURN
'
PROCEDURE tangente_nivellieren
LOCAL found_quelle%,quelle_def|
LOCAL von%,bis%,f%,dreh_x%,dreh_y%
IF pointer%>1
show_cursor_fang
REPEAT
trigger_0
GRAPHMODE 1
REPEAT
wait_taste
EXIT IF taste|=2
find(x_mouse%*100/zoom,y_mouse%*100/zoom)
quelle_def|=punkte_def|(found%)
UNTIL (quelle_def|>da| AND quelle_def|<b3|)
IF taste|<>2
found_quelle%=found%
IF quelle_def|=b1|
IF punkte_def|(found_quelle%-1)=b3|
found%=found_quelle%-2
von%=found_quelle%-4
bis%=von%+3
dreh_x%=punkte_x%(found_quelle%-1)
dreh_y%=punkte_y%(found_quelle%-1)
do_niv_tangente(found_quelle%,von%,bis%,dreh_x%,dreh_y%)
ELSE
IF punkte_def|(found_quelle%-1)=da|
found%=found_quelle%
found_quelle%=found%-2
von%=found%-1
bis%=von%+3
dreh_x%=punkte_x%(found%-1)
dreh_y%=punkte_y%(found%-1)
do_niv_tangente(found_quelle%,von%,bis%,dreh_x%,dreh_y%)
ELSE
IF punkte_def|(found_quelle%-1)=ma|
found%=found_quelle%
REPEAT
INC found%
UNTIL punkte_def|(found%)=ma|
DEC found%
IF punkte_def|(found%)=b3|
DEC found%
von%=found%-2
bis%=von%+3
dreh_x%=punkte_x%(found_quelle%-1)
dreh_y%=punkte_y%(found_quelle%-1)
do_niv_tangente(found_quelle%,von%,bis%,dreh_x%,dreh_y%)
ELSE
IF punkte_def|(found%)=da|
f%=found_quelle%
found_quelle%=found%-1
found%=f%
von%=found%-1
bis%=von%+3
dreh_x%=punkte_x%(found_quelle%+1)
dreh_y%=punkte_y%(found_quelle%+1)
do_niv_tangente(found_quelle%,von%,bis%,dreh_x%,dreh_y%)
ENDIF
ENDIF
ENDIF
ENDIF
ENDIF
ELSE
IF quelle_def|=b2|
IF punkte_def|(found_quelle%+2)=b1|
found%=found_quelle%+2
von%=found_quelle%+1
bis%=von%+3
dreh_x%=punkte_x%(found_quelle%+1)
dreh_y%=punkte_y%(found_quelle%+1)
do_niv_tangente(found_quelle%,von%,bis%,dreh_x%,dreh_y%)
ELSE
IF punkte_def|(found_quelle%+2)=da|
found%=found_quelle%
found_quelle%=found%+2
von%=found%-2
bis%=von%+3
dreh_x%=punkte_x%(found%+1)
dreh_y%=punkte_y%(found%+1)
do_niv_tangente(found_quelle%,von%,bis%,dreh_x%,dreh_y%)
ELSE
IF punkte_def|(found_quelle%+2)=ma|
found%=found_quelle%
REPEAT
DEC found%
UNTIL punkte_def|(found%)=ma|
INC found%
IF punkte_def|(found%)=b1|
von%=found%-1
bis%=von%+3
dreh_x%=punkte_x%(found_quelle%+1)
dreh_y%=punkte_y%(found_quelle%+1)
do_niv_tangente(found_quelle%,von%,bis%,dreh_x%,dreh_y%)
ELSE
IF punkte_def|(found%)=da|
f%=found_quelle%
found_quelle%=found%
found%=f%
von%=found%-2
bis%=von%+3
dreh_x%=punkte_x%(found_quelle%-1)
dreh_y%=punkte_y%(found_quelle%-1)
do_niv_tangente(found_quelle%,von%,bis%,dreh_x%,dreh_y%)
ENDIF
ENDIF
ENDIF
ENDIF
ENDIF
ENDIF
ENDIF
ENDIF
UNTIL taste|=2
DEFMOUSE 3
ENDIF
RETURN
'
' *****************************************************************************
' * ASCII Editor *
' * *
' * *
' * ' ******************************************************************************
' * *
' * CUTOUT *
' * *
' * 27.02.1992 *
' * *
' ******************************************************************************
'
'
$B+
$I-
INLINE scsi%,933
DIM buffer|(512*2)
DIM command|(12)
' VAR:
' apl_id&=APPL_INIT()
magic%=14031952
'
' serien_nummer$="REGIST00"
' serien_nummer_vergleich$="REGIST11"
serien_nummer$=MKD$(101)
serien_nummer_vergleich$=MKD$(101 XOR magic%)
'
fang_schnittpunkt|=4
buffer%=0
buffer_max%=0
poly_len%=0
bits%=0
punkt_eintrag&=0
x_start&=0
y_start&=0
edi_max&=0
m=0
m_neu=0
bit_count|=0
pixel!=FALSE
'
regist_nr%=0
revision$="1.59"
zeit%=TIMER
calamus_nr%=0
ortho|=45
ortho=RAD(ortho|)
ortho2=ortho/2
x_win&=0 ! Window X pos aktuell
y_win&=0 ! Window Y pos aktuell
x_window&=0 ! Window X pos aktuell
y_window&=0 ! Window Y pos aktuell
b_window&=0 ! Window Breite aktuell
h_window&=0 ! Window Höhe aktuell
~WIND_GET(0,4,scrx&,scry&,scrb&,scrh&) ! maximaler Desktop
wmx%=scrb&-62
wmy%=scrh&-57+scry&
desk_breite&=scrb&
desk_hoehe&=scrh&+scry&
gross_bildschirm!=FALSE
IF desk_breite&>640 OR desk_hoehe&>400
gross_bildschirm!=TRUE
ENDIF
ADD scrx&,42 ! Position Window X+Menuleiste
SUB scrb&,42 ! Breite Window
scrb_old&=scrb&
scrh_old&=scrh&
res_x%=0 ! Auflösung x in mm
res_y%=0 ! Auflösung y in mm
res_x_old%=0
res_y_old%=0
x_layer%=0
y_layer%=0
x_layero%=0
y_layero%=0
x_offset&=0 ! Nullpunkt x im Fenster
y_offset&=0 ! Nullpunkt y im Fenster
x_offset_old&=0
y_offset_old&=0
x_mouse%=0
y_mouse%=0
x_mouse_old%=0
y_mouse_old%=0
x_mouse_0%=0
y_mouse_0%=0
objectbox_x0%=0
objectbox_y0%=0
objectbox_x1%=0
objectbox_y1%=0
grid%=10 ! raster mm
schraff_dist=201
schraff_inc=0
schraff_fix_abst=0
schraff_winkel=0
schraff_start%=0
schraff_y_min%=0
bit_count_max|=6
geraden_fehler|=1
lange_gerade%=4000
schmutz_filter%=20
knick_winkel_max=RAD(140)
bogen_max=PI/2/2
abweichung_gerade%=0.5*100
last_poly_s%=-1
last_poly_e%=-1
taste|=0
zoom=1
zoom_old=1
zoom_100=1
pointer%=0 ! Zeiger auf Punkteliste
found%=0 ! gefundener Punkt bei SNAP
found_t%=0 ! gefundener Kurvenparameter
schnittpunkt_genau%=16 ! Zerlegung Bezier in Teile
anz_schnittpunkte%=0 ! Anzahl Schnittpunkte
b_vari=100
i%=0 ! allgemeiner Schleifenzähler
ii%=0
iii%=0
d0%=0
dx%=0
dy%=0
dx=0
dy=0
schnitt_laenge=0
kostfak=1
gkosten=0
px0%=0
py0%=0
px1%=0
py1%=0
px2%=0
py2%=0
px3%=0
py3%=0
m_square_breite&=&H3000
m_square_hoehe&=&H3000
kerning_256|=m_square_breite& DIV 256
len_pair_daten&=0
z_hoehe_def%=16384 ! Höhe des definierten Zsatzes
z_breite_def%=16384 ! Breite "
zeichen_hoehe%=3000 ! gewünschte Höhe in 1/100 mm
versal_def%=0 ! Versal Höhe in 1/100 mm
z_ascii_scale=zeichen_hoehe%/z_hoehe_def% ! Scaling
z_ascii_scale_old=z_ascii_scale ! save Scaling
global_kerning%=1280 ! globales Kerning
zeilen_abstand_prozent%=125 ! relativer Zeilen Abstand
zeilen_abstand%=zeichen_hoehe%*zeilen_abstand_prozent%/100-zeichen_hoehe%
z_cursor_x_spalte%=0 ! Start String
z_cursor_x%=0 ! ASCII Zeichen Cursor X
z_cursor_y%=0 ! ASCII Zeichen Cursor y
z_cursor_x_old%=0 ! letztes Zeichen Cursor X
z_cursor_y_old%=0 ! letztes Zeichen Cursor y
z_ascii_old%=0 ! letztes Zeichen ASCII+32
z_satz_pointer%=0 ! Pointer auf Zeichensatz
state_rs232&=0 ! Centronics aktiv
state_hp&=0 ! HPGL aktiv
folie_x%=1188 ! Folien Grö₧e
folie_y%=840
plotter_x_min%=0
plotter_y_min%=0
gdu=0 ! 100*Plottereinheit
sel_start%=0
sel_end%=0
gtxv&=0
gtyv&=0
gtbv&=216
gthv&=297
gtdpiv&=300
gtfarbev&=3
gtkontrav&=3
exit_button&=0
cursor_x&=0
cursor_y&=0
ofn_ver|=0
overcut|=0
geschlossen%=0
'
phi_x_3d=0
phi_y_3d=0
a2_3d=0
'
daten_ptr%=0
work_space%=0
'
' CONST:
'
IF FRE(0)>4000000
p_max%=99999
ELSE
p_max%=60000
ENDIF
ma|=0
da|=1
b1|=2
b2|=3
b3|=4
ein_drittel=1/3
fmin=2.225073858507E-307
fmin1=0.005
max1=0.995
pimal2=PI*2
pihalbe=PI/2
pidrittel=PI/3
fang_rad%=8*100 ! FANGRADIUS
p_at%=XBIOS(3)+76 ! PRINT AT FÜR X,Y
p_at_zoom%=p_at%-12 ! PRINT AT FÜR ZOOM
x_bytes%=(scrb&+42)/8 ! BYTES IN X RICHTUNG DESKTOP
'
' CONST: Menuleiste
'
tree00&=0
tree0_adr%=0
datei&=3
eintrag&=4
mfenster&=10
mtext&=5
mzedi&=6
spezial&=7
all_clear&=8
bbogen&=9
mschnitt&=11
'
tree01&=1
tree1_adr%=0
back_main&=3
fwd_main&=4
gerade&=5
kurve&=6
schliess&=7
verrunde&=8
loeschen&=9
lock&=10
snap&=11
bild&=12
zircel&=13
bezier4&=14
schere&=15
' fenster&=15
'
tree02&=2
tree2_adr%=0
back_datei&=3
fwd_datei&=4
l_vek&=5
l_merge&=6
r_macro&=7
r_cvg&=8
l_img&=9
l_pic&=10
ordner&=11
s_vek&=12
s_plt&=13
a_plotter&=14
'
tree03&=3
tree3_adr%=0
back_fenster&=3
fwd_fenster&=4
fmove&=5
blitz&=6
fcopy&=7
fzoom&=8
fzoomp&=9
fdreh&=10
fspiegel&=11
fkursiv&=12
dreh3d&=13
drehxp&=14
drehxm&=15
drehym&=16
drehyp&=17
floesch&=18
fzoom1&=19
'
tree04&=4
tree4_adr%=0
back_spezial&=3
gtepson&=4
handy&=5
kontour&=6
filter&=7
trace&=8
smooth&=9
simag&=10
'
tree05&=5
tree5_adr%=0
back_text&=3
fwd_text&=4
z_edit&=5
z_editor&=6
z_string&=7
z_t_hoehe&=8
z_t_abstand&=9
z_g_kerning&=10
z_read_ascii&=11
l_font&=12
s_font&=14
c_font&=13
'
tree06&=6
tree6_adr%=0
t_hoehe&=1
'
tree07&=7
tree7_adr%=0
zabs&=1
'
tree08&=8 ! String Text
tree8_adr%=0
string_text&=1
breite&=3
string_breite&=4
versal&=5
string_versal&=6
pfad&=7
do_kerning&=8
string_kreis&=9
string_kreis_von&=10
string_kreis_bis&=11
fontname&=13
c_text&=14
icon_pair&=15
icon_trep&=16
'
tree09&=9 ! Zeichen Editor
tree9_adr%=0
back_editor&=3
m_matrix&=4
z_matrix&=5
move_matrix&=6
kerning_links&=7
kerning_rechts&=8
kerning_auto&=9
z_get&=10
z_muell&=11
z_up&=13
z_down&=14
z_char&=15
'
tree10&=10
tree10_adr%=0
b_kerning&=2
g_kerning&=3
'
tree11&=11 ! Optimier
tree11_adr%=0
del_ma&=4
del_ge&=6
del_el&=8
'
tree12&=12
tree12_adr%=0
bstep&=1
'
tree13&=13 ! Info
tree13_adr%=0
vernr&=7
version&=4
firma&=4
strasse&=7
stadt&=10
punkte&=15
rest&=17
'
tree14&=14 ! Auflösung
tree14_adr%=0
rx1&=8
ry1&=10
rx2&=12
ry2&=13
rx3&=16
ry3&=17
get_pf&=19
r1&=4
r2&=5
r3&=6
'
tree15&=15 ! Plotter INIT
tree15_adr%=0
p_init1&=3
p_init2&=4
gdu01&=9
gdu025&=10
gdu05&=11
gdu1&=12
overcut&=16
cent&=18
rs232&=20
hp&=23
gp&=24
mgl&=25
ma&=29
da&=30
'
tree16&=16 ! Pfade und Parameter
tree16_adr%=0
pv&=5
pp&=7
pfi&=9
pg&=11
pf&=13
df&=15
p1&=17
p2&=19
schnitt&=21
gdu&=23
foliex&=25
foliey&=27
warn&=29
cancel&=31
'
tree17&=17
tree17_adr%=0
outl&=1
outl_anz&=2
'
tree18&=18
tree18_adr%=0
schraffd&=1
schraffi&=2
schrafix&=3
schraffw&=4
schraffa&=7
schrafff&=8
'
tree19&=19
tree19_adr%=0
necka&=1
neckp&=2
'
tree20&=20 ! Füll
tree20_adr%=0
fill1&=3
fill2&=5
fill3&=7
fill4&=9
fill5&=11
fill6&=13
fill7&=15
fillcancel&=17
'
tree21&=21 ! Trace
tree21_adr%=0
t_step&=7
t_gerade&=8
t_schmutz&=9
bschwelle&=21
knickwinkel&=22
bogen_max&=23
abweichung_gerade&=24
nur_gerade&=13
trace_cancel&=14
gerade_bezier&=30
'
tree22&=22
tree22_adr%=0
scann_x&=1
scann_y&=2
'
tree23&=23
tree23_adr%=0
radius&=1
'
tree24&=24
tree24_adr%=0
grau&=6
stark&=7
selgrau0&=4
selgrau&=5
sellinie&=8
alle&=9
auswahl&=10
'
tree25&=25 ! Bogen
tree25_adr%=0
backboge&=3
vkreis&=4
kreis3&=5
kreisbog&=6
bogen3&=7
bogen2&=8
ellipse&=9
elbogen&=10
eckrund&=11
'
tree26&=26 ! Koordinaten
tree26_adr%=0
absolut&=2
relativ&=3
polar&=4
'
tree27&=27 ! Calamus Versions Nr.
tree27_adr%=0
calamus_nr&=1
'
tree28&=28 ! GT 6000
tree28_adr%=0
gtscan&=47
gtx&=38
gty&=44
gtb&=42
gth&=43
gtcancel&=46
gtpresca&=45
gtdpi&=35
gtdpimin&=33
gtdpiplu&=34
gtprewin&=1
gtstate&=5
gtkeiner&=9
gtraster&=10
gtweich&=11
gthart&=12
gtkeine&=15
gtrot&=18
gtgruen&=17
gtblau&=16
k0&=22
k1&=23
k2&=24
k3&=25
k4&=26
k5&=27
k6&=28
'
tree29&=29 ! Kosten
tree29_adr%=0
kostfak&=1
sl&=2
gkosten&=4
'
tree30&=30 ! Select Filter
tree30_adr%=0
abs_filter&=1
'
tree31&=31 ! Select Fenster
tree31_adr%=0
ohnecopy&=1
mitcopy&=6
anz_rot&=3
phi_rot&=4
numohne&=5
ausricht_vector&=7
'
tree32&=32 ! Select Spiegel
tree32_adr%=0
anbox&=2
anachse&=1
'
tree33&=33
tree33_adr%=0
teil&=1
'
tree34&=34 ! Schnittpunkt
tree34_adr%=0
backschn&=3
fwdschn&=4
trimm&=5
knack&=6
lot&=7
teilen&=8
lang&=9
schnitt2&=10
schnittn&=11
delseg&=12
delel&=13
schmelz&=14
'
tree35&=35 ! Select Copy
tree35_adr%=0
copysing&=1
copymul&=2
cx&=4
cy&=5
canz&=6
cdist&=7
'
tree36&=36 ! Ausrichten
tree36_adr%=0
a_olinks&=1
a_oben&=2
a_orechts&=3
a_links&=4
a_mitte&=5
a_rechts&=6
a_ulinks&=7
a_unten&=8
a_urechts&=9
'
tree37&=37 ! Scalieren
tree37_adr%=0
scale_interactiv&=1
scale_numerisch&=2
scale_breite&=4
scale_hoehe&=5
'
tree38&=38 ! Ordner
tree38_adr%=0
ordnert&=1
ordnerok&=2
ordnerca&=3
'
tree39&=39 ! Kerning
tree39_adr%=0
kerning_box&=1
kerning_minus&=3
kerning_plus&=4
kerning_last&=2
kerning_next&=5
kerning_exit&=6
kerning_minus2&=9
kerning_plus2&=10
kerning_last2&=8
kerning_next2&=11
kerning_clear&=7
kerning_info&=13
kerning_pair&=15
'
tree40&=40 ! Plotter OUTPUT
tree40_adr%=0
pl100&=3
plschieber&=4
plschere&=7
plschereauf&=5
plscherezu&=6
plschere&=7
'
tree41&=41 ! Select Neigen
tree41_adr%=0
neige_grad&=2
neige_vertical&=3
neige_horizontal&=4
neige_interaktiv&=5
'
' FLAG:
'
undo!=FALSE
geschlossen!=FALSE
ok!=FALSE ! allgemein
layer_geladen!=FALSE ! ist Layer geladen
layer!=FALSE ! soll Layer gezeigt werden
window_fulled!=TRUE ! ist Fenster schon gro₧
voll_bild!=FALSE ! ist Fenster komplett auf Crt
eintragen!=FALSE ! ist eintragen aktiv
bogen!=FALSE
mtext!=FALSE
meditor!=FALSE
datei!=FALSE
fenster!=FALSE
schnittpunktm!=FALSE
loeschen!=FALSE ! ist loeschen aktiv
neues_polygon!=TRUE ! erster Punkt im Polygon
found!=FALSE ! gefunden bei Fangradius
marker!=FALSE ! sollen Marker gezeigt werden
marker_select!=FALSE ! soll Marker selectiert
modified!=FALSE ! wurde Vektorbild geändert
font_geladen!=FALSE ! ist ein Font geladen
outlined!=FALSE ! wurde Bitmap schon outlined
auto_schraff!=TRUE
schraff_fix_abst!=FALSE
einpassen!=FALSE
tangente!=FALSE
tangenten_lock!=TRUE
warn!=FALSE
gp_gl!=FALSE ! HPGL oder GPGL
tasten_rep!=FALSE
absolut!=TRUE
relativ!=FALSE
polar!=FALSE
absolut_old!=FALSE
polar_old!=FALSE
fangklein!=FALSE ! Fangradius gro₧
fadenkreuz!=FALSE
polygonmode!=TRUE ! Polygonmodus
ortho!=FALSE
grid!=FALSE
scrolled!=FALSE
move!=FALSE
drei_d!=FALSE
status_wechsel!=FALSE
grid_wechsel!=FALSE
swap!=FALSE
'
' ARRAY:
'
DIM smfdb%(8),dmfdb%(8),p%(8)
DIM z_smfdb%(8),z_dmfdb%(8),z_p%(8),q_dmfdb%(8)
DIM punkte_x%(p_max%),punkte_y%(p_max%),punkte_def|(p_max%),buffer%(p_max%/2)
DIM x_meta%(127),y_meta%(127),punkte_def1|(32)
ARRAYFILL punkte_def1|(),1
DIM bezier_x&(33),bezier_y&(33)
DIM m$(87)
DIM mk%(60,2)
DIM m_square%(5)
DIM z_editor%(32)
DIM z_ascii%(224),z_kerning&(224*16),z_daten&(224*280),z_pair&(224),z_pair|(224),z_pair_daten|(2000)
DIM sx1%(9),sy1%(9),sx2%(9),sy2%(9),sp1(9),sp2(9)
DIM zeilen_buffer$(60)
rette$=SPACE$(32000)
pfad$=SPACE$(80)
kerning_string$=SPACE$(60)
pfad_pic$=SPACE$(80)
pfad_img$=SPACE$(80)
pfad_vek$=SPACE$(80)
pfad_vek_root$=SPACE$(80)
pfad_cvg$=SPACE$(80)
pfad_fnt$=SPACE$(80)
pfad_cfn$=SPACE$(80)
default_font$=SPACE$(10)
programm$=SPACE$(10)
programm_font$=SPACE$(10)
test_datei$=SPACE$(10)
object$=SPACE$(80)
p_init1$=SPACE$(40)
p_init2$=SPACE$(40)
abc$="CutOut Test"
ma$="M"
da$="D"
cutout_font$="CUTOUTOFN"
calamus_font_grafik$=MKI$(159)+MKI$(15)+MKI$(1)+SPACE$(320)
ok$="OK"
ein_space$=" "
x_y$="X|Y"
erster$="1. "
zweiter$="2. "
help_on$="ON "
help_off$="OFF"
vek$="VEK"
cvg$="CVG"
img$="IMG"
plt$="PLT"
calamus$="CALAMUS"
cutout$="CutOut"
' ****************************************************************************
OPEN "I",#1,"SYS\LANGUAGE.DRV"
LINE INPUT #1,pd_menu$
LINE INPUT #1,pd_datei$
LINE INPUT #1,pd_editieren$
LINE INPUT #1,pd_fenster$
LINE INPUT #1,pd_schnittpunkt$
LINE INPUT #1,pd_bogen$
LINE INPUT #1,pd_text$
LINE INPUT #1,pd_zeicheneditor$
LINE INPUT #1,pd_extra$
LINE INPUT #1,pd_quit$
'
LINE INPUT #1,pd_optionen$
LINE INPUT #1,pd_marker_anzeigen$
LINE INPUT #1,pd_tangenten_anzeigen$
LINE INPUT #1,pd_fangradius_klein$
LINE INPUT #1,pd_polygon_modus$
LINE INPUT #1,pd_schnittpunkt_genau$
LINE INPUT #1,pd_koordinaten$
LINE INPUT #1,pd_element_selektieren$
LINE INPUT #1,pd_polygon_selektieren$
LINE INPUT #1,pd_warnmeldungen$
LINE INPUT #1,pd_skaliere_alles$
LINE INPUT #1,pd_punkte_nivellieren$
LINE INPUT #1,pd_tangente$
LINE INPUT #1,pd_plotflaeche$
LINE INPUT #1,pd_bezier_step_aendern$
LINE INPUT #1,pd_plotter_einstellung$
LINE INPUT #1,pd_kosten_faktor$
LINE INPUT #1,pd_pfad_sichern$
'
LINE INPUT #1,pd_figur$
LINE INPUT #1,pd_rechteck$
LINE INPUT #1,pd_n_eck$
LINE INPUT #1,pd_polygon_outline$
LINE INPUT #1,pd_aequidistante$
LINE INPUT #1,pd_frame$
LINE INPUT #1,pd_polygone_ausrichten$
LINE INPUT #1,pd_polygone_zentrieren$
LINE INPUT #1,pd_polygone_vereinen$
LINE INPUT #1,pd_polygone_fuellen$
LINE INPUT #1,pd_einzelne_punkte_loeschen$
'
LINE INPUT #1,pd_linie$
LINE INPUT #1,pd_bezier_vektor$
LINE INPUT #1,pd_bezier_einfuegen$
LINE INPUT #1,pd_tausche_bezier_vektor$
LINE INPUT #1,pd_knacken$
LINE INPUT #1,pd_trimmen$
LINE INPUT #1,pd_lot$
LINE INPUT #1,pd_verlaengern$
LINE INPUT #1,pd_teilen$
LINE INPUT #1,pd_messen$
LINE INPUT #1,pd_schnittp_2er$
LINE INPUT #1,pd_schnittp_n$
'
LINE INPUT #1,pd_effekt$
LINE INPUT #1,pd_parameter_schraffur$
LINE INPUT #1,pd_polygon_schraffieren$
LINE INPUT #1,pd_alles_schraffieren$
LINE INPUT #1,pd_schatten$
LINE INPUT #1,pd_einpassen$
LINE INPUT #1,pd_kugel$
'
LINE INPUT #1,lade$
LINE INPUT #1,sichere$
LINE INPUT #1,fuege_ein$
LINE INPUT #1,vektor$
LINE INPUT #1,macro$
LINE INPUT #1,daten$
LINE INPUT #1,zeichensatz$
LINE INPUT #1,kein$
LINE INPUT #1,keine$
LINE INPUT #1,ja_nein$
LINE INPUT #1,waehle$
LINE INPUT #1,fehler$
LINE INPUT #1,scannen$
LINE INPUT #1,pre_view$
LINE INPUT #1,ascii_importieren$
LINE INPUT #1,ascii_exportieren$
LINE INPUT #1,schriftblock$
LINE INPUT #1,radius_zu$
LINE INPUT #1,winkel_zu$
LINE INPUT #1,leider$
LINE INPUT #1,winkel_einstellen$
LINE INPUT #1,spiegelachse$
LINE INPUT #1,lupe_mal$
LINE INPUT #1,fensterbereich$
LINE INPUT #1,drehzentrum$
LINE INPUT #1,ordner_exist$
LINE INPUT #1,kein_leer$
LINE INPUT #1,suche_schnittpunkte$
LINE INPUT #1,gleiches_polygon$
LINE INPUT #1,bezugs$
LINE INPUT #1,zentriere$
LINE INPUT #1,huellkurve$
LINE INPUT #1,huellkurve1$
LINE INPUT #1,berechne$
LINE INPUT #1,rechte_taste$
LINE INPUT #1,endpunkt$
LINE INPUT #1,lot_an$
LINE INPUT #1,noname$
LINE INPUT #1,symbol$
LINE INPUT #1,orginal_fenster$
LINE INPUT #1,dmc_font$
LINE INPUT #1,bild_datei_zu$
LINE INPUT #1,stad_laden$
LINE INPUT #1,plotter_ist_off$
LINE INPUT #1,plot_datei$
LINE INPUT #1,kein_treiber$
LINE INPUT #1,schnittstelle_auf$
LINE INPUT #1,polygone_vereinen$
LINE INPUT #1,loesche_einzelne$
LINE INPUT #1,quelle$
LINE INPUT #1,ziel$
LINE INPUT #1,nivelliere$
LINE INPUT #1,alle_daten_l$
LINE INPUT #1,ganzer_zeichensatz$
LINE INPUT #1,font_daten_loeschen$
LINE INPUT #1,zeichen_matrix$
LINE INPUT #1,datei_existiert$
LINE INPUT #1,datei_ueberschreiben$
LINE INPUT #1,glaetten_mit$
LINE INPUT #1,gerade_bezier$
LINE INPUT #1,glaetten$
LINE INPUT #1,bereich$
LINE INPUT #1,path$
LINE INPUT #1,help_mittelpunkt$
LINE INPUT #1,help_radius$
LINE INPUT #1,help_position$
LINE INPUT #1,help_startwinkel$
LINE INPUT #1,help_endwinkel$
LINE INPUT #1,help_polygon$
LINE INPUT #1,help_punkt$
LINE INPUT #1,help_linie$
LINE INPUT #1,help_element$
LINE INPUT #1,help_verrund$
LINE INPUT #1,help_loesche$
LINE INPUT #1,help_trenn$
LINE INPUT #1,help_move$
LINE INPUT #1,help_sel$
LINE INPUT #1,help_move_window$
LINE INPUT #1,help_rahmen$
LINE INPUT #1,help_edit$
LINE INPUT #1,help_bezier$
LINE INPUT #1,help_status$
LINE INPUT #1,help_ortho$
LINE INPUT #1,help_grid$
LINE INPUT #1,help_free$
LINE INPUT #1,help_snap$
LINE INPUT #1,help_editor$
LINE INPUT #1,help_pfad$
CLOSE #1
' ****************************************************************************
integer%=VARPTR(punkte_x%(1))-VARPTR(punkte_x%(0)) ! Länge in Bytes Integer
'
z_editor%(0)=2048 ! Top Line Y
z_editor%(1)=3072 ! Ascent Line Y
z_editor%(2)=6144 ! Half Line Y
z_editor%(3)=11264 ! Base Line Y
z_editor%(4)=13952 ! Descent Line Y
z_editor%(5)=14336 ! Bottom Line Y
'
z_editor%(6)=0 ! Matrix links X
z_editor%(7)=16384 ! Matrix rechts X
z_editor%(8)=1280 ! Kerning links X
z_editor%(9)=1280 ! Kerning links X
z_editor%(10)=1280 ! Kerning links X
z_editor%(11)=1280 ! Kerning links X
z_editor%(12)=1280 ! Kerning links X
z_editor%(13)=1280 ! Kerning links X
z_editor%(14)=1280 ! Kerning links X
z_editor%(15)=1280 ! Kerning links X
z_editor%(16)=15104 ! Kerning rechts X
z_editor%(17)=15104 ! Kerning rechts X
z_editor%(18)=15104 ! Kerning rechts X
z_editor%(19)=15104 ! Kerning rechts X
z_editor%(20)=15104 ! Kerning rechts X
z_editor%(21)=15104 ! Kerning rechts X
z_editor%(22)=15104 ! Kerning rechts X
z_editor%(23)=15104 ! Kerning rechts X
z_editor%(24)=z_editor%(0) ! Kerning Y
z_editor%(25)=(z_editor%(5)-z_editor%(0))/8 ! Kerning Y
z_editor%(26)=z_editor%(24)+z_editor%(25) ! Kerning Y
z_editor%(27)=z_editor%(26)+z_editor%(25) ! Kerning Y
z_editor%(28)=z_editor%(27)+z_editor%(25) ! Kerning Y
z_editor%(29)=z_editor%(28)+z_editor%(25) ! Kerning Y
z_editor%(30)=z_editor%(29)+z_editor%(25) ! Kerning Y
z_editor%(31)=z_editor%(30)+z_editor%(25) ! Kerning Y
z_editor%(32)=0 ! Matrix oben Y
'
' ******************************************************************************
' * *
' * MENU INITIALISIERUNG *
' * *
' ******************************************************************************
'
BMOVE V:serien_nummer$,V:serien_nummer,8
BMOVE V:serien_nummer_vergleich$,V:serien_nummer_vergleich,8
regist_nr%=serien_nummer_vergleich
IF serien_nummer<>(serien_nummer_vergleich XOR magic%)
PRINT "SORRY HACKER"
PAUSE 300
SYSTEM
ENDIF
INLINE zasm_ptr%,4136
INLINE pack_img%,958
INLINE calc_bezier%,1050
INLINE p_num%,360
INLINE find_line%,356
INLINE kontour%,216
INLINE staddec%,184
INLINE imgdec%,228
INLINE findexcept%,52
INLINE findpointexcept%,70
mfang$=MKI$(7)+MKI$(7)+MKI$(1)+MKI$(0)+MKI$(1)
mfang$=mfang$+MKI$(&X1111111111111110)
mfang$=mfang$+MKI$(&X1111111111111110)
mfang$=mfang$+MKI$(&X1100001110000110)
mfang$=mfang$+MKI$(&X1100001110000110)
mfang$=mfang$+MKI$(&X1100001110000110)
mfang$=mfang$+MKI$(&X1100001110000110)
mfang$=mfang$+MKI$(&X1111110001111110)
mfang$=mfang$+MKI$(&X1111110001111110)
mfang$=mfang$+MKI$(&X1111110001111110)
mfang$=mfang$+MKI$(&X1100001110000110)
mfang$=mfang$+MKI$(&X1100001110000110)
mfang$=mfang$+MKI$(&X1100001110000110)
mfang$=mfang$+MKI$(&X1100001110000110)
mfang$=mfang$+MKI$(&X1111111111111110)
mfang$=mfang$+MKI$(&X1111111111111110)
mfang$=mfang$+MKI$(&X0)
'
mfang$=mfang$+MKI$(&X1111111111111110)
mfang$=mfang$+MKI$(&X1000000100000010)
mfang$=mfang$+MKI$(&X1000000100000010)
mfang$=mfang$+MKI$(&X1000000100000010)
mfang$=mfang$+MKI$(&X1000000100000010)
mfang$=mfang$+MKI$(&X1000000100000010)
mfang$=mfang$+MKI$(&X1000000000000010)
mfang$=mfang$+MKI$(&X1111110001111110)
mfang$=mfang$+MKI$(&X1000000000000010)
mfang$=mfang$+MKI$(&X1000000100000010)
mfang$=mfang$+MKI$(&X1000000100000010)
mfang$=mfang$+MKI$(&X1000000100000010)
mfang$=mfang$+MKI$(&X1000000100000010)
mfang$=mfang$+MKI$(&X1000000100000010)
mfang$=mfang$+MKI$(&X1111111111111110)
mfang$=mfang$+MKI$(&X0)
'
mfang_klein$=MKI$(7)+MKI$(7)+MKI$(1)+MKI$(0)+MKI$(1)
mfang_klein$=mfang_klein$+MKI$(&X0)
mfang_klein$=mfang_klein$+MKI$(&X0)
mfang_klein$=mfang_klein$+MKI$(&X11111111111000)
mfang_klein$=mfang_klein$+MKI$(&X11111111111000)
mfang_klein$=mfang_klein$+MKI$(&X11001110011000)
mfang_klein$=mfang_klein$+MKI$(&X11001110011000)
mfang_klein$=mfang_klein$+MKI$(&X11110001111000)
mfang_klein$=mfang_klein$+MKI$(&X11110001111000)
mfang_klein$=mfang_klein$+MKI$(&X11110001111000)
mfang_klein$=mfang_klein$+MKI$(&X11001110011000)
mfang_klein$=mfang_klein$+MKI$(&X11001110011000)
mfang_klein$=mfang_klein$+MKI$(&X11111111111000)
mfang_klein$=mfang_klein$+MKI$(&X11111111111000)
mfang_klein$=mfang_klein$+MKI$(&X0)
mfang_klein$=mfang_klein$+MKI$(&X0)
mfang_klein$=mfang_klein$+MKI$(&X0)
'
mfang_klein$=mfang_klein$+MKI$(&X0)
mfang_klein$=mfang_klein$+MKI$(&X0)
mfang_klein$=mfang_klein$+MKI$(&X0)
mfang_klein$=mfang_klein$+MKI$(&X1111111110000)
mfang_klein$=mfang_klein$+MKI$(&X1000100010000)
mfang_klein$=mfang_klein$+MKI$(&X1000100010000)
mfang_klein$=mfang_klein$+MKI$(&X1000000010000)
mfang_klein$=mfang_klein$+MKI$(&X1110001110000)
mfang_klein$=mfang_klein$+MKI$(&X1000000010000)
mfang_klein$=mfang_klein$+MKI$(&X1000100010000)
mfang_klein$=mfang_klein$+MKI$(&X1000100010000)
mfang_klein$=mfang_klein$+MKI$(&X1111111110000)
mfang_klein$=mfang_klein$+MKI$(&X0)
mfang_klein$=mfang_klein$+MKI$(&X0)
mfang_klein$=mfang_klein$+MKI$(&X0)
mfang_klein$=mfang_klein$+MKI$(&X0)
'
mdaten$=MKI$(7)+MKI$(7)+MKI$(1)+MKI$(0)+MKI$(1)
mdaten$=mdaten$+MKI$(&X1110000000)
mdaten$=mdaten$+MKI$(&X1110000000)
mdaten$=mdaten$+MKI$(&X1110000000)
mdaten$=mdaten$+MKI$(&X1110000000)
mdaten$=mdaten$+MKI$(&X1110000000)
mdaten$=mdaten$+MKI$(&X1110000000)
mdaten$=mdaten$+MKI$(&X1111110001111110)
mdaten$=mdaten$+MKI$(&X1111110001111110)
mdaten$=mdaten$+MKI$(&X1111110001111110)
mdaten$=mdaten$+MKI$(&X1110000000)
mdaten$=mdaten$+MKI$(&X1110000000)
mdaten$=mdaten$+MKI$(&X1110000000)
mdaten$=mdaten$+MKI$(&X1110000000)
mdaten$=mdaten$+MKI$(&X1110000000)
mdaten$=mdaten$+MKI$(&X1110000000)
mdaten$=mdaten$+MKI$(&X0)
'
mdaten$=mdaten$+MKI$(&X100000000)
mdaten$=mdaten$+MKI$(&X100000000)
mdaten$=mdaten$+MKI$(&X100000000)
mdaten$=mdaten$+MKI$(&X100000000)
mdaten$=mdaten$+MKI$(&X100000000)
mdaten$=mdaten$+MKI$(&X100000000)
mdaten$=mdaten$+MKI$(&X0)
mdaten$=mdaten$+MKI$(&X1111110001111110)
mdaten$=mdaten$+MKI$(&X0)
mdaten$=mdaten$+MKI$(&X100000000)
mdaten$=mdaten$+MKI$(&X100000000)
mdaten$=mdaten$+MKI$(&X100000000)
mdaten$=mdaten$+MKI$(&X100000000)
mdaten$=mdaten$+MKI$(&X100000000)
mdaten$=mdaten$+MKI$(&X100000000)
mdaten$=mdaten$+MKI$(&X0)
'
schwer$=MKI$(7)+MKI$(7)+MKI$(-1)+MKI$(0)+MKI$(1)
schwer$=schwer$+MKI$(&X0) !
schwer$=schwer$+MKI$(&X0)
schwer$=schwer$+MKI$(&X11111000000) !
schwer$=schwer$+MKI$(&X11111000000)
schwer$=schwer$+MKI$(&X1100111110000) !
schwer$=schwer$+MKI$(&X1100111110000)
schwer$=schwer$+MKI$(&X10000111111000) !
schwer$=schwer$+MKI$(&X10000111111000)
schwer$=schwer$+MKI$(&X10000111111000) !
schwer$=schwer$+MKI$(&X10000111111000)
schwer$=schwer$+MKI$(&X100000111111100) !
schwer$=schwer$+MKI$(&X100000111111100)
schwer$=schwer$+MKI$(&X100000111111100) !
schwer$=schwer$+MKI$(&X100000111111100)
schwer$=schwer$+MKI$(&X111111011111100) !!
schwer$=schwer$+MKI$(&X111111011111100)
schwer$=schwer$+MKI$(&X111111100000100) !
schwer$=schwer$+MKI$(&X111111100000100)
schwer$=schwer$+MKI$(&X111111100000100) !
schwer$=schwer$+MKI$(&X111111100000100)
schwer$=schwer$+MKI$(&X11111100001000) !
schwer$=schwer$+MKI$(&X11111100001000)
schwer$=schwer$+MKI$(&X11111100001000) !
schwer$=schwer$+MKI$(&X11111100001000)
schwer$=schwer$+MKI$(&X1111100110000) !
schwer$=schwer$+MKI$(&X1111100110000)
schwer$=schwer$+MKI$(&X11111000000) !
schwer$=schwer$+MKI$(&X11111000000)
schwer$=schwer$+MKI$(&X0) !
schwer$=schwer$+MKI$(&X0)
schwer$=schwer$+MKI$(&X0) !
schwer$=schwer$+MKI$(&X0)
pfad_read
reset
RESERVE -64*1024
DIM work%((FRE(0)-80*1024)/4)
daten_ptr%=V:work%(0)
work_space%=DIM?(work%())*4
KEYPAD 8
~RSRC_LOAD("SYS\CUTOUT.RSC")
~RSRC_GADDR(0,tree00&,tree0_adr%)
~RSRC_GADDR(0,tree01&,tree1_adr%)
~RSRC_GADDR(0,tree02&,tree2_adr%)
~RSRC_GADDR(0,tree03&,tree3_adr%)
~RSRC_GADDR(0,tree04&,tree4_adr%)
~RSRC_GADDR(0,tree05&,tree5_adr%)
~RSRC_GADDR(0,tree06&,tree6_adr%)
~RSRC_GADDR(0,tree07&,tree7_adr%)
~RSRC_GADDR(0,tree08&,tree8_adr%)
~RSRC_GADDR(0,tree09&,tree9_adr%)
~RSRC_GADDR(0,tree10&,tree10_adr%)
~RSRC_GADDR(0,tree11&,tree11_adr%)
~RSRC_GADDR(0,tree12&,tree12_adr%)
~RSRC_GADDR(0,tree13&,tree13_adr%)
~RSRC_GADDR(0,tree14&,tree14_adr%)
~RSRC_GADDR(0,tree15&,tree15_adr%)
~RSRC_GADDR(0,tree16&,tree16_adr%)
~RSRC_GADDR(0,tree17&,tree17_adr%)
~RSRC_GADDR(0,tree18&,tree18_adr%)
~RSRC_GADDR(0,tree19&,tree19_adr%)
~RSRC_GADDR(0,tree20&,tree20_adr%)
~RSRC_GADDR(0,tree21&,tree21_adr%)
~RSRC_GADDR(0,tree22&,tree22_adr%)
~RSRC_GADDR(0,tree23&,tree23_adr%)
~RSRC_GADDR(0,tree24&,tree24_adr%)
~RSRC_GADDR(0,tree25&,tree25_adr%)
~RSRC_GADDR(0,tree26&,tree26_adr%)
~RSRC_GADDR(0,tree27&,tree27_adr%)
~RSRC_GADDR(0,tree28&,tree28_adr%)
~RSRC_GADDR(0,tree29&,tree29_adr%)
~RSRC_GADDR(0,tree30&,tree30_adr%)
~RSRC_GADDR(0,tree31&,tree31_adr%)
~RSRC_GADDR(0,tree32&,tree32_adr%)
~RSRC_GADDR(0,tree33&,tree33_adr%)
~RSRC_GADDR(0,tree34&,tree34_adr%)
~RSRC_GADDR(0,tree35&,tree35_adr%)
~RSRC_GADDR(0,tree36&,tree36_adr%)
~RSRC_GADDR(0,tree37&,tree37_adr%)
~RSRC_GADDR(0,tree38&,tree38_adr%)
~RSRC_GADDR(0,tree39&,tree39_adr%)
~RSRC_GADDR(0,tree40&,tree40_adr%)
~RSRC_GADDR(0,tree41&,tree41_adr%)
~FORM_CENTER(tree6_adr%)
~FORM_CENTER(tree7_adr%)
~FORM_CENTER(tree8_adr%)
~FORM_CENTER(tree10_adr%)
~FORM_CENTER(tree11_adr%)
~FORM_CENTER(tree12_adr%)
~FORM_CENTER(tree13_adr%)
~FORM_CENTER(tree14_adr%)
~FORM_CENTER(tree15_adr%)
~FORM_CENTER(tree16_adr%)
~FORM_CENTER(tree17_adr%)
~FORM_CENTER(tree18_adr%)
~FORM_CENTER(tree19_adr%)
~FORM_CENTER(tree20_adr%)
~FORM_CENTER(tree21_adr%)
~FORM_CENTER(tree22_adr%)
~FORM_CENTER(tree23_adr%)
~FORM_CENTER(tree24_adr%)
~FORM_CENTER(tree26_adr%)
~FORM_CENTER(tree27_adr%)
~FORM_CENTER(tree28_adr%)
~FORM_CENTER(tree29_adr%)
~FORM_CENTER(tree30_adr%)
~FORM_CENTER(tree31_adr%)
~FORM_CENTER(tree32_adr%)
~FORM_CENTER(tree33_adr%)
~FORM_CENTER(tree35_adr%)
~FORM_CENTER(tree36_adr%)
~FORM_CENTER(tree37_adr%)
~FORM_CENTER(tree38_adr%)
~FORM_CENTER(tree39_adr%)
~FORM_CENTER(tree40_adr%)
~FORM_CENTER(tree41_adr%)
xt6&=DPEEK(tree6_adr%+16)
yt6&=DPEEK(tree6_adr%+18)
bt6&=DPEEK(tree6_adr%+20)
ht6&=DPEEK(tree6_adr%+22)
xt7&=DPEEK(tree7_adr%+16)
yt7&=DPEEK(tree7_adr%+18)
bt7&=DPEEK(tree7_adr%+20)
ht7&=DPEEK(tree7_adr%+22)
xt8&=DPEEK(tree8_adr%+16)
yt8&=DPEEK(tree8_adr%+18)
bt8&=DPEEK(tree8_adr%+20)
ht8&=DPEEK(tree8_adr%+22)
xt10&=DPEEK(tree10_adr%+16)
yt10&=DPEEK(tree10_adr%+18)
bt10&=DPEEK(tree10_adr%+20)
ht10&=DPEEK(tree10_adr%+22)
xt11&=DPEEK(tree11_adr%+16)
yt11&=DPEEK(tree11_adr%+18)
bt11&=DPEEK(tree11_adr%+20)
ht11&=DPEEK(tree11_adr%+22)
xt12&=DPEEK(tree12_adr%+16)
yt12&=DPEEK(tree12_adr%+18)
bt12&=DPEEK(tree12_adr%+20)
ht12&=DPEEK(tree12_adr%+22)
xt13&=DPEEK(tree13_adr%+16)
yt13&=DPEEK(tree13_adr%+18)
bt13&=DPEEK(tree13_adr%+20)
ht13&=DPEEK(tree13_adr%+22)
xt14&=DPEEK(tree14_adr%+16)
yt14&=DPEEK(tree14_adr%+18)
bt14&=DPEEK(tree14_adr%+20)
ht14&=DPEEK(tree14_adr%+22)
xt15&=DPEEK(tree15_adr%+16)
yt15&=DPEEK(tree15_adr%+18)
bt15&=DPEEK(tree15_adr%+20)
ht15&=DPEEK(tree15_adr%+22)
xt16&=DPEEK(tree16_adr%+16)
yt16&=DPEEK(tree16_adr%+18)
bt16&=DPEEK(tree16_adr%+20)
ht16&=DPEEK(tree16_adr%+22)
xt17&=DPEEK(tree17_adr%+16)
yt17&=DPEEK(tree17_adr%+18)
bt17&=DPEEK(tree17_adr%+20)
ht17&=DPEEK(tree17_adr%+22)
xt18&=DPEEK(tree18_adr%+16)
yt18&=DPEEK(tree18_adr%+18)
bt18&=DPEEK(tree18_adr%+20)
ht18&=DPEEK(tree18_adr%+22)
xt19&=DPEEK(tree19_adr%+16)
yt19&=DPEEK(tree19_adr%+18)
bt19&=DPEEK(tree19_adr%+20)
ht19&=DPEEK(tree19_adr%+22)
xt20&=DPEEK(tree20_adr%+16)
yt20&=DPEEK(tree20_adr%+18)
bt20&=DPEEK(tree20_adr%+20)
ht20&=DPEEK(tree20_adr%+22)
xt21&=DPEEK(tree21_adr%+16)
yt21&=DPEEK(tree21_adr%+18)
bt21&=DPEEK(tree21_adr%+20)
ht21&=DPEEK(tree21_adr%+22)
xt22&=DPEEK(tree22_adr%+16)
yt22&=DPEEK(tree22_adr%+18)
bt22&=DPEEK(tree22_adr%+20)
ht22&=DPEEK(tree22_adr%+22)
xt23&=DPEEK(tree23_adr%+16)
yt23&=DPEEK(tree23_adr%+18)
bt23&=DPEEK(tree23_adr%+20)
ht23&=DPEEK(tree23_adr%+22)
DPOKE tree24_adr%+16,DPEEK(tree24_adr%+16)+200
xt24&=DPEEK(tree24_adr%+16)
yt24&=DPEEK(tree24_adr%+18)
bt24&=DPEEK(tree24_adr%+20)
ht24&=DPEEK(tree24_adr%+22)
xt26&=DPEEK(tree26_adr%+16)
yt26&=DPEEK(tree26_adr%+18)
bt26&=DPEEK(tree26_adr%+20)
ht26&=DPEEK(tree26_adr%+22)
xt27&=DPEEK(tree27_adr%+16)
yt27&=DPEEK(tree27_adr%+18)
bt27&=DPEEK(tree27_adr%+20)
ht27&=DPEEK(tree27_adr%+22)
xt28&=DPEEK(tree28_adr%+16)
yt28&=DPEEK(tree28_adr%+18)
bt28&=DPEEK(tree28_adr%+20)
ht28&=DPEEK(tree28_adr%+22)
xt29&=DPEEK(tree29_adr%+16)
yt29&=DPEEK(tree29_adr%+18)
bt29&=DPEEK(tree29_adr%+20)
ht29&=DPEEK(tree29_adr%+22)
xt30&=DPEEK(tree30_adr%+16)
yt30&=DPEEK(tree30_adr%+18)
bt30&=DPEEK(tree30_adr%+20)
ht30&=DPEEK(tree30_adr%+22)
xt31&=DPEEK(tree31_adr%+16)
yt31&=DPEEK(tree31_adr%+18)
bt31&=DPEEK(tree31_adr%+20)
ht31&=DPEEK(tree31_adr%+22)
xt32&=DPEEK(tree32_adr%+16)
yt32&=DPEEK(tree32_adr%+18)
bt32&=DPEEK(tree32_adr%+20)
ht32&=DPEEK(tree32_adr%+22)
xt35&=DPEEK(tree35_adr%+16)
yt35&=DPEEK(tree35_adr%+18)
bt35&=DPEEK(tree35_adr%+20)
ht35&=DPEEK(tree35_adr%+22)
xt33&=DPEEK(tree33_adr%+16)
yt33&=DPEEK(tree33_adr%+18)
bt33&=DPEEK(tree33_adr%+20)
ht33&=DPEEK(tree33_adr%+22)
xt36&=DPEEK(tree36_adr%+16)
yt36&=DPEEK(tree36_adr%+18)
bt36&=DPEEK(tree36_adr%+20)
ht36&=DPEEK(tree36_adr%+22)
xt37&=DPEEK(tree37_adr%+16)
yt37&=DPEEK(tree37_adr%+18)
bt37&=DPEEK(tree37_adr%+20)
ht37&=DPEEK(tree37_adr%+22)
xt38&=DPEEK(tree38_adr%+16)
yt38&=DPEEK(tree38_adr%+18)
bt38&=DPEEK(tree38_adr%+20)
ht38&=DPEEK(tree38_adr%+22)
xt39&=DPEEK(tree39_adr%+16)
yt39&=DPEEK(tree39_adr%+18)
bt39&=DPEEK(tree39_adr%+20)
ht39&=DPEEK(tree39_adr%+22)
xt40&=DPEEK(tree40_adr%+16)
yt40&=DPEEK(tree40_adr%+18)
bt40&=DPEEK(tree40_adr%+20)
ht40&=DPEEK(tree40_adr%+22)
xt41&=DPEEK(tree41_adr%+16)
yt41&=DPEEK(tree41_adr%+18)
bt41&=DPEEK(tree41_adr%+20)
ht41&=DPEEK(tree41_adr%+22)
bt_output&=OB_W(tree40_adr%,pl100&)
CHAR{{OB_SPEC(tree6_adr%,t_hoehe&)}}=STR$(INT(zeichen_hoehe%/100))
CHAR{{OB_SPEC(tree7_adr%,zabs&)}}=STR$(INT(zeilen_abstand_prozent%))
CHAR{{OB_SPEC(tree9_adr%,z_char&)}}=CHR$(z_ascii_old%+32)
CHAR{{OB_SPEC(tree8_adr%,string_text&)}}=abc$
CHAR{{OB_SPEC(tree12_adr%,bstep&)}}=STR$(b_vari/100)
CHAR{{OB_SPEC(tree13_adr%,punkte&)}}=STR$(pointer%)
CHAR{{OB_SPEC(tree13_adr%,rest&)}}=STR$(p_max%-pointer%)
CHAR{{OB_SPEC(tree13_adr%,version&)}}=revision$
CHAR{{OB_SPEC(tree14_adr%,rx1&)}}=STR$(folie_x%)
CHAR{{OB_SPEC(tree14_adr%,ry1&)}}=STR$(folie_y%)
CHAR{{OB_SPEC(tree14_adr%,rx2&)}}=STR$(folie_x2%)
CHAR{{OB_SPEC(tree14_adr%,ry2&)}}=STR$(folie_y2%)
CHAR{{OB_SPEC(tree14_adr%,rx3&)}}=STR$(folie_x3%)
CHAR{{OB_SPEC(tree14_adr%,ry3&)}}=STR$(folie_y3%)
CHAR{{OB_SPEC(tree15_adr%,p_init1&)}}=p_init1$
CHAR{{OB_SPEC(tree15_adr%,p_init2&)}}=p_init2$
CHAR{{OB_SPEC(tree15_adr%,overcut&)}}=STR$(overcut|/10)
CHAR{{OB_SPEC(tree15_adr%,ma&)}}=ma$
CHAR{{OB_SPEC(tree15_adr%,da&)}}=da$
CHAR{{OB_SPEC(tree17_adr%,outl&)}}="3.0"
CHAR{{OB_SPEC(tree18_adr%,schraffd&)}}=STR$(schraff_dist/100)
CHAR{{OB_SPEC(tree18_adr%,schraffi&)}}=STR$(schraff_inc/100)
CHAR{{OB_SPEC(tree18_adr%,schraffw&)}}=STR$(schraff_winkel)
CHAR{{OB_SPEC(tree18_adr%,schrafix&)}}=STR$(schraff_fix_abst)
CHAR{{OB_SPEC(tree21_adr%,t_step&)}}=STR$(bit_count_max|)
CHAR{{OB_SPEC(tree21_adr%,t_gerade&)}}=STR$(geraden_fehler|)
CHAR{{OB_SPEC(tree21_adr%,t_schmutz&)}}=STR$(schmutz_filter%)
CHAR{{OB_SPEC(tree21_adr%,bschwelle&)}}=STR$(lange_gerade%/100)
CHAR{{OB_SPEC(tree21_adr%,knickwinkel&)}}=STR$(CINT(DEG(knick_winkel_max)))
CHAR{{OB_SPEC(tree21_adr%,bogen_max&)}}=STR$(CINT(DEG(bogen_max*2)))
CHAR{{OB_SPEC(tree21_adr%,abweichung_gerade&)}}=STR$(abweichung_gerade%/100)
CHAR{{OB_SPEC(tree22_adr%,scann_x&)}}="1664"
CHAR{{OB_SPEC(tree22_adr%,scann_y&)}}="800"
CHAR{{OB_SPEC(tree23_adr%,radius&)}}="10"
CHAR{{OB_SPEC(tree27_adr%,calamus_nr&)}}=STR$(calamus_nr%)
CHAR{{OB_SPEC(tree29_adr%,kostfak&)}}=STR$(kostfak)
CHAR{{OB_SPEC(tree31_adr%,anz_rot&)}}="3"
CHAR{{OB_SPEC(tree31_adr%,phi_rot&)}}="90"
OB_STATE(tree15_adr%,rs232&)=state_rs232&+16
OB_STATE(tree15_adr%,cent&)=state_rs232& XOR 1+16
OB_STATE(tree15_adr%,hp&)=state_hp&+16
OB_STATE(tree15_adr%,gp&)=state_hp& XOR 1+16
OB_STATE(tree26_adr%,absolut&)=absolut!+18
OB_STATE(tree26_adr%,relativ&)=absolut!+17
OB_STATE(tree26_adr%,polar&)=absolut!+17
IF gdu=1
OB_STATE(tree15_adr%,gdu01&)=17
ELSE
IF gdu=2.5
OB_STATE(tree15_adr%,gdu025&)=17
ELSE
IF gdu=5
OB_STATE(tree15_adr%,gdu05&)=17
ELSE
OB_STATE(tree15_adr%,gdu1&)=17
ENDIF
ENDIF
ENDIF
OB_STATE(tree1_adr%,lock&)=1
IF mimaki!
OB_STATE(tree15_adr%,gdu05&)=17
OB_STATE(tree15_adr%,gdu01&)=8
OB_STATE(tree15_adr%,gdu025&)=8
OB_STATE(tree15_adr%,gdu1&)=8
OB_STATE(tree15_adr%,rs232&)=17
OB_STATE(tree15_adr%,mgl&)=17
OB_STATE(tree15_adr%,cent&)=16
OB_STATE(tree15_adr%,hp&)=16
OB_STATE(tree15_adr%,gp&)=16
ELSE
OB_STATE(tree15_adr%,mgl&)=8
ENDIF
~WIND_GET(0,4) ! get desk size
BMOVE GINTOUT+2,tree0_adr%+16,8 ! set into rsc
BMOVE GINTOUT+2,tree1_adr%+16,8 ! set into rsc
BMOVE GINTOUT+2,tree2_adr%+16,8 ! set into rsc
BMOVE GINTOUT+2,tree3_adr%+16,8 ! set into rsc
BMOVE GINTOUT+2,tree4_adr%+16,8 ! set into rsc
BMOVE GINTOUT+2,tree5_adr%+16,8 ! set into rsc
BMOVE GINTOUT+2,tree9_adr%+16,8 ! set into rsc
BMOVE GINTOUT+2,tree25_adr%+16,8 ! set into rsc
BMOVE GINTOUT+2,tree34_adr%+16,8 ! set into rsc
wind_newdesk(tree0_adr%,0) ! install Datei Baum
IF default_font$<>""
datei$=ein_space$
IF EXIST(pfad_fnt$+"\"+default_font$)
load_font(pfad_fnt$+"\"+default_font$)
programm_font$=LEFT$(default_font$,LEN(default_font$)-4)
ELSE
make_new_font(-1)
ENDIF
ELSE
make_new_font(-1)
ENDIF
m$(0)=""
m$(1)=" CUTOUT"
m$(2)="--------------------"
m$(3)=CHR$(2)
m$(4)=CHR$(3)
m$(5)=CHR$(4)
m$(6)=CHR$(5)
m$(7)=CHR$(6)
m$(8)=CHR$(7)
m$(9)=CHR$(8)
m$(10)=""
m$(11)=pd_menu$
m$(12)=pd_datei$
m$(13)=pd_editieren$
m$(14)=pd_fenster$
m$(15)=pd_schnittpunkt$
m$(16)=pd_bogen$
m$(17)="----------------------"
m$(18)=pd_text$
m$(19)=pd_zeicheneditor$
m$(20)=m$(17)
m$(21)=pd_extra$
m$(22)=m$(17)
m$(23)=pd_quit$
m$(24)=""
m$(25)=pd_optionen$
m$(26)=pd_marker_anzeigen$
m$(27)=pd_tangenten_anzeigen$
m$(28)=pd_fangradius_klein$
m$(29)=pd_polygon_modus$
m$(30)=pd_schnittpunkt_genau$
m$(31)=pd_koordinaten$
m$(32)=pd_element_selektieren$
m$(33)=pd_polygon_selektieren$
m$(34)=pd_warnmeldungen$
m$(35)="---------------------------"
m$(36)=pd_skaliere_alles$
m$(37)=m$(35)
m$(38)=pd_punkte_nivellieren$
m$(39)=pd_tangente$
m$(40)=m$(35)
m$(41)=pd_plotflaeche$
m$(42)=pd_bezier_step_aendern$
m$(43)=pd_plotter_einstellung$
m$(44)=pd_kosten_faktor$
m$(45)=pd_pfad_sichern$
m$(46)=""
m$(47)=pd_figur$
m$(48)=pd_rechteck$
m$(49)=pd_n_eck$
m$(50)=pd_polygon_outline$
m$(51)=pd_aequidistante$
m$(52)=pd_frame$
m$(53)="---------------------------"
m$(54)=pd_polygone_ausrichten$
m$(55)=pd_polygone_zentrieren$
m$(56)=pd_polygone_vereinen$
m$(57)=pd_polygone_fuellen$
m$(58)=m$(53)
m$(59)=pd_einzelne_punkte_loeschen$
m$(60)=""
m$(61)=pd_linie$
m$(62)=pd_bezier_vektor$
m$(63)=pd_bezier_einfuegen$
m$(64)=pd_tausche_bezier_vektor$
m$(65)=m$(53)
m$(66)=pd_knacken$
m$(67)=pd_trimmen$
m$(68)=pd_lot$
m$(69)=pd_verlaengern$
m$(70)=pd_teilen$
m$(71)=pd_messen$
m$(72)=m$(53)
m$(73)=pd_schnittp_2er$
m$(74)=pd_schnittp_n$
m$(75)=""
m$(76)=pd_effekt$
m$(77)=pd_parameter_schraffur$
m$(78)=pd_polygon_schraffieren$
m$(79)=pd_alles_schraffieren$
m$(80)="------------------------"
m$(81)=pd_schatten$
m$(82)=pd_einpassen$
m$(83)=m$(80)
m$(84)=pd_kugel$
m$(85)=""
m$(86)=""
MENU m$()
IF fangklein!
MENU 28,1
ENDIF
IF polygonmode!
MENU 29,1
ENDIF
IF warn!
MENU 34,1
ENDIF
CLIP 0,0,639,399 OFFSET 0,0
DEFTEXT 1,0,0,6
COLOR 1
TEXT 400,7,"Zoom X:"
TEXT 400,15,"Zoom Y:"
TEXT 540,7,"X:"
TEXT 540,15,"Y:"
DEFTEXT 1,0,0,4
TEXT 624,7,"mm"
TEXT 624,15,"mm"
LINE 536,0,536,20
LINE 396,0,396,20
'
~FORM_DIAL(3,0,0,0,0,0,0,desk_breite&,desk_hoehe&) !redraw all
'
layer!=FALSE
zoom=1
x_layer%=folie_x%
y_layer%=folie_y%
x_layero%=x_layer%
y_layero%=y_layer%
res_x%=x_layer%
res_y%=y_layer%
x_offset&=0
y_offset&=0
res_x_old%=x_layer%
res_y_old%=y_layer%
x_offset_old&=0
y_offset_old&=0
pointer%=0
get_desktop
scrb_old&=scrb&
scrh_old&=scrh&
CLOSEW 1
programm$=noname$
INT{WINDTAB+2}=&X111111000000
INT{WINDTAB+4}=scrx&
INT{WINDTAB+6}=scry&
INT{WINDTAB+8}=scrb&
INT{WINDTAB+10}=scrh&
help_titel
OPENW 1
calc_slid
~WIND_GET(1,4,x_win&,y_win&,b_window&,h_window&)
neues_polygon!=TRUE
do_redraw
DEFMOUSE 3
p_zoom(zoom*100,zoom*100)
CHAR{{OB_SPEC(tree14_adr%,rx1&)}}=STR$(x_layer%)
CHAR{{OB_SPEC(tree14_adr%,ry1&)}}=STR$(y_layer%)
' test_vollbild
'
~OBJC_OFFSET(tree28_adr%,gtprewin&,gtxv&,gtyv&)
gtxv&=gtxv&-x_win&+1
gtyv&=gtyv&-y_win&+1
'
ON MENU MESSAGE GOSUB message
ON MENU BUTTON 1,1,1 GOSUB button
ON MENU GOSUB menu
ON MENU KEY GOSUB key
' ON ERROR GOSUB fehler
'
'
REPEAT
ON MENU
UNTIL end!
'
IF modified!
IF pointer%>0
ALERT 3,"| "+sichere$+daten$,1,ja_nein$,i%
IF i%=1
@save_vektor
ENDIF
ENDIF
ENDIF
'
' Bei fertigen Programmen hier nur QUIT
'
reset
~WIND_GET(0,10)
IF DPEEK(GINTOUT+2)
ALERT 1,"Accessories",1,"Close|Quit",i%
IF i%=2
QUIT
ENDIF
REPEAT
~WIND_GET(0,10)
UNTIL DPEEK(GINTOUT+2)=0
ENDIF
RESERVE ! XBIOS(2)-HIMEM+FRE(0)-16384
'
PROCEDURE fehler
ALERT 1,fehler$,1,leider$,i%
' RESUME NEXT
RETURN
'
'
PROCEDURE get_undo
LOCAL dp%
dp%=daten_ptr%
IF (pointer%*9+1<work_space%) AND (NOT layer_geladen!)
LONG{dp%}=pointer%
ADD dp%,4
undo!=TRUE
BMOVE VARPTR(punkte_x%(0)),dp%,pointer%*4
ADD dp%,pointer%*4
BMOVE VARPTR(punkte_y%(0)),dp%,pointer%*4
ADD dp%,pointer%*4
BMOVE VARPTR(punkte_def|(0)),dp%,pointer%
undo!=TRUE
ELSE
undo!=FALSE
ENDIF
RETURN
'
PROCEDURE put_undo
LOCAL dp%
IF undo!
dp%=daten_ptr%
pointer%=LONG{dp%}
ADD dp%,4
BMOVE dp%,VARPTR(punkte_x%(0)),pointer%*4
ADD dp%,pointer%*4
BMOVE dp%,VARPTR(punkte_y%(0)),pointer%*4
ADD dp%,pointer%*4
BMOVE dp%,VARPTR(punkte_def|(0)),pointer%
undo!=FALSE
do_redraw
ENDIF
RETURN
'
PROCEDURE output_drucker
LOCAL handle&,x_resi&,y_resi&,z_old
IF GDOS?
ERASE work%()
IF FRE(0)>250000
RESERVE -250000
handle&=V_OPNWK(21)
IF handle&<>0
V~H=handle&
x_resi&=INTOUT(0)
y_resi&=INTOUT(1)
~V_CLRWK()
z_old=zoom
zoom=4
redraw_ohne(0)
~V_UPDWK()
~V_CLSWK()
zoom=z_old
ELSE
ENDIF
RESERVE
ELSE
ENDIF
DIM work%((FRE(0)-80*1024)/4)
daten_ptr%=V:work%(0)
work_space%=DIM?(work%())*4
ELSE
ENDIF
RETURN
'
'
PROCEDURE scan_a1
ALERT 3,"| SCAN Hochformat: ",1,"A3|A2|A1",i%
SELECT i%
CASE 1
scann_x%=INT(17*400/8) !17
scann_y%=INT(12*400) !12
CASE 2
scann_x%=INT(25*400/8)
scann_y%=INT(17*400)
CASE 3
scann_x%=INT(34*400/8)
scann_y%=INT(25*400)
ENDSELECT
scan_graphtec(3,400,0,0,scann_x%,scann_y%)
RETURN
'
PROCEDURE scan_graphtec(device&,dpi&,x_0%,y_0%,bytes_x%,lines_y%)
LOCAL command_bytes&,bytes_to_transfer%,transfer_dir&
LOCAL y_offset%,block&,command_bytes&,bytes_to_transfer%
' IF FN test_unit_ready(device&)=0
set_graphtec_window(device&,dpi&,x_0%,y_0%,bytes_x%,lines_y%)
command_bytes&=10
block&=&HFFFF DIV bytes_x% DIV 3
bytes_to_transfer%=bytes_x%*block&*3
transfer_dir&=0 ! LESEN
command|(0)=&H28
command|(1)=0
command|(2)=0
command|(3)=0
command|(4)=0
command|(5)=0
command|(6)=0
command|(7)=0
command|(8)=0
command|(9)=0
WORD{V:command|(7)}=block&
'
anzahl&=lines_y% DIV block&
rest&=lines_y% MOD block&
y_offset%=0
FOR i%=1 TO anzahl&
$c+
fehler%=C:scsi%(device&,command_bytes&,bytes_to_transfer%,transfer_dir&,L:V:command|(0),L:daten_ptr%+y_offset%)
$c-
ADD y_offset%,block&*bytes_x%
NEXT i%
IF rest&<>0
bytes_to_transfer%=bytes_x%*rest&*3
WORD{V:command|(7)}=rest&
$c+
fehler%=C:scsi%(device&,command_bytes&,bytes_to_transfer%,transfer_dir&,L:V:command|(0),L:daten_ptr%+y_offset%)
$c-
ENDIF
' status&=AND(CARD(fehler%),&X11110)
' message&=CARD(SWAP(fehler%))
layer!=TRUE
layer_geladen!=TRUE
voll_bild!=TRUE
outlined!=FALSE
do_change_aufloesung(bytes_x%*8,lines_y%,1)
init_bit_blit
p_zoom(zoom*100,zoom*100)
do_redraw
' ENDIF
RETURN
'
PROCEDURE set_graphtec_window(device&,dpi&,x_0%,y_0%,bytes_x%,lines_y%)
LOCAL command_bytes&,bytes_to_transfer%,transfer_dir&
command_bytes&=10
bytes_to_transfer%=53
transfer_dir&=1 ! LESEN (1=SCHREIBEN)
command|(0)=&H24
command|(1)=0
command|(2)=0
command|(3)=0
command|(4)=0
command|(5)=0
command|(6)=0
command|(7)=0
command|(8)=bytes_to_transfer%
command|(9)=0
FOR i%=0 TO 6
buffer|(i%)=0
NEXT i%
FOR i%=38 TO 47
buffer|(i%)=0
NEXT i%
buffer|(7)=45 ! Window Descriptor Block Length
buffer|(8)=0 ! Window ID
buffer|(9)=0 ! reserved
WORD{V:buffer|(10)}=dpi& ! X resolution
WORD{V:buffer|(12)}=dpi& ! Y resolution
LONG{V:buffer|(14)}=x_0%*24 ! X Upper Left
LONG{V:buffer|(18)}=y_0%*3 ! Y Upper Left
LONG{V:buffer|(22)}=bytes_x%*24 ! Width
LONG{V:buffer|(26)}=lines_y%*3 ! Length
buffer|(30)=0 ! reserved
buffer|(31)=0 ! Kontrast
buffer|(32)=0 ! reserved
buffer|(33)=0 ! Image composition
buffer|(34)=1 ! Bits per Pixel
buffer|(35)=0 ! reserved
buffer|(36)=0 ! reserved
buffer|(37)=0 ! Reverse Image
buffer|(48)=2 ! Cell length
buffer|(49)=5 ! Function Code
buffer|(50)=1 ! Fine Line
buffer|(51)=2 ! Cell length
buffer|(52)=6 ! Function Code
buffer|(53)=1 ! Scann Speed
$c+
fehler%=C:scsi%(device&,command_bytes&,bytes_to_transfer%,transfer_dir&,L:V:command|(0),L:V:buffer|(0))
$c-
RETURN
'
FUNCTION test_unit_ready(device&)
command_bytes&=6
bytes_to_transfer%=1
transfer_dir&=0 ! LESEN (1=SCHREIBEN)
command|(0)=0
command|(1)=0
command|(2)=0
command|(3)=0
command|(4)=bytes_to_transfer%
command|(5)=0
'
$c+
fehler%=C:scsi%(device&,command_bytes&,L:bytes_to_transfer%,transfer_dir&,L:V:command|(0),L:V:buffer|(0))
$c-
status&=AND(CARD(fehler%),&X11110)
message&=CARD(SWAP(fehler%))
'
RETURN status&
ENDFUNC
'
'
PROCEDURE gt_info(i$)
CHAR{{OB_SPEC(tree28_adr%,gtstate&)}}=i$
~OBJC_DRAW(tree28_adr%,gtstate&,8,xt28&,yt28&,bt28&,ht28&)
RETURN
'
PROCEDURE dpi_change(prex0&,prey0&,prex0_min&,prey0_min&)
CHAR{{OB_SPEC(tree28_adr%,gtdpi&)}}=STR$(gtdpiv&)
~OBJC_DRAW(tree28_adr%,gtdpi&,8,xt28&,yt28&,bt28&,ht28&)
CHAR{{OB_SPEC(tree28_adr%,gtb&)}}=STR$(AND(INT(gtbv&/25.4*gtdpiv&),&HFFF8))
CHAR{{OB_SPEC(tree28_adr%,gth&)}}=STR$(AND(INT(gthv&/25.4*gtdpiv&),&HFFF8))
~OBJC_DRAW(tree28_adr%,gtb&,8,xt28&,yt28&,bt28&,ht28&)
~OBJC_DRAW(tree28_adr%,gth&,8,xt28&,yt28&,bt28&,ht28&)
CHAR{{OB_SPEC(tree28_adr%,gtx&)}}=STR$(AND(INT((prex0&-prex0_min&)/25.4*gtdpiv&),&HFFF8))
CHAR{{OB_SPEC(tree28_adr%,gty&)}}=STR$(AND(INT((prey0&-prey0_min&)/25.4*gtdpiv&),&HFFF8))
~OBJC_DRAW(tree28_adr%,gtx&,8,xt28&,yt28&,bt28&,ht28&)
~OBJC_DRAW(tree28_adr%,gty&,8,xt28&,yt28&,bt28&,ht28&)
RETURN
'
PROCEDURE gt_6000
LOCAL prex0&,prey0&,prex0_min&,prey0_min&,x_changed&,y_changed&
LOCAL prex&,prey&,gthalbton&
DEFMOUSE 0
SETMOUSE xt28&+240,yt28&+310,0
CLIP 0,0,desk_breite&,desk_hoehe& OFFSET x_win&,y_win&
~OBJC_OFFSET(tree28_adr%,gtprewin&,prex&,prey&)
gthalbton&=1
prex0&=prex&-x_win&+1
prey0&=prey&-y_win&+1
prex0_min&=prex0&
prey0_min&=prey0&
prex0_max&=prex0&+217
prey0_max&=prey0&+297
prex0&=gtxv&
prey0&=gtyv&
'
CHAR{{OB_SPEC(tree28_adr%,gtx&)}}=STR$(AND(INT((prex0&-prex0_min&)/25.4*gtdpiv&),&HFFF8))
CHAR{{OB_SPEC(tree28_adr%,gty&)}}=STR$(AND(INT((prey0&-prey0_min&)/25.4*gtdpiv&),&HFFF8))
CHAR{{OB_SPEC(tree28_adr%,gtb&)}}=STR$(AND(INT(gtbv&/25.4*gtdpiv&),&HFFF8))
CHAR{{OB_SPEC(tree28_adr%,gth&)}}=STR$(AND(INT(gthv&/25.4*gtdpiv&),&HFFF8))
CHAR{{OB_SPEC(tree28_adr%,gtdpi&)}}=STR$(gtdpiv&)
CHAR{{OB_SPEC(tree28_adr%,gtstate&)}}=waehle$
GET xt28&-4,yt28&-4,xt28&+bt28&+4,yt28&+ht28&+4,rette$
~OBJC_DRAW(tree28_adr%,0,8,xt28&,yt28&,bt28&,ht28&)
smfdb%(0)=V:prebuf$
smfdb%(1)=208
smfdb%(2)=292
smfdb%(3)=smfdb%(1)/16
smfdb%(5)=1
dmfdb%(0)=XBIOS(3)
dmfdb%(1)=desk_breite&
dmfdb%(2)=desk_hoehe&
dmfdb%(3)=dmfdb%(1)/16
dmfdb%(5)=1
p%(0)=0
p%(1)=0
p%(2)=207
p%(3)=291
p%(4)=prex&+1
p%(5)=prey&+1
p%(6)=p%(4)+207
p%(7)=p%(5)+291
p%(8)=3
BITBLT smfdb%(),dmfdb%(),p%()
DEFFILL 1,1,1
GRAPHMODE 3
BOX prex0&,prey0&,prex0&+gtbv&,prey0&+gthv&
PBOX prex0&+gtbv&-8,prey0&+gthv&-8,prex0&+gtbv&,prey0&+gthv&
REPEAT
DO
~FORM_DO(tree28_adr%,0)
IF INT{GINTOUT}>0 AND INT{GINTOUT}<100
exit_button&=DPEEK(GINTOUT)
OB_STATE(tree28_adr%,exit_button&)=0
IF exit_button&<>gtprewin&
~OBJC_DRAW(tree28_adr%,exit_button&,8,xt28&,yt28&,bt28&,ht28&)
ENDIF
ENDIF
SELECT exit_button&
CASE gtdpimin&
IF gtdpiv&>100
IF gtdpiv&=480
gtdpiv&=400
ELSE
IF gtdpiv&=600
gtdpiv&=480
ELSE
SUB gtdpiv&,100
ENDIF
ENDIF
dpi_change(prex0&,prey0&,prex0_min&,prey0_min&)
ENDIF
CASE gtdpiplu&
IF gtdpiv&<600
IF gtdpiv&=400
gtdpiv&=480
ELSE
IF gtdpiv&=480
gtdpiv&=600
ELSE
ADD gtdpiv&,100
ENDIF
ENDIF
dpi_change(prex0&,prey0&,prex0_min&,prey0_min&)
ENDIF
CASE gtprewin&
MOUSE x_mouse%,y_mouse%,taste|
IF x_mouse%>prex0&+gtbv&-8 AND x_mouse%<prex0&+gtbv& AND y_mouse%>prey0&+gthv&-8 AND y_mouse%<prey0&+gthv&
DEFMOUSE 3
REPEAT
MOUSE x_mouse%,y_mouse%,taste|
IF x_mouse%<>x_mouse_old% OR y_mouse%<>y_mouse_old%
BOX prex0&,prey0&,prex0&+gtbv&,prey0&+gthv&
PBOX prex0&+gtbv&-8,prey0&+gthv&-8,prex0&+gtbv&,prey0&+gthv&
IF x_mouse%-prex0_min&<217 AND x_mouse%-prex0&>16
gtbv&=x_mouse%-prex0&
i%=AND(INT(gtbv&/25.4*gtdpiv&),&HFFF0)
gtbv&=CINT(i%*25.4/gtdpiv&)
ENDIF
IF y_mouse%-prey0_min&<298 AND y_mouse%-prey0&>16
gthv&=y_mouse%-prey0&
ENDIF
BOX prex0&,prey0&,prex0&+gtbv&,prey0&+gthv&
PBOX prex0&+gtbv&-8,prey0&+gthv&-8,prex0&+gtbv&,prey0&+gthv&
SHOWM
x_mouse_old%=x_mouse%
y_mouse_old%=y_mouse%
CHAR{{OB_SPEC(tree28_adr%,gtb&)}}=STR$(AND(INT(gtbv&/25.4*gtdpiv&),&HFFF0))
CHAR{{OB_SPEC(tree28_adr%,gth&)}}=STR$(INT(gthv&/25.4*gtdpiv&))
~OBJC_DRAW(tree28_adr%,gtb&,8,xt28&,yt28&,bt28&,ht28&)
~OBJC_DRAW(tree28_adr%,gth&,8,xt28&,yt28&,bt28&,ht28&)
ENDIF
UNTIL taste|=0
DEFMOUSE 0
ELSE
IF x_mouse%>prex0& AND x_mouse%<prex0&+gtbv& AND y_mouse%>prey0& AND y_mouse%<prey0&+gthv&
x_mouse_old%=x_mouse%
y_mouse_old%=y_mouse%
DEFMOUSE 3
REPEAT
MOUSE x_mouse%,y_mouse%,taste|
IF x_mouse%<>x_mouse_old% OR y_mouse%<>y_mouse_old%
x_changed&=x_mouse%-x_mouse_old%
y_changed&=y_mouse%-y_mouse_old%
BOX prex0&,prey0&,prex0&+gtbv&,prey0&+gthv&
PBOX prex0&+gtbv&-8,prey0&+gthv&-8,prex0&+gtbv&,prey0&+gthv&
IF prex0&+x_changed&>=prex0_min& AND prex0&+x_changed&+gtbv&<prex0_max&
ADD prex0&,x_changed&
ENDIF
IF prey0&+y_changed&>=prey0_min& AND prey0&+y_changed&+gthv&<prey0_max&
ADD prey0&,y_changed&
ENDIF
BOX prex0&,prey0&,prex0&+gtbv&,prey0&+gthv&
PBOX prex0&+gtbv&-8,prey0&+gthv&-8,prex0&+gtbv&,prey0&+gthv&
SHOWM
x_mouse_old%=x_mouse%
y_mouse_old%=y_mouse%
CHAR{{OB_SPEC(tree28_adr%,gtx&)}}=STR$(AND(INT((prex0&-prex0_min&)/25.4*gtdpiv&),&HFFF8))
CHAR{{OB_SPEC(tree28_adr%,gty&)}}=STR$(AND(INT((prey0&-prey0_min&)/25.4*gtdpiv&),&HFFF8))
~OBJC_DRAW(tree28_adr%,gtx&,8,xt28&,yt28&,bt28&,ht28&)
~OBJC_DRAW(tree28_adr%,gty&,8,xt28&,yt28&,bt28&,ht28&)
ENDIF
UNTIL taste|=0
DEFMOUSE 0
ENDIF
ENDIF
CASE gtpresca&
gt_info(scannen$+pre_view$)
HIDEM
gt6000%=VARPTR(gt6000$)
$C+
VOID C:gt6000%(1,50,3,3,gthalbton&,0,0,26,292,L:V:prebuf$,L:V:prebuf$+8000)
$C-
OUT (2),13
trigger_0
DEFMOUSE 3
SHOWM
BOX prex0&,prey0&,prex0&+gtbv&,prey0&+gthv&
PBOX prex0&+gtbv&-8,prey0&+gthv&-8,prex0&+gtbv&,prey0&+gthv&
smfdb%(0)=V:prebuf$
BITBLT smfdb%(),dmfdb%(),p%()
BOX prex0&,prey0&,prex0&+gtbv&,prey0&+gthv&
PBOX prex0&+gtbv&-8,prey0&+gthv&-8,prex0&+gtbv&,prey0&+gthv&
gt_info(waehle$)
ENDSELECT
EXIT IF exit_button&=gtcancel&
EXIT IF exit_button&=gtscan&
LOOP
IF exit_button&=gtcancel&
PUT xt28&-4,yt28&-4,rette$
ok!=TRUE
ENDIF
IF exit_button&=gtscan&
IF OB_STATE(tree28_adr%,gthart&)=1
gthalbton&=0
ELSE
IF OB_STATE(tree28_adr%,gtweich&)=1
gthalbton&=16
ELSE
IF OB_STATE(tree28_adr%,gtraster&)=1
gthalbton&=32
ELSE
gthalbton&=1
ENDIF
ENDIF
ENDIF
IF OB_STATE(tree28_adr%,gtrot&)=1
gtfarbev&=0
ELSE
IF OB_STATE(tree28_adr%,gtgruen&)=1
gtfarbev&=1
ELSE
IF OB_STATE(tree28_adr%,gtblau&)=1
gtfarbev&=2
ELSE
gtfarbev&=3
ENDIF
ENDIF
ENDIF
IF OB_STATE(tree28_adr%,k0&)=1
gtkontrav&=0
ELSE
IF OB_STATE(tree28_adr%,k1&)=1
gtkontrav&=1
ELSE
IF OB_STATE(tree28_adr%,k2&)=1
gtkontrav&=2
ELSE
IF OB_STATE(tree28_adr%,k3&)=1
gtkontrav&=3
ELSE
IF OB_STATE(tree28_adr%,k4&)=1
gtkontrav&=4
ELSE
IF OB_STATE(tree28_adr%,k5&)=1
gtkontrav&=5
ELSE
gtkontrav&=6
ENDIF
ENDIF
ENDIF
ENDIF
ENDIF
ENDIF
gt_info(scannen$+bereich$)
gtxorig&=CINT(AND(INT((prex0&+2-prex0_min&)/25.4*gtdpiv&),&HFFF8)/8)
gtyorig&=CINT((prey0&+2-prey0_min&)/25.4*gtdpiv&)
gtxbytes&=CINT(AND(INT(gtbv&/25.4*gtdpiv&),&HFFF0)/8)
gtyzeilen&=CINT(gthv&/25.4*gtdpiv&)
IF gtxbytes&*(gtyzeilen&+1)<work_space%
HIDEM
gt6000%=VARPTR(gt6000$)
$C+
i%=C:gt6000%(0,gtdpiv&,gtfarbev&,gtkontrav&,gthalbton&,gtxorig&,gtyorig&,gtxbytes&,gtyzeilen&,L:daten_ptr%,L:daten_ptr%+work_space%)
$C-
OUT (2),13
trigger_0
DEFMOUSE 3
SHOWM
ELSE
i%=-1
ENDIF
IF i%>=0
gt_info(waehle$)
PUT xt28&-4,yt28&-4,rette$
layer!=TRUE
layer_geladen!=TRUE
voll_bild!=TRUE
outlined!=FALSE
do_change_aufloesung(AND(INT(gtbv&/25.4*gtdpiv&),&HFFF0),INT(gthv&/25.4*gtdpiv&),1)
init_bit_blit
p_zoom(zoom*100,zoom*100)
do_redraw
ok!=TRUE
ELSE
FOR i%=1 TO 5
gt_info(fehler$)
PAUSE 15
gt_info(" ")
PAUSE 15
NEXT i%
gt_info(waehle$)
ok!=FALSE
ENDIF
ENDIF
UNTIL ok!
gtxv&=prex0&
gtyv&=prey0&
~WIND_GET(1,4)
clip(x_window&,y_window&,b_window&,h_window&,INT{GINTOUT+2},INT{GINTOUT+4})
set_clip_offset
GRAPHMODE 1
DEFFILL 0,0
DEFMOUSE 3
init_bit_blit
RETURN
'
PROCEDURE set_clip_offset
INT{WINDTAB+64}=INT{WINDTAB+64}-x_offset&
INT{WINDTAB+66}=INT{WINDTAB+66}-y_offset&
RETURN
'
PROCEDURE helpo(help$)
TITLEW #1,ein_space$+help$+ein_space$
set_clip_offset
RETURN
'
PROCEDURE help(help$)
TITLEW #1,ein_space$+waehle$+help$+ein_space$
set_clip_offset
RETURN
'
PROCEDURE help_titel
TITLEW #1,ein_space$+pfad_vek$+"\"+programm$+".VEK "
set_clip_offset
DEFMOUSE 3
DEFLINE 1
COLOR 1
GRAPHMODE 1
p_xy_info("X:","Y:",0)
SHOWM
trigger_0
zeit%=TIMER
RETURN
'
PROCEDURE polygon_fill
REPEAT
DEFMOUSE 0
GET xt20&-4,yt20&-4,xt20&+bt20&+4,yt20&+ht20&+4,rette$
SETMOUSE xt20&+bt20&/2,yt20&+160,0
~OBJC_DRAW(tree20_adr%,0,8,xt20&,yt20&,bt20&,ht20&)
~FORM_DO(tree20_adr%,0)
exit_button&=DPEEK(GINTOUT)
OB_STATE(tree20_adr%,exit_button&)=0
PUT xt20&-4,yt20&-4,rette$
IF OB_STATE(tree20_adr%,fill1&)=1
DEFFILL 1,2,1
ELSE IF OB_STATE(tree20_adr%,fill2&)=1
DEFFILL 1,2,2
ELSE IF OB_STATE(tree20_adr%,fill3&)=1
DEFFILL 1,2,3
ELSE IF OB_STATE(tree20_adr%,fill4&)=1
DEFFILL 1,2,4
ELSE IF OB_STATE(tree20_adr%,fill5&)=1
DEFFILL 1,2,5
ELSE IF OB_STATE(tree20_adr%,fill6&)=1
DEFFILL 1,2,6
ELSE IF OB_STATE(tree20_adr%,fill7&)=1
DEFFILL 1,2,8
ENDIF
DEFMOUSE mdaten$
help(help_polygon$)
IF exit_button&<>fillcancel&
REPEAT
trigger_0
wait_taste
IF taste|<>2
FILL x_mouse%,y_mouse%
ENDIF
UNTIL taste|=2
ENDIF
UNTIL exit_button&=fillcancel&
~FRE(0)
DEFFILL 1,1
help_titel
RETURN
'
' *****************************************************************************
' * TANGENTE NIVELLIEREN *
' * *
' * VERÄNDERT VAR: Punkte_X%(), Punkte_Y%() *
' * *
' *****************************************************************************
'
PROCEDURE do_niv_tangente(found_quelle%,von%,bis%,dreh_x%,dreh_y%)
LOCAL phi,strecke
dx=SUB(dreh_x%,punkte_x%(found%))
dy=SUB(dreh_y%,punkte_y%(found%))
strecke=SQR(dx*dx+dy*dy)
get_phi(dreh_x%,dreh_y%,punkte_x%(found_quelle%),punkte_y%(found_quelle%),phi)
redraw_von_bis(von%,bis%,0)
punkte_x%(found%)=CINT(dreh_x%-strecke*COS(phi))
punkte_y%(found%)=CINT(dreh_y%-strecke*SIN(phi))
redraw_von_bis(von%,bis%,1)
RETURN
'
PROCEDURE tangente_nivellieren
LOCAL found_quelle%,quelle_def|
LOCAL von%,bis%,f%,dreh_x%,dreh_y%
IF pointer%>1
show_cursor_fang
REPEAT
trigger_0
GRAPHMODE 1
REPEAT
wait_taste
EXIT IF taste|=2
find(x_mouse%*100/zoom,y_mouse%*100/zoom)
quelle_def|=punkte_def|(found%)
UNTIL (quelle_def|>da| AND quelle_def|<b3|)
IF taste|<>2
found_quelle%=found%
IF quelle_def|=b1|
IF punkte_def|(found_quelle%-1)=b3|
found%=found_quelle%-2
von%=found_quelle%-4
bis%=von%+3
dreh_x%=punkte_x%(found_quelle%-1)
dreh_y%=punkte_y%(found_quelle%-1)
do_niv_tangente(found_quelle%,von%,bis%,dreh_x%,dreh_y%)
ELSE
IF punkte_def|(found_quelle%-1)=da|
found%=found_quelle%
found_quelle%=found%-2
von%=found%-1
bis%=von%+3
dreh_x%=punkte_x%(found%-1)
dreh_y%=punkte_y%(found%-1)
do_niv_tangente(found_quelle%,von%,bis%,dreh_x%,dreh_y%)
ELSE
IF punkte_def|(found_quelle%-1)=ma|
found%=found_quelle%
REPEAT
INC found%
UNTIL punkte_def|(found%)=ma|
DEC found%
IF punkte_def|(found%)=b3|
DEC found%
von%=found%-2
bis%=von%+3
dreh_x%=punkte_x%(found_quelle%-1)
dreh_y%=punkte_y%(found_quelle%-1)
do_niv_tangente(found_quelle%,von%,bis%,dreh_x%,dreh_y%)
ELSE
IF punkte_def|(found%)=da|
f%=found_quelle%
found_quelle%=found%-1
found%=f%
von%=found%-1
bis%=von%+3
dreh_x%=punkte_x%(found_quelle%+1)
dreh_y%=punkte_y%(found_quelle%+1)
do_niv_tangente(found_quelle%,von%,bis%,dreh_x%,dreh_y%)
ENDIF
ENDIF
ENDIF
ENDIF
ENDIF
ELSE
IF quelle_def|=b2|
IF punkte_def|(found_quelle%+2)=b1|
found%=found_quelle%+2
von%=found_quelle%+1
bis%=von%+3
dreh_x%=punkte_x%(found_quelle%+1)
dreh_y%=punkte_y%(found_quelle%+1)
do_niv_tangente(found_quelle%,von%,bis%,dreh_x%,dreh_y%)
ELSE
IF punkte_def|(found_quelle%+2)=da|
found%=found_quelle%
found_quelle%=found%+2
von%=found%-2
bis%=von%+3
dreh_x%=punkte_x%(found%+1)
dreh_y%=punkte_y%(found%+1)
do_niv_tangente(found_quelle%,von%,bis%,dreh_x%,dreh_y%)
ELSE
IF punkte_def|(found_quelle%+2)=ma|
found%=found_quelle%
REPEAT
DEC found%
UNTIL punkte_def|(found%)=ma|
INC found%
IF punkte_def|(found%)=b1|
von%=found%-1
bis%=von%+3
dreh_x%=punkte_x%(found_quelle%+1)
dreh_y%=punkte_y%(found_quelle%+1)
do_niv_tangente(found_quelle%,von%,bis%,dreh_x%,dreh_y%)
ELSE
IF punkte_def|(found%)=da|
f%=found_quelle%
found_quelle%=found%
found%=f%
von%=found%-2
bis%=von%+3
dreh_x%=punkte_x%(found_quelle%-1)
dreh_y%=punkte_y%(found_quelle%-1)
do_niv_tangente(found_quelle%,von%,bis%,dreh_x%,dreh_y%)
ENDIF
ENDIF
ENDIF
ENDIF
ENDIF
ENDIF
ENDIF
ENDIF
UNTIL taste|=2
DEFMOUSE 3
ENDIF
RETURN
'
' *****************************************************************************
' * ASCII Editor *
' * *
' * *
' * ' ******************************************************************************
' * *
' * CUTOUT *
' * *
' * 27.02.1992 *
' * *
' ******************************************************************************
'
'
$B+
$I-
INLINE scsi%,933
DIM buffer|(512*2)
DIM command|(12)
' VAR:
' apl_id&=APPL_INIT()
magic%=14031952
'
' serien_nummer$="REGIST00"
' serien_nummer_vergleich$="REGIST11"
serien_nummer$=MKD$(101)
serien_nummer_vergleich$=MKD$(101 XOR magic%)
'
fang_schnittpunkt|=4
buffer%=0
buffer_max%=0
poly_len%=0
bits%=0
punkt_eintrag&=0
x_start&=0
y_start&=0
edi_max&=0
m=0
m_neu=0
bit_count|=0
pixel!=FALSE
'
regist_nr%=0
revision$="1.59"
zeit%=TIMER
calamus_nr%=0
ortho|=45
ortho=RAD(ortho|)
ortho2=ortho/2
x_win&=0 ! Window X pos aktuell
y_win&=0 ! Window Y pos aktuell
x_window&=0 ! Window X pos aktuell
y_window&=0 ! Window Y pos aktuell
b_window&=0 ! Window Breite aktuell
h_window&=0 ! Window Höhe aktuell
~WIND_GET(0,4,scrx&,scry&,scrb&,scrh&) ! maximaler Desktop
wmx%=scrb&-62
wmy%=scrh&-57+scry&
desk_breite&=scrb&
desk_hoehe&=scrh&+scry&
gross_bildschirm!=FALSE
IF desk_breite&>640 OR desk_hoehe&>400
gross_bildschirm!=TRUE
ENDIF
ADD scrx&,42 ! Position Window X+Menuleiste
SUB scrb&,42 ! Breite Window
scrb_old&=scrb&
scrh_old&=scrh&
res_x%=0 ! Auflösung x in mm
res_y%=0 ! Auflösung y in mm
res_x_old%=0
res_y_old%=0
x_layer%=0
y_layer%=0
x_layero%=0
y_layero%=0
x_offset&=0 ! Nullpunkt x im Fenster
y_offset&=0 ! Nullpunkt y im Fenster
x_offset_old&=0
y_offset_old&=0
x_mouse%=0
y_mouse%=0
x_mouse_old%=0
y_mouse_old%=0
x_mouse_0%=0
y_mouse_0%=0
objectbox_x0%=0
objectbox_y0%=0
objectbox_x1%=0
objectbox_y1%=0
grid%=10 ! raster mm
schraff_dist=201
schraff_inc=0
schraff_fix_abst=0
schraff_winkel=0
schraff_start%=0
schraff_y_min%=0
bit_count_max|=6
geraden_fehler|=1
lange_gerade%=4000
schmutz_filter%=20
knick_winkel_max=RAD(140)
bogen_max=PI/2/2
abweichung_gerade%=0.5*100
last_poly_s%=-1
last_poly_e%=-1
taste|=0
zoom=1
zoom_old=1
zoom_100=1
pointer%=0 ! Zeiger auf Punkteliste
found%=0 ! gefundener Punkt bei SNAP
found_t%=0 ! gefundener Kurvenparameter
schnittpunkt_genau%=16 ! Zerlegung Bezier in Teile
anz_schnittpunkte%=0 ! Anzahl Schnittpunkte
b_vari=100
i%=0 ! allgemeiner Schleifenzähler
ii%=0
iii%=0
d0%=0
dx%=0
dy%=0
dx=0
dy=0
schnitt_laenge=0
kostfak=1
gkosten=0
px0%=0
py0%=0
px1%=0
py1%=0
px2%=0
py2%=0
px3%=0
py3%=0
m_square_breite&=&H3000
m_square_hoehe&=&H3000
kerning_256|=m_square_breite& DIV 256
len_pair_daten&=0
z_hoehe_def%=16384 ! Höhe des definierten Zsatzes
z_breite_def%=16384 ! Breite "
zeichen_hoehe%=3000 ! gewünschte Höhe in 1/100 mm
versal_def%=0 ! Versal Höhe in 1/100 mm
z_ascii_scale=zeichen_hoehe%/z_hoehe_def% ! Scaling
z_ascii_scale_old=z_ascii_scale ! save Scaling
global_kerning%=1280 ! globales Kerning
zeilen_abstand_prozent%=125 ! relativer Zeilen Abstand
zeilen_abstand%=zeichen_hoehe%*zeilen_abstand_prozent%/100-zeichen_hoehe%
z_cursor_x_spalte%=0 ! Start String
z_cursor_x%=0 ! ASCII Zeichen Cursor X
z_cursor_y%=0 ! ASCII Zeichen Cursor y
z_cursor_x_old%=0 ! letztes Zeichen Cursor X
z_cursor_y_old%=0 ! letztes Zeichen Cursor y
z_ascii_old%=0 ! letztes Zeichen ASCII+32
z_satz_pointer%=0 ! Pointer auf Zeichensatz
state_rs232&=0 ! Centronics aktiv
state_hp&=0 ! HPGL aktiv
folie_x%=1188 ! Folien Grö₧e
folie_y%=840
plotter_x_min%=0
plotter_y_min%=0
gdu=0 ! 100*Plottereinheit
sel_start%=0
sel_end%=0
gtxv&=0
gtyv&=0
gtbv&=216
gthv&=297
gtdpiv&=300
gtfarbev&=3
gtkontrav&=3
exit_button&=0
cursor_x&=0
cursor_y&=0
ofn_ver|=0
overcut|=0
geschlossen%=0
'
phi_x_3d=0
phi_y_3d=0
a2_3d=0
'
daten_ptr%=0
work_space%=0
'
' CONST:
'
IF FRE(0)>4000000
p_max%=99999
ELSE
p_max%=60000
ENDIF
ma|=0
da|=1
b1|=2
b2|=3
b3|=4
ein_drittel=1/3
fmin=2.225073858507E-307
fmin1=0.005
max1=0.995
pimal2=PI*2
pihalbe=PI/2
pidrittel=PI/3
fang_rad%=8*100 ! FANGRADIUS
p_at%=XBIOS(3)+76 ! PRINT AT FÜR X,Y
p_at_zoom%=p_at%-12 ! PRINT AT FÜR ZOOM
x_bytes%=(scrb&+42)/8 ! BYTES IN X RICHTUNG DESKTOP
'
' CONST: Menuleiste
'
tree00&=0
tree0_adr%=0
datei&=3
eintrag&=4
mfenster&=10
mtext&=5
mzedi&=6
spezial&=7
all_clear&=8
bbogen&=9
mschnitt&=11
'
tree01&=1
tree1_adr%=0
back_main&=3
fwd_main&=4
gerade&=5
kurve&=6
schliess&=7
verrunde&=8
loeschen&=9
lock&=10
snap&=11
bild&=12
zircel&=13
bezier4&=14
schere&=15
' fenster&=15
'
tree02&=2
tree2_adr%=0
back_datei&=3
fwd_datei&=4
l_vek&=5
l_merge&=6
r_macro&=7
r_cvg&=8
l_img&=9
l_pic&=10
ordner&=11
s_vek&=12
s_plt&=13
a_plotter&=14
'
tree03&=3
tree3_adr%=0
back_fenster&=3
fwd_fenster&=4
fmove&=5
blitz&=6
fcopy&=7
fzoom&=8
fzoomp&=9
fdreh&=10
fspiegel&=11
fkursiv&=12
dreh3d&=13
drehxp&=14
drehxm&=15
drehym&=16
drehyp&=17
floesch&=18
fzoom1&=19
'
tree04&=4
tree4_adr%=0
back_spezial&=3
gtepson&=4
handy&=5
kontour&=6
filter&=7
trace&=8
smooth&=9
simag&=10
'
tree05&=5
tree5_adr%=0
back_text&=3
fwd_text&=4
z_edit&=5
z_editor&=6
z_string&=7
z_t_hoehe&=8
z_t_abstand&=9
z_g_kerning&=10
z_read_ascii&=11
l_font&=12
s_font&=14
c_font&=13
'
tree06&=6
tree6_adr%=0
t_hoehe&=1
'
tree07&=7
tree7_adr%=0
zabs&=1
'
tree08&=8 ! String Text
tree8_adr%=0
string_text&=1
breite&=3
string_breite&=4
versal&=5
string_versal&=6
pfad&=7
do_kerning&=8
string_kreis&=9
string_kreis_von&=10
string_kreis_bis&=11
fontname&=13
c_text&=14
icon_pair&=15
icon_trep&=16
'
tree09&=9 ! Zeichen Editor
tree9_adr%=0
back_editor&=3
m_matrix&=4
z_matrix&=5
move_matrix&=6
kerning_links&=7
kerning_rechts&=8
kerning_auto&=9
z_get&=10
z_muell&=11
z_up&=13
z_down&=14
z_char&=15
'
tree10&=10
tree10_adr%=0
b_kerning&=2
g_kerning&=3
'
tree11&=11 ! Optimier
tree11_adr%=0
del_ma&=4
del_ge&=6
del_el&=8
'
tree12&=12
tree12_adr%=0
bstep&=1
'
tree13&=13 ! Info
tree13_adr%=0
vernr&=7
version&=4
firma&=4
strasse&=7
stadt&=10
punkte&=15
rest&=17
'
tree14&=14 ! Auflösung
tree14_adr%=0
rx1&=8
ry1&=10
rx2&=12
ry2&=13
rx3&=16
ry3&=17
get_pf&=19
r1&=4
r2&=5
r3&=6
'
tree15&=15 ! Plotter INIT
tree15_adr%=0
p_init1&=3
p_init2&=4
gdu01&=9
gdu025&=10
gdu05&=11
gdu1&=12
overcut&=16
cent&=18
rs232&=20
hp&=23
gp&=24
mgl&=25
ma&=29
da&=30
'
tree16&=16 ! Pfade und Parameter
tree16_adr%=0
pv&=5
pp&=7
pfi&=9
pg&=11
pf&=13
df&=15
p1&=17
p2&=19
schnitt&=21
gdu&=23
foliex&=25
foliey&=27
warn&=29
cancel&=31
'
tree17&=17
tree17_adr%=0
outl&=1
outl_anz&=2
'
tree18&=18
tree18_adr%=0
schraffd&=1
schraffi&=2
schrafix&=3
schraffw&=4
schraffa&=7
schrafff&=8
'
tree19&=19
tree19_adr%=0
necka&=1
neckp&=2
'
tree20&=20 ! Füll
tree20_adr%=0
fill1&=3
fill2&=5
fill3&=7
fill4&=9
fill5&=11
fill6&=13
fill7&=15
fillcancel&=17
'
tree21&=21 ! Trace
tree21_adr%=0
t_step&=7
t_gerade&=8
t_schmutz&=9
bschwelle&=21
knickwinkel&=22
bogen_max&=23
abweichung_gerade&=24
nur_gerade&=13
trace_cancel&=14
gerade_bezier&=30
'
tree22&=22
tree22_adr%=0
scann_x&=1
scann_y&=2
'
tree23&=23
tree23_adr%=0
radius&=1
'
tree24&=24
tree24_adr%=0
grau&=6
stark&=7
selgrau0&=4
selgrau&=5
sellinie&=8
alle&=9
auswahl&=10
'
tree25&=25 ! Bogen
tree25_adr%=0
backboge&=3
vkreis&=4
kreis3&=5
kreisbog&=6
bogen3&=7
bogen2&=8
ellipse&=9
elbogen&=10
eckrund&=11
'
tree26&=26 ! Koordinaten
tree26_adr%=0
absolut&=2
relativ&=3
polar&=4
'
tree27&=27 ! Calamus Versions Nr.
tree27_adr%=0
calamus_nr&=1
'
tree28&=28 ! GT 6000
tree28_adr%=0
gtscan&=47
gtx&=38
gty&=44
gtb&=42
gth&=43
gtcancel&=46
gtpresca&=45
gtdpi&=35
gtdpimin&=33
gtdpiplu&=34
gtprewin&=1
gtstate&=5
gtkeiner&=9
gtraster&=10
gtweich&=11
gthart&=12
gtkeine&=15
gtrot&=18
gtgruen&=17
gtblau&=16
k0&=22
k1&=23
k2&=24
k3&=25
k4&=26
k5&=27
k6&=28
'
tree29&=29 ! Kosten
tree29_adr%=0
kostfak&=1
sl&=2
gkosten&=4
'
tree30&=30 ! Select Filter
tree30_adr%=0
abs_filter&=1
'
tree31&=31 ! Select Fenster
tree31_adr%=0
ohnecopy&=1
mitcopy&=6
anz_rot&=3
phi_rot&=4
numohne&=5
ausricht_vector&=7
'
tree32&=32 ! Select Spiegel
tree32_adr%=0
anbox&=2
anachse&=1
'
tree33&=33
tree33_adr%=0
teil&=1
'
tree34&=34 ! Schnittpunkt
tree34_adr%=0
backschn&=3
fwdschn&=4
trimm&=5
knack&=6
lot&=7
teilen&=8
lang&=9
schnitt2&=10
schnittn&=11
delseg&=12
delel&=13
schmelz&=14
'
tree35&=35 ! Select Copy
tree35_adr%=0
copysing&=1
copymul&=2
cx&=4
cy&=5
canz&=6
cdist&=7
'
tree36&=36 ! Ausrichten
tree36_adr%=0
a_olinks&=1
a_oben&=2
a_orechts&=3
a_links&=4
a_mitte&=5
a_rechts&=6
a_ulinks&=7
a_unten&=8
a_urechts&=9
'
tree37&=37 ! Scalieren
tree37_adr%=0
scale_interactiv&=1
scale_numerisch&=2
scale_breite&=4
scale_hoehe&=5
'
tree38&=38 ! Ordner
tree38_adr%=0
ordnert&=1
ordnerok&=2
ordnerca&=3
'
tree39&=39 ! Kerning
tree39_adr%=0
kerning_box&=1
kerning_minus&=3
kerning_plus&=4
kerning_last&=2
kerning_next&=5
kerning_exit&=6
kerning_minus2&=9
kerning_plus2&=10
kerning_last2&=8
kerning_next2&=11
kerning_clear&=7
kerning_info&=13
kerning_pair&=15
'
tree40&=40 ! Plotter OUTPUT
tree40_adr%=0
pl100&=3
plschieber&=4
plschere&=7
plschereauf&=5
plscherezu&=6
plschere&=7
'
tree41&=41 ! Select Neigen
tree41_adr%=0
neige_grad&=2
neige_vertical&=3
neige_horizontal&=4
neige_interaktiv&=5
'
' FLAG:
'
undo!=FALSE
geschlossen!=FALSE
ok!=FALSE ! allgemein
layer_geladen!=FALSE ! ist Layer geladen
layer!=FALSE ! soll Layer gezeigt werden
window_fulled!=TRUE ! ist Fenster schon gro₧
voll_bild!=FALSE ! ist Fenster komplett auf Crt
eintragen!=FALSE ! ist eintragen aktiv
bogen!=FALSE
mtext!=FALSE
meditor!=FALSE
datei!=FALSE
fenster!=FALSE
schnittpunktm!=FALSE
loeschen!=FALSE ! ist loeschen aktiv
neues_polygon!=TRUE ! erster Punkt im Polygon
found!=FALSE ! gefunden bei Fangradius
marker!=FALSE ! sollen Marker gezeigt werden
marker_select!=FALSE ! soll Marker selectiert
modified!=FALSE ! wurde Vektorbild geändert
font_geladen!=FALSE ! ist ein Font geladen
outlined!=FALSE ! wurde Bitmap schon outlined
auto_schraff!=TRUE
schraff_fix_abst!=FALSE
einpassen!=FALSE
tangente!=FALSE
tangenten_lock!=TRUE
warn!=FALSE
gp_gl!=FALSE ! HPGL oder GPGL
tasten_rep!=FALSE
absolut!=TRUE
relativ!=FALSE
polar!=FALSE
absolut_old!=FALSE
polar_old!=FALSE
fangklein!=FALSE ! Fangradius gro₧
fadenkreuz!=FALSE
polygonmode!=TRUE ! Polygonmodus
ortho!=FALSE
grid!=FALSE
scrolled!=FALSE
move!=FALSE
drei_d!=FALSE
status_wechsel!=FALSE
grid_wechsel!=FALSE
swap!=FALSE
'
' ARRAY:
'
DIM smfdb%(8),dmfdb%(8),p%(8)
DIM z_smfdb%(8),z_dmfdb%(8),z_p%(8),q_dmfdb%(8)
DIM punkte_x%(p_max%),punkte_y%(p_max%),punkte_def|(p_max%),buffer%(p_max%/2)
DIM x_meta%(127),y_meta%(127),punkte_def1|(32)
ARRAYFILL punkte_def1|(),1
DIM bezier_x&(33),bezier_y&(33)
DIM m$(87)
DIM mk%(60,2)
DIM m_square%(5)
DIM z_editor%(32)
DIM z_ascii%(224),z_kerning&(224*16),z_daten&(224*280),z_pair&(224),z_pair|(224),z_pair_daten|(2000)
DIM sx1%(9),sy1%(9),sx2%(9),sy2%(9),sp1(9),sp2(9)
DIM zeilen_buffer$(60)
rette$=SPACE$(32000)
pfad$=SPACE$(80)
kerning_string$=SPACE$(60)
pfad_pic$=SPACE$(80)
pfad_img$=SPACE$(80)
pfad_vek$=SPACE$(80)
pfad_vek_root$=SPACE$(80)
pfad_cvg$=SPACE$(80)
pfad_fnt$=SPACE$(80)
pfad_cfn$=SPACE$(80)
default_font$=SPACE$(10)
programm$=SPACE$(10)
programm_font$=SPACE$(10)
test_datei$=SPACE$(10)
object$=SPACE$(80)
p_init1$=SPACE$(40)
p_init2$=SPACE$(40)
abc$="CutOut Test"
ma$="M"
da$="D"
cutout_font$="CUTOUTOFN"
calamus_font_grafik$=MKI$(159)+MKI$(15)+MKI$(1)+SPACE$(320)
ok$="OK"
ein_space$=" "
x_y$="X|Y"
erster$="1. "
zweiter$="2. "
help_on$="ON "
help_off$="OFF"
vek$="VEK"
cvg$="CVG"
img$="IMG"
plt$="PLT"
calamus$="CALAMUS"
cutout$="CutOut"
' ****************************************************************************
OPEN "I",#1,"SYS\LANGUAGE.DRV"
LINE INPUT #1,pd_menu$
LINE INPUT #1,pd_datei$
LINE INPUT #1,pd_editieren$
LINE INPUT #1,pd_fenster$
LINE INPUT #1,pd_schnittpunkt$
LINE INPUT #1,pd_bogen$
LINE INPUT #1,pd_text$
LINE INPUT #1,pd_zeicheneditor$
LINE INPUT #1,pd_extra$
LINE INPUT #1,pd_quit$
'
LINE INPUT #1,pd_optionen$
LINE INPUT #1,pd_marker_anzeigen$
LINE INPUT #1,pd_tangenten_anzeigen$
LINE INPUT #1,pd_fangradius_klein$
LINE INPUT #1,pd_polygon_modus$
LINE INPUT #1,pd_schnittpunkt_genau$
LINE INPUT #1,pd_koordinaten$
LINE INPUT #1,pd_element_selektieren$
LINE INPUT #1,pd_polygon_selektieren$
LINE INPUT #1,pd_warnmeldungen$
LINE INPUT #1,pd_skaliere_alles$
LINE INPUT #1,pd_punkte_nivellieren$
LINE INPUT #1,pd_tangente$
LINE INPUT #1,pd_plotflaeche$
LINE INPUT #1,pd_bezier_step_aendern$
LINE INPUT #1,pd_plotter_einstellung$
LINE INPUT #1,pd_kosten_faktor$
LINE INPUT #1,pd_pfad_sichern$
'
LINE INPUT #1,pd_figur$
LINE INPUT #1,pd_rechteck$
LINE INPUT #1,pd_n_eck$
LINE INPUT #1,pd_polygon_outline$
LINE INPUT #1,pd_aequidistante$
LINE INPUT #1,pd_frame$
LINE INPUT #1,pd_polygone_ausrichten$
LINE INPUT #1,pd_polygone_zentrieren$
LINE INPUT #1,pd_polygone_vereinen$
LINE INPUT #1,pd_polygone_fuellen$
LINE INPUT #1,pd_einzelne_punkte_loeschen$
'
LINE INPUT #1,pd_linie$
LINE INPUT #1,pd_bezier_vektor$
LINE INPUT #1,pd_bezier_einfuegen$
LINE INPUT #1,pd_tausche_bezier_vektor$
LINE INPUT #1,pd_knacken$
LINE INPUT #1,pd_trimmen$
LINE INPUT #1,pd_lot$
LINE INPUT #1,pd_verlaengern$
LINE INPUT #1,pd_teilen$
LINE INPUT #1,pd_messen$
LINE INPUT #1,pd_schnittp_2er$
LINE INPUT #1,pd_schnittp_n$
'
LINE INPUT #1,pd_effekt$
LINE INPUT #1,pd_parameter_schraffur$
LINE INPUT #1,pd_polygon_schraffieren$
LINE INPUT #1,pd_alles_schraffieren$
LINE INPUT #1,pd_schatten$
LINE INPUT #1,pd_einpassen$
LINE INPUT #1,pd_kugel$
'
LINE INPUT #1,lade$
LINE INPUT #1,sichere$
LINE INPUT #1,fuege_ein$
LINE INPUT #1,vektor$
LINE INPUT #1,macro$
LINE INPUT #1,daten$
LINE INPUT #1,zeichensatz$
LINE INPUT #1,kein$
LINE INPUT #1,keine$
LINE INPUT #1,ja_nein$
LINE INPUT #1,waehle$
LINE INPUT #1,fehler$
LINE INPUT #1,scannen$
LINE INPUT #1,pre_view$
LINE INPUT #1,ascii_importieren$
LINE INPUT #1,ascii_exportieren$
LINE INPUT #1,schriftblock$
LINE INPUT #1,radius_zu$
LINE INPUT #1,winkel_zu$
LINE INPUT #1,leider$
LINE INPUT #1,winkel_einstellen$
LINE INPUT #1,spiegelachse$
LINE INPUT #1,lupe_mal$
LINE INPUT #1,fensterbereich$
LINE INPUT #1,drehzentrum$
LINE INPUT #1,ordner_exist$
LINE INPUT #1,kein_leer$
LINE INPUT #1,suche_schnittpunkte$
LINE INPUT #1,gleiches_polygon$
LINE INPUT #1,bezugs$
LINE INPUT #1,zentriere$
LINE INPUT #1,huellkurve$
LINE INPUT #1,huellkurve1$
LINE INPUT #1,berechne$
LINE INPUT #1,rechte_taste$
LINE INPUT #1,endpunkt$
LINE INPUT #1,lot_an$
LINE INPUT #1,noname$
LINE INPUT #1,symbol$
LINE INPUT #1,orginal_fenster$
LINE INPUT #1,dmc_font$
LINE INPUT #1,bild_datei_zu$
LINE INPUT #1,stad_laden$
LINE INPUT #1,plotter_ist_off$
LINE INPUT #1,plot_datei$
LINE INPUT #1,kein_treiber$
LINE INPUT #1,schnittstelle_auf$
LINE INPUT #1,polygone_vereinen$
LINE INPUT #1,loesche_einzelne$
LINE INPUT #1,quelle$
LINE INPUT #1,ziel$
LINE INPUT #1,nivelliere$
LINE INPUT #1,alle_daten_l$
LINE INPUT #1,ganzer_zeichensatz$
LINE INPUT #1,font_daten_loeschen$
LINE INPUT #1,zeichen_matrix$
LINE INPUT #1,datei_existiert$
LINE INPUT #1,datei_ueberschreiben$
LINE INPUT #1,glaetten_mit$
LINE INPUT #1,gerade_bezier$
LINE INPUT #1,glaetten$
LINE INPUT #1,bereich$
LINE INPUT #1,path$
LINE INPUT #1,help_mittelpunkt$
LINE INPUT #1,help_radius$
LINE INPUT #1,help_position$
LINE INPUT #1,help_startwinkel$
LINE INPUT #1,help_endwinkel$
LINE INPUT #1,help_polygon$
LINE INPUT #1,help_punkt$
LINE INPUT #1,help_linie$
LINE INPUT #1,help_element$
LINE INPUT #1,help_verrund$
LINE INPUT #1,help_loesche$
LINE INPUT #1,help_trenn$
LINE INPUT #1,help_move$
LINE INPUT #1,help_sel$
LINE INPUT #1,help_move_window$
LINE INPUT #1,help_rahmen$
LINE INPUT #1,help_edit$
LINE INPUT #1,help_bezier$
LINE INPUT #1,help_status$
LINE INPUT #1,help_ortho$
LINE INPUT #1,help_grid$
LINE INPUT #1,help_free$
LINE INPUT #1,help_snap$
LINE INPUT #1,help_editor$
LINE INPUT #1,help_pfad$
CLOSE #1
' ****************************************************************************
integer%=VARPTR(punkte_x%(1))-VARPTR(punkte_x%(0)) ! Länge in Bytes Integer
'
z_editor%(0)=2048 ! Top Line Y
z_editor%(1)=3072 ! Ascent Line Y
z_editor%(2)=6144 ! Half Line Y
z_editor%(3)=11264 ! Base Line Y
z_editor%(4)=13952 ! Descent Line Y
z_editor%(5)=14336 ! Bottom Line Y
'
z_editor%(6)=0 ! Matrix links X
z_editor%(7)=16384 ! Matrix rechts X
z_editor%(8)=1280 ! Kerning links X
z_editor%(9)=1280 ! Kerning links X
z_editor%(10)=1280 ! Kerning links X
z_editor%(11)=1280 ! Kerning links X
z_editor%(12)=1280 ! Kerning links X
z_editor%(13)=1280 ! Kerning links X
z_editor%(14)=1280 ! Kerning links X
z_editor%(15)=1280 ! Kerning links X
z_editor%(16)=15104 ! Kerning rechts X
z_editor%(17)=15104 ! Kerning rechts X
z_editor%(18)=15104 ! Kerning rechts X
z_editor%(19)=15104 ! Kerning rechts X
z_editor%(20)=15104 ! Kerning rechts X
z_editor%(21)=15104 ! Kerning rechts X
z_editor%(22)=15104 ! Kerning rechts X
z_editor%(23)=15104 ! Kerning rechts X
z_editor%(24)=z_editor%(0) ! Kerning Y
z_editor%(25)=(z_editor%(5)-z_editor%(0))/8 ! Kerning Y
z_editor%(26)=z_editor%(24)+z_editor%(25) ! Kerning Y
z_editor%(27)=z_editor%(26)+z_editor%(25) ! Kerning Y
z_editor%(28)=z_editor%(27)+z_editor%(25) ! Kerning Y
z_editor%(29)=z_editor%(28)+z_editor%(25) ! Kerning Y
z_editor%(30)=z_editor%(29)+z_editor%(25) ! Kerning Y
z_editor%(31)=z_editor%(30)+z_editor%(25) ! Kerning Y
z_editor%(32)=0 ! Matrix oben Y
'
' ******************************************************************************
' * *
' * MENU INITIALISIERUNG *
' * *
' ******************************************************************************
'
BMOVE V:serien_nummer$,V:serien_nummer,8
BMOVE V:serien_nummer_vergleich$,V:serien_nummer_vergleich,8
regist_nr%=serien_nummer_vergleich
IF serien_nummer<>(serien_nummer_vergleich XOR magic%)
PRINT "SORRY HACKER"
PAUSE 300
SYSTEM
ENDIF
INLINE zasm_ptr%,4136
INLINE pack_img%,958
INLINE calc_bezier%,1050
INLINE p_num%,360
INLINE find_line%,356
INLINE kontour%,216
INLINE staddec%,184
INLINE imgdec%,228
INLINE findexcept%,52
INLINE findpointexcept%,70
mfang$=MKI$(7)+MKI$(7)+MKI$(1)+MKI$(0)+MKI$(1)
mfang$=mfang$+MKI$(&X1111111111111110)
mfang$=mfang$+MKI$(&X1111111111111110)
mfang$=mfang$+MKI$(&X1100001110000110)
mfang$=mfang$+MKI$(&X1100001110000110)
mfang$=mfang$+MKI$(&X1100001110000110)
mfang$=mfang$+MKI$(&X1100001110000110)
mfang$=mfang$+MKI$(&X1111110001111110)
mfang$=mfang$+MKI$(&X1111110001111110)
mfang$=mfang$+MKI$(&X1111110001111110)
mfang$=mfang$+MKI$(&X1100001110000110)
mfang$=mfang$+MKI$(&X1100001110000110)
mfang$=mfang$+MKI$(&X1100001110000110)
mfang$=mfang$+MKI$(&X1100001110000110)
mfang$=mfang$+MKI$(&X1111111111111110)
mfang$=mfang$+MKI$(&X1111111111111110)
mfang$=mfang$+MKI$(&X0)
'
mfang$=mfang$+MKI$(&X1111111111111110)
mfang$=mfang$+MKI$(&X1000000100000010)
mfang$=mfang$+MKI$(&X1000000100000010)
mfang$=mfang$+MKI$(&X1000000100000010)
mfang$=mfang$+MKI$(&X1000000100000010)
mfang$=mfang$+MKI$(&X1000000100000010)
mfang$=mfang$+MKI$(&X1000000000000010)
mfang$=mfang$+MKI$(&X1111110001111110)
mfang$=mfang$+MKI$(&X1000000000000010)
mfang$=mfang$+MKI$(&X1000000100000010)
mfang$=mfang$+MKI$(&X1000000100000010)
mfang$=mfang$+MKI$(&X1000000100000010)
mfang$=mfang$+MKI$(&X1000000100000010)
mfang$=mfang$+MKI$(&X1000000100000010)
mfang$=mfang$+MKI$(&X1111111111111110)
mfang$=mfang$+MKI$(&X0)
'
mfang_klein$=MKI$(7)+MKI$(7)+MKI$(1)+MKI$(0)+MKI$(1)
mfang_klein$=mfang_klein$+MKI$(&X0)
mfang_klein$=mfang_klein$+MKI$(&X0)
mfang_klein$=mfang_klein$+MKI$(&X11111111111000)
mfang_klein$=mfang_klein$+MKI$(&X11111111111000)
mfang_klein$=mfang_klein$+MKI$(&X11001110011000)
mfang_klein$=mfang_klein$+MKI$(&X11001110011000)
mfang_klein$=mfang_klein$+MKI$(&X11110001111000)
mfang_klein$=mfang_klein$+MKI$(&X11110001111000)
mfang_klein$=mfang_klein$+MKI$(&X11110001111000)
mfang_klein$=mfang_klein$+MKI$(&X11001110011000)
mfang_klein$=mfang_klein$+MKI$(&X11001110011000)
mfang_klein$=mfang_klein$+MKI$(&X11111111111000)
mfang_klein$=mfang_klein$+MKI$(&X11111111111000)
mfang_klein$=mfang_klein$+MKI$(&X0)
mfang_klein$=mfang_klein$+MKI$(&X0)
mfang_klein$=mfang_klein$+MKI$(&X0)
'
mfang_klein$=mfang_klein$+MKI$(&X0)
mfang_klein$=mfang_klein$+MKI$(&X0)
mfang_klein$=mfang_klein$+MKI$(&X0)
mfang_klein$=mfang_klein$+MKI$(&X1111111110000)
mfang_klein$=mfang_klein$+MKI$(&X1000100010000)
mfang_klein$=mfang_klein$+MKI$(&X1000100010000)
mfang_klein$=mfang_klein$+MKI$(&X1000000010000)
mfang_klein$=mfang_klein$+MKI$(&X1110001110000)
mfang_klein$=mfang_klein$+MKI$(&X1000000010000)
mfang_klein$=mfang_klein$+MKI$(&X1000100010000)
mfang_klein$=mfang_klein$+MKI$(&X1000100010000)
mfang_klein$=mfang_klein$+MKI$(&X1111111110000)
mfang_klein$=mfang_klein$+MKI$(&X0)
mfang_klein$=mfang_klein$+MKI$(&X0)
mfang_klein$=mfang_klein$+MKI$(&X0)
mfang_klein$=mfang_klein$+MKI$(&X0)
'
mdaten$=MKI$(7)+MKI$(7)+MKI$(1)+MKI$(0)+MKI$(1)
mdaten$=mdaten$+MKI$(&X1110000000)
mdaten$=mdaten$+MKI$(&X1110000000)
mdaten$=mdaten$+MKI$(&X1110000000)
mdaten$=mdaten$+MKI$(&X1110000000)
mdaten$=mdaten$+MKI$(&X1110000000)
mdaten$=mdaten$+MKI$(&X1110000000)
mdaten$=mdaten$+MKI$(&X1111110001111110)
mdaten$=mdaten$+MKI$(&X1111110001111110)
mdaten$=mdaten$+MKI$(&X1111110001111110)
mdaten$=mdaten$+MKI$(&X1110000000)
mdaten$=mdaten$+MKI$(&X1110000000)
mdaten$=mdaten$+MKI$(&X1110000000)
mdaten$=mdaten$+MKI$(&X1110000000)
mdaten$=mdaten$+MKI$(&X1110000000)
mdaten$=mdaten$+MKI$(&X1110000000)
mdaten$=mdaten$+MKI$(&X0)
'
mdaten$=mdaten$+MKI$(&X100000000)
mdaten$=mdaten$+MKI$(&X100000000)
mdaten$=mdaten$+MKI$(&X100000000)
mdaten$=mdaten$+MKI$(&X100000000)
mdaten$=mdaten$+MKI$(&X100000000)
mdaten$=mdaten$+MKI$(&X100000000)
mdaten$=mdaten$+MKI$(&X0)
mdaten$=mdaten$+MKI$(&X1111110001111110)
mdaten$=mdaten$+MKI$(&X0)
mdaten$=mdaten$+MKI$(&X100000000)
mdaten$=mdaten$+MKI$(&X100000000)
mdaten$=mdaten$+MKI$(&X100000000)
mdaten$=mdaten$+MKI$(&X100000000)
mdaten$=mdaten$+MKI$(&X100000000)
mdaten$=mdaten$+MKI$(&X100000000)
mdaten$=mdaten$+MKI$(&X0)
'
schwer$=MKI$(7)+MKI$(7)+MKI$(-1)+MKI$(0)+MKI$(1)
schwer$=schwer$+MKI$(&X0) !
schwer$=schwer$+MKI$(&X0)
schwer$=schwer$+MKI$(&X11111000000) !
schwer$=schwer$+MKI$(&X11111000000)
schwer$=schwer$+MKI$(&X1100111110000) !
schwer$=schwer$+MKI$(&X1100111110000)
schwer$=schwer$+MKI$(&X10000111111000) !
schwer$=schwer$+MKI$(&X10000111111000)
schwer$=schwer$+MKI$(&X10000111111000) !
schwer$=schwer$+MKI$(&X10000111111000)
schwer$=schwer$+MKI$(&X100000111111100) !
schwer$=schwer$+MKI$(&X100000111111100)
schwer$=schwer$+MKI$(&X100000111111100) !
schwer$=schwer$+MKI$(&X100000111111100)
schwer$=schwer$+MKI$(&X111111011111100) !!
schwer$=schwer$+MKI$(&X111111011111100)
schwer$=schwer$+MKI$(&X111111100000100) !
schwer$=schwer$+MKI$(&X111111100000100)
schwer$=schwer$+MKI$(&X111111100000100) !
schwer$=schwer$+MKI$(&X111111100000100)
schwer$=schwer$+MKI$(&X11111100001000) !
schwer$=schwer$+MKI$(&X11111100001000)
schwer$=schwer$+MKI$(&X11111100001000) !
schwer$=schwer$+MKI$(&X11111100001000)
schwer$=schwer$+MKI$(&X1111100110000) !
schwer$=schwer$+MKI$(&X1111100110000)
schwer$=schwer$+MKI$(&X11111000000) !
schwer$=schwer$+MKI$(&X11111000000)
schwer$=schwer$+MKI$(&X0) !
schwer$=schwer$+MKI$(&X0)
schwer$=schwer$+MKI$(&X0) !
schwer$=schwer$+MKI$(&X0)
pfad_read
reset
RESERVE -64*1024
DIM work%((FRE(0)-80*1024)/4)
daten_ptr%=V:work%(0)
work_space%=DIM?(work%())*4
KEYPAD 8
~RSRC_LOAD("SYS\CUTOUT.RSC")
~RSRC_GADDR(0,tree00&,tree0_adr%)
~RSRC_GADDR(0,tree01&,tree1_adr%)
~RSRC_GADDR(0,tree02&,tree2_adr%)
~RSRC_GADDR(0,tree03&,tree3_adr%)
~RSRC_GADDR(0,tree04&,tree4_adr%)
~RSRC_GADDR(0,tree05&,tree5_adr%)
~RSRC_GADDR(0,tree06&,tree6_adr%)
~RSRC_GADDR(0,tree07&,tree7_adr%)
~RSRC_GADDR(0,tree08&,tree8_adr%)
~RSRC_GADDR(0,tree09&,tree9_adr%)
~RSRC_GADDR(0,tree10&,tree10_adr%)
~RSRC_GADDR(0,tree11&,tree11_adr%)
~RSRC_GADDR(0,tree12&,tree12_adr%)
~RSRC_GADDR(0,tree13&,tree13_adr%)
~RSRC_GADDR(0,tree14&,tree14_adr%)
~RSRC_GADDR(0,tree15&,tree15_adr%)
~RSRC_GADDR(0,tree16&,tree16_adr%)
~RSRC_GADDR(0,tree17&,tree17_adr%)
~RSRC_GADDR(0,tree18&,tree18_adr%)
~RSRC_GADDR(0,tree19&,tree19_adr%)
~RSRC_GADDR(0,tree20&,tree20_adr%)
~RSRC_GADDR(0,tree21&,tree21_adr%)
~RSRC_GADDR(0,tree22&,tree22_adr%)
~RSRC_GADDR(0,tree23&,tree23_adr%)
~RSRC_GADDR(0,tree24&,tree24_adr%)
~RSRC_GADDR(0,tree25&,tree25_adr%)
~RSRC_GADDR(0,tree26&,tree26_adr%)
~RSRC_GADDR(0,tree27&,tree27_adr%)
~RSRC_GADDR(0,tree28&,tree28_adr%)
~RSRC_GADDR(0,tree29&,tree29_adr%)
~RSRC_GADDR(0,tree30&,tree30_adr%)
~RSRC_GADDR(0,tree31&,tree31_adr%)
~RSRC_GADDR(0,tree32&,tree32_adr%)
~RSRC_GADDR(0,tree33&,tree33_adr%)
~RSRC_GADDR(0,tree34&,tree34_adr%)
~RSRC_GADDR(0,tree35&,tree35_adr%)
~RSRC_GADDR(0,tree36&,tree36_adr%)
~RSRC_GADDR(0,tree37&,tree37_adr%)
~RSRC_GADDR(0,tree38&,tree38_adr%)
~RSRC_GADDR(0,tree39&,tree39_adr%)
~RSRC_GADDR(0,tree40&,tree40_adr%)
~RSRC_GADDR(0,tree41&,tree41_adr%)
~FORM_CENTER(tree6_adr%)
~FORM_CENTER(tree7_adr%)
~FORM_CENTER(tree8_adr%)
~FORM_CENTER(tree10_adr%)
~FORM_CENTER(tree11_adr%)
~FORM_CENTER(tree12_adr%)
~FORM_CENTER(tree13_adr%)
~FORM_CENTER(tree14_adr%)
~FORM_CENTER(tree15_adr%)
~FORM_CENTER(tree16_adr%)
~FORM_CENTER(tree17_adr%)
~FORM_CENTER(tree18_adr%)
~FORM_CENTER(tree19_adr%)
~FORM_CENTER(tree20_adr%)
~FORM_CENTER(tree21_adr%)
~FORM_CENTER(tree22_adr%)
~FORM_CENTER(tree23_adr%)
~FORM_CENTER(tree24_adr%)
~FORM_CENTER(tree26_adr%)
~FORM_CENTER(tree27_adr%)
~FORM_CENTER(tree28_adr%)
~FORM_CENTER(tree29_adr%)
~FORM_CENTER(tree30_adr%)
~FORM_CENTER(tree31_adr%)
~FORM_CENTER(tree32_adr%)
~FORM_CENTER(tree33_adr%)
~FORM_CENTER(tree35_adr%)
~FORM_CENTER(tree36_adr%)
~FORM_CENTER(tree37_adr%)
~FORM_CENTER(tree38_adr%)
~FORM_CENTER(tree39_adr%)
~FORM_CENTER(tree40_adr%)
~FORM_CENTER(tree41_adr%)
xt6&=DPEEK(tree6_adr%+16)
yt6&=DPEEK(tree6_adr%+18)
bt6&=DPEEK(tree6_adr%+20)
ht6&=DPEEK(tree6_adr%+22)
xt7&=DPEEK(tree7_adr%+16)
yt7&=DPEEK(tree7_adr%+18)
bt7&=DPEEK(tree7_adr%+20)
ht7&=DPEEK(tree7_adr%+22)
xt8&=DPEEK(tree8_adr%+16)
yt8&=DPEEK(tree8_adr%+18)
bt8&=DPEEK(tree8_adr%+20)
ht8&=DPEEK(tree8_adr%+22)
xt10&=DPEEK(tree10_adr%+16)
yt10&=DPEEK(tree10_adr%+18)
bt10&=DPEEK(tree10_adr%+20)
ht10&=DPEEK(tree10_adr%+22)
xt11&=DPEEK(tree11_adr%+16)
yt11&=DPEEK(tree11_adr%+18)
bt11&=DPEEK(tree11_adr%+20)
ht11&=DPEEK(tree11_adr%+22)
xt12&=DPEEK(tree12_adr%+16)
yt12&=DPEEK(tree12_adr%+18)
bt12&=DPEEK(tree12_adr%+20)
ht12&=DPEEK(tree12_adr%+22)
xt13&=DPEEK(tree13_adr%+16)
yt13&=DPEEK(tree13_adr%+18)
bt13&=DPEEK(tree13_adr%+20)
ht13&=DPEEK(tree13_adr%+22)
xt14&=DPEEK(tree14_adr%+16)
yt14&=DPEEK(tree14_adr%+18)
bt14&=DPEEK(tree14_adr%+20)
ht14&=DPEEK(tree14_adr%+22)
xt15&=DPEEK(tree15_adr%+16)
yt15&=DPEEK(tree15_adr%+18)
bt15&=DPEEK(tree15_adr%+20)
ht15&=DPEEK(tree15_adr%+22)
xt16&=DPEEK(tree16_adr%+16)
yt16&=DPEEK(tree16_adr%+18)
bt16&=DPEEK(tree16_adr%+20)
ht16&=DPEEK(tree16_adr%+22)
xt17&=DPEEK(tree17_adr%+16)
yt17&=DPEEK(tree17_adr%+18)
bt17&=DPEEK(tree17_adr%+20)
ht17&=DPEEK(tree17_adr%+22)
xt18&=DPEEK(tree18_adr%+16)
yt18&=DPEEK(tree18_adr%+18)
bt18&=DPEEK(tree18_adr%+20)
ht18&=DPEEK(tree18_adr%+22)
xt19&=DPEEK(tree19_adr%+16)
yt19&=DPEEK(tree19_adr%+18)
bt19&=DPEEK(tree19_adr%+20)
ht19&=DPEEK(tree19_adr%+22)
xt20&=DPEEK(tree20_adr%+16)
yt20&=DPEEK(tree20_adr%+18)
bt20&=DPEEK(tree20_adr%+20)
ht20&=DPEEK(tree20_adr%+22)
xt21&=DPEEK(tree21_adr%+16)
yt21&=DPEEK(tree21_adr%+18)
bt21&=DPEEK(tree21_adr%+20)
ht21&=DPEEK(tree21_adr%+22)
xt22&=DPEEK(tree22_adr%+16)
yt22&=DPEEK(tree22_adr%+18)
bt22&=DPEEK(tree22_adr%+20)
ht22&=DPEEK(tree22_adr%+22)
xt23&=DPEEK(tree23_adr%+16)
yt23&=DPEEK(tree23_adr%+18)
bt23&=DPEEK(tree23_adr%+20)
ht23&=DPEEK(tree23_adr%+22)
DPOKE tree24_adr%+16,DPEEK(tree24_adr%+16)+200
xt24&=DPEEK(tree24_adr%+16)
yt24&=DPEEK(tree24_adr%+18)
bt24&=DPEEK(tree24_adr%+20)
ht24&=DPEEK(tree24_adr%+22)
xt26&=DPEEK(tree26_adr%+16)
yt26&=DPEEK(tree26_adr%+18)
bt26&=DPEEK(tree26_adr%+20)
ht26&=DPEEK(tree26_adr%+22)
xt27&=DPEEK(tree27_adr%+16)
yt27&=DPEEK(tree27_adr%+18)
bt27&=DPEEK(tree27_adr%+20)
ht27&=DPEEK(tree27_adr%+22)
xt28&=DPEEK(tree28_adr%+16)
yt28&=DPEEK(tree28_adr%+18)
bt28&=DPEEK(tree28_adr%+20)
ht28&=DPEEK(tree28_adr%+22)
xt29&=DPEEK(tree29_adr%+16)
yt29&=DPEEK(tree29_adr%+18)
bt29&=DPEEK(tree29_adr%+20)
ht29&=DPEEK(tree29_adr%+22)
xt30&=DPEEK(tree30_adr%+16)
yt30&=DPEEK(tree30_adr%+18)
bt30&=DPEEK(tree30_adr%+20)
ht30&=DPEEK(tree30_adr%+22)
xt31&=DPEEK(tree31_adr%+16)
yt31&=DPEEK(tree31_adr%+18)
bt31&=DPEEK(tree31_adr%+20)
ht31&=DPEEK(tree31_adr%+22)
xt32&=DPEEK(tree32_adr%+16)
yt32&=DPEEK(tree32_adr%+18)
bt32&=DPEEK(tree32_adr%+20)
ht32&=DPEEK(tree32_adr%+22)
xt35&=DPEEK(tree35_adr%+16)
yt35&=DPEEK(tree35_adr%+18)
bt35&=DPEEK(tree35_adr%+20)
ht35&=DPEEK(tree35_adr%+22)
xt33&=DPEEK(tree33_adr%+16)
yt33&=DPEEK(tree33_adr%+18)
bt33&=DPEEK(tree33_adr%+20)
ht33&=DPEEK(tree33_adr%+22)
xt36&=DPEEK(tree36_adr%+16)
yt36&=DPEEK(tree36_adr%+18)
bt36&=DPEEK(tree36_adr%+20)
ht36&=DPEEK(tree36_adr%+22)
xt37&=DPEEK(tree37_adr%+16)
yt37&=DPEEK(tree37_adr%+18)
bt37&=DPEEK(tree37_adr%+20)
ht37&=DPEEK(tree37_adr%+22)
xt38&=DPEEK(tree38_adr%+16)
yt38&=DPEEK(tree38_adr%+18)
bt38&=DPEEK(tree38_adr%+20)
ht38&=DPEEK(tree38_adr%+22)
xt39&=DPEEK(tree39_adr%+16)
yt39&=DPEEK(tree39_adr%+18)
bt39&=DPEEK(tree39_adr%+20)
ht39&=DPEEK(tree39_adr%+22)
xt40&=DPEEK(tree40_adr%+16)
yt40&=DPEEK(tree40_adr%+18)
bt40&=DPEEK(tree40_adr%+20)
ht40&=DPEEK(tree40_adr%+22)
xt41&=DPEEK(tree41_adr%+16)
yt41&=DPEEK(tree41_adr%+18)
bt41&=DPEEK(tree41_adr%+20)
ht41&=DPEEK(tree41_adr%+22)
bt_output&=OB_W(tree40_adr%,pl100&)
CHAR{{OB_SPEC(tree6_adr%,t_hoehe&)}}=STR$(INT(zeichen_hoehe%/100))
CHAR{{OB_SPEC(tree7_adr%,zabs&)}}=STR$(INT(zeilen_abstand_prozent%))
CHAR{{OB_SPEC(tree9_adr%,z_char&)}}=CHR$(z_ascii_old%+32)
CHAR{{OB_SPEC(tree8_adr%,string_text&)}}=abc$
CHAR{{OB_SPEC(tree12_adr%,bstep&)}}=STR$(b_vari/100)
CHAR{{OB_SPEC(tree13_adr%,punkte&)}}=STR$(pointer%)
CHAR{{OB_SPEC(tree13_adr%,rest&)}}=STR$(p_max%-pointer%)
CHAR{{OB_SPEC(tree13_adr%,version&)}}=revision$
CHAR{{OB_SPEC(tree14_adr%,rx1&)}}=STR$(folie_x%)
CHAR{{OB_SPEC(tree14_adr%,ry1&)}}=STR$(folie_y%)
CHAR{{OB_SPEC(tree14_adr%,rx2&)}}=STR$(folie_x2%)
CHAR{{OB_SPEC(tree14_adr%,ry2&)}}=STR$(folie_y2%)
CHAR{{OB_SPEC(tree14_adr%,rx3&)}}=STR$(folie_x3%)
CHAR{{OB_SPEC(tree14_adr%,ry3&)}}=STR$(folie_y3%)
CHAR{{OB_SPEC(tree15_adr%,p_init1&)}}=p_init1$
CHAR{{OB_SPEC(tree15_adr%,p_init2&)}}=p_init2$
CHAR{{OB_SPEC(tree15_adr%,overcut&)}}=STR$(overcut|/10)
CHAR{{OB_SPEC(tree15_adr%,ma&)}}=ma$
CHAR{{OB_SPEC(tree15_adr%,da&)}}=da$
CHAR{{OB_SPEC(tree17_adr%,outl&)}}="3.0"
CHAR{{OB_SPEC(tree18_adr%,schraffd&)}}=STR$(schraff_dist/100)
CHAR{{OB_SPEC(tree18_adr%,schraffi&)}}=STR$(schraff_inc/100)
CHAR{{OB_SPEC(tree18_adr%,schraffw&)}}=STR$(schraff_winkel)
CHAR{{OB_SPEC(tree18_adr%,schrafix&)}}=STR$(schraff_fix_abst)
CHAR{{OB_SPEC(tree21_adr%,t_step&)}}=STR$(bit_count_max|)
CHAR{{OB_SPEC(tree21_adr%,t_gerade&)}}=STR$(geraden_fehler|)
CHAR{{OB_SPEC(tree21_adr%,t_schmutz&)}}=STR$(schmutz_filter%)
CHAR{{OB_SPEC(tree21_adr%,bschwelle&)}}=STR$(lange_gerade%/100)
CHAR{{OB_SPEC(tree21_adr%,knickwinkel&)}}=STR$(CINT(DEG(knick_winkel_max)))
CHAR{{OB_SPEC(tree21_adr%,bogen_max&)}}=STR$(CINT(DEG(bogen_max*2)))
CHAR{{OB_SPEC(tree21_adr%,abweichung_gerade&)}}=STR$(abweichung_gerade%/100)
CHAR{{OB_SPEC(tree22_adr%,scann_x&)}}="1664"
CHAR{{OB_SPEC(tree22_adr%,scann_y&)}}="800"
CHAR{{OB_SPEC(tree23_adr%,radius&)}}="10"
CHAR{{OB_SPEC(tree27_adr%,calamus_nr&)}}=STR$(calamus_nr%)
CHAR{{OB_SPEC(tree29_adr%,kostfak&)}}=STR$(kostfak)
CHAR{{OB_SPEC(tree31_adr%,anz_rot&)}}="3"
CHAR{{OB_SPEC(tree31_adr%,phi_rot&)}}="90"
OB_STATE(tree15_adr%,rs232&)=state_rs232&+16
OB_STATE(tree15_adr%,cent&)=state_rs232& XOR 1+16
OB_STATE(tree15_adr%,hp&)=state_hp&+16
OB_STATE(tree15_adr%,gp&)=state_hp& XOR 1+16
OB_STATE(tree26_adr%,absolut&)=absolut!+18
OB_STATE(tree26_adr%,relativ&)=absolut!+17
OB_STATE(tree26_adr%,polar&)=absolut!+17
IF gdu=1
OB_STATE(tree15_adr%,gdu01&)=17
ELSE
IF gdu=2.5
OB_STATE(tree15_adr%,gdu025&)=17
ELSE
IF gdu=5
OB_STATE(tree15_adr%,gdu05&)=17
ELSE
OB_STATE(tree15_adr%,gdu1&)=17
ENDIF
ENDIF
ENDIF
OB_STATE(tree1_adr%,lock&)=1
IF mimaki!
OB_STATE(tree15_adr%,gdu05&)=17
OB_STATE(tree15_adr%,gdu01&)=8
OB_STATE(tree15_adr%,gdu025&)=8
OB_STATE(tree15_adr%,gdu1&)=8
OB_STATE(tree15_adr%,rs232&)=17
OB_STATE(tree15_adr%,mgl&)=17
OB_STATE(tree15_adr%,cent&)=16
OB_STATE(tree15_adr%,hp&)=16
OB_STATE(tree15_adr%,gp&)=16
ELSE
OB_STATE(tree15_adr%,mgl&)=8
ENDIF
~WIND_GET(0,4) ! get desk size
BMOVE GINTOUT+2,tree0_adr%+16,8 ! set into rsc
BMOVE GINTOUT+2,tree1_adr%+16,8 ! set into rsc
BMOVE GINTOUT+2,tree2_adr%+16,8 ! set into rsc
BMOVE GINTOUT+2,tree3_adr%+16,8 ! set into rsc
BMOVE GINTOUT+2,tree4_adr%+16,8 ! set into rsc
BMOVE GINTOUT+2,tree5_adr%+16,8 ! set into rsc
BMOVE GINTOUT+2,tree9_adr%+16,8 ! set into rsc
BMOVE GINTOUT+2,tree25_adr%+16,8 ! set into rsc
BMOVE GINTOUT+2,tree34_adr%+16,8 ! set into rsc
wind_newdesk(tree0_adr%,0) ! install Datei Baum
IF default_font$<>""
datei$=ein_space$
IF EXIST(pfad_fnt$+"\"+default_font$)
load_font(pfad_fnt$+"\"+default_font$)
programm_font$=LEFT$(default_font$,LEN(default_font$)-4)
ELSE
make_new_font(-1)
ENDIF
ELSE
make_new_font(-1)
ENDIF
m$(0)=""
m$(1)=" CUTOUT"
m$(2)="--------------------"
m$(3)=CHR$(2)
m$(4)=CHR$(3)
m$(5)=CHR$(4)
m$(6)=CHR$(5)
m$(7)=CHR$(6)
m$(8)=CHR$(7)
m$(9)=CHR$(8)
m$(10)=""
m$(11)=pd_menu$
m$(12)=pd_datei$
m$(13)=pd_editieren$
m$(14)=pd_fenster$
m$(15)=pd_schnittpunkt$
m$(16)=pd_bogen$
m$(17)="----------------------"
m$(18)=pd_text$
m$(19)=pd_zeicheneditor$
m$(20)=m$(17)
m$(21)=pd_extra$
m$(22)=m$(17)
m$(23)=pd_quit$
m$(24)=""
m$(25)=pd_optionen$
m$(26)=pd_marker_anzeigen$
m$(27)=pd_tangenten_anzeigen$
m$(28)=pd_fangradius_klein$
m$(29)=pd_polygon_modus$
m$(30)=pd_schnittpunkt_genau$
m$(31)=pd_koordinaten$
m$(32)=pd_element_selektieren$
m$(33)=pd_polygon_selektieren$
m$(34)=pd_warnmeldungen$
m$(35)="---------------------------"
m$(36)=pd_skaliere_alles$
m$(37)=m$(35)
m$(38)=pd_punkte_nivellieren$
m$(39)=pd_tangente$
m$(40)=m$(35)
m$(41)=pd_plotflaeche$
m$(42)=pd_bezier_step_aendern$
m$(43)=pd_plotter_einstellung$
m$(44)=pd_kosten_faktor$
m$(45)=pd_pfad_sichern$
m$(46)=""
m$(47)=pd_figur$
m$(48)=pd_rechteck$
m$(49)=pd_n_eck$
m$(50)=pd_polygon_outline$
m$(51)=pd_aequidistante$
m$(52)=pd_frame$
m$(53)="---------------------------"
m$(54)=pd_polygone_ausrichten$
m$(55)=pd_polygone_zentrieren$
m$(56)=pd_polygone_vereinen$
m$(57)=pd_polygone_fuellen$
m$(58)=m$(53)
m$(59)=pd_einzelne_punkte_loeschen$
m$(60)=""
m$(61)=pd_linie$
m$(62)=pd_bezier_vektor$
m$(63)=pd_bezier_einfuegen$
m$(64)=pd_tausche_bezier_vektor$
m$(65)=m$(53)
m$(66)=pd_knacken$
m$(67)=pd_trimmen$
m$(68)=pd_lot$
m$(69)=pd_verlaengern$
m$(70)=pd_teilen$
m$(71)=pd_messen$
m$(72)=m$(53)
m$(73)=pd_schnittp_2er$
m$(74)=pd_schnittp_n$
m$(75)=""
m$(76)=pd_effekt$
m$(77)=pd_parameter_schraffur$
m$(78)=pd_polygon_schraffieren$
m$(79)=pd_alles_schraffieren$
m$(80)="------------------------"
m$(81)=pd_schatten$
m$(82)=pd_einpassen$
m$(83)=m$(80)
m$(84)=pd_kugel$
m$(85)=""
m$(86)=""
MENU m$()
IF fangklein!
MENU 28,1
ENDIF
IF polygonmode!
MENU 29,1
ENDIF
IF warn!
MENU 34,1
ENDIF
CLIP 0,0,639,399 OFFSET 0,0
DEFTEXT 1,0,0,6
COLOR 1
TEXT 400,7,"Zoom X:"
TEXT 400,15,"Zoom Y:"
TEXT 540,7,"X:"
TEXT 540,15,"Y:"
DEFTEXT 1,0,0,4
TEXT 624,7,"mm"
TEXT 624,15,"mm"
LINE 536,0,536,20
LINE 396,0,396,20
'
~FORM_DIAL(3,0,0,0,0,0,0,desk_breite&,desk_hoehe&) !redraw all
'
layer!=FALSE
zoom=1
x_layer%=folie_x%
y_layer%=folie_y%
x_layero%=x_layer%
y_layero%=y_layer%
res_x%=x_layer%
res_y%=y_layer%
x_offset&=0
y_offset&=0
res_x_old%=x_layer%
res_y_old%=y_layer%
x_offset_old&=0
y_offset_old&=0
pointer%=0
get_desktop
scrb_old&=scrb&
scrh_old&=scrh&
CLOSEW 1
programm$=noname$
INT{WINDTAB+2}=&X111111000000
INT{WINDTAB+4}=scrx&
INT{WINDTAB+6}=scry&
INT{WINDTAB+8}=scrb&
INT{WINDTAB+10}=scrh&
help_titel
OPENW 1
calc_slid
~WIND_GET(1,4,x_win&,y_win&,b_window&,h_window&)
neues_polygon!=TRUE
do_redraw
DEFMOUSE 3
p_zoom(zoom*100,zoom*100)
CHAR{{OB_SPEC(tree14_adr%,rx1&)}}=STR$(x_layer%)
CHAR{{OB_SPEC(tree14_adr%,ry1&)}}=STR$(y_layer%)
' test_vollbild
'
~OBJC_OFFSET(tree28_adr%,gtprewin&,gtxv&,gtyv&)
gtxv&=gtxv&-x_win&+1
gtyv&=gtyv&-y_win&+1
'
ON MENU MESSAGE GOSUB message
ON MENU BUTTON 1,1,1 GOSUB button
ON MENU GOSUB menu
ON MENU KEY GOSUB key
' ON ERROR GOSUB fehler
'
'
REPEAT
ON MENU
UNTIL end!
'
IF modified!
IF pointer%>0
ALERT 3,"| "+sichere$+daten$,1,ja_nein$,i%
IF i%=1
@save_vektor
ENDIF
ENDIF
ENDIF
'
' Bei fertigen Programmen hier nur QUIT
'
reset
~WIND_GET(0,10)
IF DPEEK(GINTOUT+2)
ALERT 1,"Accessories",1,"Close|Quit",i%
IF i%=2
QUIT
ENDIF
REPEAT
~WIND_GET(0,10)
UNTIL DPEEK(GINTOUT+2)=0
ENDIF
RESERVE ! XBIOS(2)-HIMEM+FRE(0)-16384
'
PROCEDURE fehler
ALERT 1,fehler$,1,leider$,i%
' RESUME NEXT
RETURN
'
'
PROCEDURE get_undo
LOCAL dp%
dp%=daten_ptr%
IF (pointer%*9+1<work_space%) AND (NOT layer_geladen!)
LONG{dp%}=pointer%
ADD dp%,4
undo!=TRUE
BMOVE VARPTR(punkte_x%(0)),dp%,pointer%*4
ADD dp%,pointer%*4
BMOVE VARPTR(punkte_y%(0)),dp%,pointer%*4
ADD dp%,pointer%*4
BMOVE VARPTR(punkte_def|(0)),dp%,pointer%
undo!=TRUE
ELSE
undo!=FALSE
ENDIF
RETURN
'
PROCEDURE put_undo
LOCAL dp%
IF undo!
dp%=daten_ptr%
pointer%=LONG{dp%}
ADD dp%,4
BMOVE dp%,VARPTR(punkte_x%(0)),pointer%*4
ADD dp%,pointer%*4
BMOVE dp%,VARPTR(punkte_y%(0)),pointer%*4
ADD dp%,pointer%*4
BMOVE dp%,VARPTR(punkte_def|(0)),pointer%
undo!=FALSE
do_redraw
ENDIF
RETURN
'
PROCEDURE output_drucker
LOCAL handle&,x_resi&,y_resi&,z_old
IF GDOS?
ERASE work%()
IF FRE(0)>250000
RESERVE -250000
handle&=V_OPNWK(21)
IF handle&<>0
V~H=handle&
x_resi&=INTOUT(0)
y_resi&=INTOUT(1)
~V_CLRWK()
z_old=zoom
zoom=4
redraw_ohne(0)
~V_UPDWK()
~V_CLSWK()
zoom=z_old
ELSE
ENDIF
RESERVE
ELSE
ENDIF
DIM work%((FRE(0)-80*1024)/4)
daten_ptr%=V:work%(0)
work_space%=DIM?(work%())*4
ELSE
ENDIF
RETURN
'
'
PROCEDURE scan_a1
ALERT 3,"| SCAN Hochformat: ",1,"A3|A2|A1",i%
SELECT i%
CASE 1
scann_x%=INT(17*400/8) !17
scann_y%=INT(12*400) !12
CASE 2
scann_x%=INT(25*400/8)
scann_y%=INT(17*400)
CASE 3
scann_x%=INT(34*400/8)
scann_y%=INT(25*400)
ENDSELECT
scan_graphtec(3,400,0,0,scann_x%,scann_y%)
RETURN
'
PROCEDURE scan_graphtec(device&,dpi&,x_0%,y_0%,bytes_x%,lines_y%)
LOCAL command_bytes&,bytes_to_transfer%,transfer_dir&
LOCAL y_offset%,block&,command_bytes&,bytes_to_transfer%
' IF FN test_unit_ready(device&)=0
set_graphtec_window(device&,dpi&,x_0%,y_0%,bytes_x%,lines_y%)
command_bytes&=10
block&=&HFFFF DIV bytes_x% DIV 3
bytes_to_transfer%=bytes_x%*block&*3
transfer_dir&=0 ! LESEN
command|(0)=&H28
command|(1)=0
command|(2)=0
command|(3)=0
command|(4)=0
command|(5)=0
command|(6)=0
command|(7)=0
command|(8)=0
command|(9)=0
WORD{V:command|(7)}=block&
'
anzahl&=lines_y% DIV block&
rest&=lines_y% MOD block&
y_offset%=0
FOR i%=1 TO anzahl&
$c+
fehler%=C:scsi%(device&,command_bytes&,bytes_to_transfer%,transfer_dir&,L:V:command|(0),L:daten_ptr%+y_offset%)
$c-
ADD y_offset%,block&*bytes_x%
NEXT i%
IF rest&<>0
bytes_to_transfer%=bytes_x%*rest&*3
WORD{V:command|(7)}=rest&
$c+
fehler%=C:scsi%(device&,command_bytes&,bytes_to_transfer%,transfer_dir&,L:V:command|(0),L:daten_ptr%+y_offset%)
$c-
ENDIF
' status&=AND(CARD(fehler%),&X11110)
' message&=CARD(SWAP(fehler%))
layer!=TRUE
layer_geladen!=TRUE
voll_bild!=TRUE
outlined!=FALSE
do_change_aufloesung(bytes_x%*8,lines_y%,1)
init_bit_blit
p_zoom(zoom*100,zoom*100)
do_redraw
' ENDIF
RETURN
'
PROCEDURE set_graphtec_window(device&,dpi&,x_0%,y_0%,bytes_x%,lines_y%)
LOCAL command_bytes&,bytes_to_transfer%,transfer_dir&
command_bytes&=10
bytes_to_transfer%=53
transfer_dir&=1 ! LESEN (1=SCHREIBEN)
command|(0)=&H24
command|(1)=0
command|(2)=0
command|(3)=0
command|(4)=0
command|(5)=0
command|(6)=0
command|(7)=0
command|(8)=bytes_to_transfer%
command|(9)=0
FOR i%=0 TO 6
buffer|(i%)=0
NEXT i%
FOR i%=38 TO 47
buffer|(i%)=0
NEXT i%
buffer|(7)=45 ! Window Descriptor Block Length
buffer|(8)=0 ! Window ID
buffer|(9)=0 ! reserved
WORD{V:buffer|(10)}=dpi& ! X resolution
WORD{V:buffer|(12)}=dpi& ! Y resolution
LONG{V:buffer|(14)}=x_0%*24 ! X Upper Left
LONG{V:buffer|(18)}=y_0%*3 ! Y Upper Left
LONG{V:buffer|(22)}=bytes_x%*24 ! Width
LONG{V:buffer|(26)}=lines_y%*3 ! Length
buffer|(30)=0 ! reserved
buffer|(31)=0 ! Kontrast
buffer|(32)=0 ! reserved
buffer|(33)=0 ! Image composition
buffer|(34)=1 ! Bits per Pixel
buffer|(35)=0 ! reserved
buffer|(36)=0 ! reserved
buffer|(37)=0 ! Reverse Image
buffer|(48)=2 ! Cell length
buffer|(49)=5 ! Function Code
buffer|(50)=1 ! Fine Line
buffer|(51)=2 ! Cell length
buffer|(52)=6 ! Function Code
buffer|(53)=1 ! Scann Speed
$c+
fehler%=C:scsi%(device&,command_bytes&,bytes_to_transfer%,transfer_dir&,L:V:command|(0),L:V:buffer|(0))
$c-
RETURN
'
FUNCTION test_unit_ready(device&)
command_bytes&=6
bytes_to_transfer%=1
transfer_dir&=0 ! LESEN (1=SCHREIBEN)
command|(0)=0
command|(1)=0
command|(2)=0
command|(3)=0
command|(4)=bytes_to_transfer%
command|(5)=0
'
$c+
fehler%=C:scsi%(device&,command_bytes&,L:bytes_to_transfer%,transfer_dir&,L:V:command|(0),L:V:buffer|(0))
$c-
status&=AND(CARD(fehler%),&X11110)
message&=CARD(SWAP(fehler%))
'
RETURN status&
ENDFUNC
'
'
PROCEDURE gt_info(i$)
CHAR{{OB_SPEC(tree28_adr%,gtstate&)}}=i$
~OBJC_DRAW(tree28_adr%,gtstate&,8,xt28&,yt28&,bt28&,ht28&)
RETURN
'
PROCEDURE dpi_change(prex0&,prey0&,prex0_min&,prey0_min&)
CHAR{{OB_SPEC(tree28_adr%,gtdpi&)}}=STR$(gtdpiv&)
~OBJC_DRAW(tree28_adr%,gtdpi&,8,xt28&,yt28&,bt28&,ht28&)
CHAR{{OB_SPEC(tree28_adr%,gtb&)}}=STR$(AND(INT(gtbv&/25.4*gtdpiv&),&HFFF8))
CHAR{{OB_SPEC(tree28_adr%,gth&)}}=STR$(AND(INT(gthv&/25.4*gtdpiv&),&HFFF8))
~OBJC_DRAW(tree28_adr%,gtb&,8,xt28&,yt28&,bt28&,ht28&)
~OBJC_DRAW(tree28_adr%,gth&,8,xt28&,yt28&,bt28&,ht28&)
CHAR{{OB_SPEC(tree28_adr%,gtx&)}}=STR$(AND(INT((prex0&-prex0_min&)/25.4*gtdpiv&),&HFFF8))
CHAR{{OB_SPEC(tree28_adr%,gty&)}}=STR$(AND(INT((prey0&-prey0_min&)/25.4*gtdpiv&),&HFFF8))
~OBJC_DRAW(tree28_adr%,gtx&,8,xt28&,yt28&,bt28&,ht28&)
~OBJC_DRAW(tree28_adr%,gty&,8,xt28&,yt28&,bt28&,ht28&)
RETURN
'
PROCEDURE gt_6000
LOCAL prex0&,prey0&,prex0_min&,prey0_min&,x_changed&,y_changed&
LOCAL prex&,prey&,gthalbton&
DEFMOUSE 0
SETMOUSE xt28&+240,yt28&+310,0
CLIP 0,0,desk_breite&,desk_hoehe& OFFSET x_win&,y_win&
~OBJC_OFFSET(tree28_adr%,gtprewin&,prex&,prey&)
gthalbton&=1
prex0&=prex&-x_win&+1
prey0&=prey&-y_win&+1
prex0_min&=prex0&
prey0_min&=prey0&
prex0_max&=prex0&+217
prey0_max&=prey0&+297
prex0&=gtxv&
prey0&=gtyv&
'
CHAR{{OB_SPEC(tree28_adr%,gtx&)}}=STR$(AND(INT((prex0&-prex0_min&)/25.4*gtdpiv&),&HFFF8))
CHAR{{OB_SPEC(tree28_adr%,gty&)}}=STR$(AND(INT((prey0&-prey0_min&)/25.4*gtdpiv&),&HFFF8))
CHAR{{OB_SPEC(tree28_adr%,gtb&)}}=STR$(AND(INT(gtbv&/25.4*gtdpiv&),&HFFF8))
CHAR{{OB_SPEC(tree28_adr%,gth&)}}=STR$(AND(INT(gthv&/25.4*gtdpiv&),&HFFF8))
CHAR{{OB_SPEC(tree28_adr%,gtdpi&)}}=STR$(gtdpiv&)
CHAR{{OB_SPEC(tree28_adr%,gtstate&)}}=waehle$
GET xt28&-4,yt28&-4,xt28&+bt28&+4,yt28&+ht28&+4,rette$
~OBJC_DRAW(tree28_adr%,0,8,xt28&,yt28&,bt28&,ht28&)
smfdb%(0)=V:prebuf$
smfdb%(1)=208
smfdb%(2)=292
smfdb%(3)=smfdb%(1)/16
smfdb%(5)=1
dmfdb%(0)=XBIOS(3)
dmfdb%(1)=desk_breite&
dmfdb%(2)=desk_hoehe&
dmfdb%(3)=dmfdb%(1)/16
dmfdb%(5)=1
p%(0)=0
p%(1)=0
p%(2)=207
p%(3)=291
p%(4)=prex&+1
p%(5)=prey&+1
p%(6)=p%(4)+207
p%(7)=p%(5)+291
p%(8)=3
BITBLT smfdb%(),dmfdb%(),p%()
DEFFILL 1,1,1
GRAPHMODE 3
BOX prex0&,prey0&,prex0&+gtbv&,prey0&+gthv&
PBOX prex0&+gtbv&-8,prey0&+gthv&-8,prex0&+gtbv&,prey0&+gthv&
REPEAT
DO
~FORM_DO(tree28_adr%,0)
IF INT{GINTOUT}>0 AND INT{GINTOUT}<100
exit_button&=DPEEK(GINTOUT)
OB_STATE(tree28_adr%,exit_button&)=0
IF exit_button&<>gtprewin&
~OBJC_DRAW(tree28_adr%,exit_button&,8,xt28&,yt28&,bt28&,ht28&)
ENDIF
ENDIF
SELECT exit_button&
CASE gtdpimin&
IF gtdpiv&>100
IF gtdpiv&=480
gtdpiv&=400
ELSE
IF gtdpiv&=600
gtdpiv&=480
ELSE
SUB gtdpiv&,100
ENDIF
ENDIF
dpi_change(prex0&,prey0&,prex0_min&,prey0_min&)
ENDIF
CASE gtdpiplu&
IF gtdpiv&<600
IF gtdpiv&=400
gtdpiv&=480
ELSE
IF gtdpiv&=480
gtdpiv&=600
ELSE
ADD gtdpiv&,100
ENDIF
ENDIF
dpi_change(prex0&,prey0&,prex0_min&,prey0_min&)
ENDIF
CASE gtprewin&
MOUSE x_mouse%,y_mouse%,taste|
IF x_mouse%>prex0&+gtbv&-8 AND x_mouse%<prex0&+gtbv& AND y_mouse%>prey0&+gthv&-8 AND y_mouse%<prey0&+gthv&
DEFMOUSE 3
REPEAT
MOUSE x_mouse%,y_mouse%,taste|
IF x_mouse%<>x_mouse_old% OR y_mouse%<>y_mouse_old%
BOX prex0&,prey0&,prex0&+gtbv&,prey0&+gthv&
PBOX prex0&+gtbv&-8,prey0&+gthv&-8,prex0&+gtbv&,prey0&+gthv&
IF x_mouse%-prex0_min&<217 AND x_mouse%-prex0&>16
gtbv&=x_mouse%-prex0&
i%=AND(INT(gtbv&/25.4*gtdpiv&),&HFFF0)
gtbv&=CINT(i%*25.4/gtdpiv&)
ENDIF
IF y_mouse%-prey0_min&<298 AND y_mouse%-prey0&>16
gthv&=y_mouse%-prey0&
ENDIF
BOX prex0&,prey0&,prex0&+gtbv&,prey0&+gthv&
PBOX prex0&+gtbv&-8,prey0&+gthv&-8,prex0&+gtbv&,prey0&+gthv&
SHOWM
x_mouse_old%=x_mouse%
y_mouse_old%=y_mouse%
CHAR{{OB_SPEC(tree28_adr%,gtb&)}}=STR$(AND(INT(gtbv&/25.4*gtdpiv&),&HFFF0))
CHAR{{OB_SPEC(tree28_adr%,gth&)}}=STR$(INT(gthv&/25.4*gtdpiv&))
~OBJC_DRAW(tree28_adr%,gtb&,8,xt28&,yt28&,bt28&,ht28&)
~OBJC_DRAW(tree28_adr%,gth&,8,xt28&,yt28&,bt28&,ht28&)
ENDIF
UNTIL taste|=0
DEFMOUSE 0
ELSE
IF x_mouse%>prex0& AND x_mouse%<prex0&+gtbv& AND y_mouse%>prey0& AND y_mouse%<prey0&+gthv&
x_mouse_old%=x_mouse%
y_mouse_old%=y_mouse%
DEFMOUSE 3
REPEAT
MOUSE x_mouse%,y_mouse%,taste|
IF x_mouse%<>x_mouse_old% OR y_mouse%<>y_mouse_old%
x_changed&=x_mouse%-x_mouse_old%
y_changed&=y_mouse%-y_mouse_old%
BOX prex0&,prey0&,prex0&+gtbv&,prey0&+gthv&
PBOX prex0&+gtbv&-8,prey0&+gthv&-8,prex0&+gtbv&,prey0&+gthv&
IF prex0&+x_changed&>=prex0_min& AND prex0&+x_changed&+gtbv&<prex0_max&
ADD prex0&,x_changed&
ENDIF
IF prey0&+y_changed&>=prey0_min& AND prey0&+y_changed&+gthv&<prey0_max&
ADD prey0&,y_changed&
ENDIF
BOX prex0&,prey0&,prex0&+gtbv&,prey0&+gthv&
PBOX prex0&+gtbv&-8,prey0&+gthv&-8,prex0&+gtbv&,prey0&+gthv&
SHOWM
x_mouse_old%=x_mouse%
y_mouse_old%=y_mouse%
CHAR{{OB_SPEC(tree28_adr%,gtx&)}}=STR$(AND(INT((prex0&-prex0_min&)/25.4*gtdpiv&),&HFFF8))
CHAR{{OB_SPEC(tree28_adr%,gty&)}}=STR$(AND(INT((prey0&-prey0_min&)/25.4*gtdpiv&),&HFFF8))
~OBJC_DRAW(tree28_adr%,gtx&,8,xt28&,yt28&,bt28&,ht28&)
~OBJC_DRAW(tree28_adr%,gty&,8,xt28&,yt28&,bt28&,ht28&)
ENDIF
UNTIL taste|=0
DEFMOUSE 0
ENDIF
ENDIF
CASE gtpresca&
gt_info(scannen$+pre_view$)
HIDEM
gt6000%=VARPTR(gt6000$)
$C+
VOID C:gt6000%(1,50,3,3,gthalbton&,0,0,26,292,L:V:prebuf$,L:V:prebuf$+8000)
$C-
OUT (2),13
trigger_0
DEFMOUSE 3
SHOWM
BOX prex0&,prey0&,prex0&+gtbv&,prey0&+gthv&
PBOX prex0&+gtbv&-8,prey0&+gthv&-8,prex0&+gtbv&,prey0&+gthv&
smfdb%(0)=V:prebuf$
BITBLT smfdb%(),dmfdb%(),p%()
BOX prex0&,prey0&,prex0&+gtbv&,prey0&+gthv&
PBOX prex0&+gtbv&-8,prey0&+gthv&-8,prex0&+gtbv&,prey0&+gthv&
gt_info(waehle$)
ENDSELECT
EXIT IF exit_button&=gtcancel&
EXIT IF exit_button&=gtscan&
LOOP
IF exit_button&=gtcancel&
PUT xt28&-4,yt28&-4,rette$
ok!=TRUE
ENDIF
IF exit_button&=gtscan&
IF OB_STATE(tree28_adr%,gthart&)=1
gthalbton&=0
ELSE
IF OB_STATE(tree28_adr%,gtweich&)=1
gthalbton&=16
ELSE
IF OB_STATE(tree28_adr%,gtraster&)=1
gthalbton&=32
ELSE
gthalbton&=1
ENDIF
ENDIF
ENDIF
IF OB_STATE(tree28_adr%,gtrot&)=1
gtfarbev&=0
ELSE
IF OB_STATE(tree28_adr%,gtgruen&)=1
gtfarbev&=1
ELSE
IF OB_STATE(tree28_adr%,gtblau&)=1
gtfarbev&=2
ELSE
gtfarbev&=3
ENDIF
ENDIF
ENDIF
IF OB_STATE(tree28_adr%,k0&)=1
gtkontrav&=0
ELSE
IF OB_STATE(tree28_adr%,k1&)=1
gtkontrav&=1
ELSE
IF OB_STATE(tree28_adr%,k2&)=1
gtkontrav&=2
ELSE
IF OB_STATE(tree28_adr%,k3&)=1
gtkontrav&=3
ELSE
IF OB_STATE(tree28_adr%,k4&)=1
gtkontrav&=4
ELSE
IF OB_STATE(tree28_adr%,k5&)=1
gtkontrav&=5
ELSE
gtkontrav&=6
ENDIF
ENDIF
ENDIF
ENDIF
ENDIF
ENDIF
gt_info(scannen$+bereich$)
gtxorig&=CINT(AND(INT((prex0&+2-prex0_min&)/25.4*gtdpiv&),&HFFF8)/8)
gtyorig&=CINT((prey0&+2-prey0_min&)/25.4*gtdpiv&)
gtxbytes&=CINT(AND(INT(gtbv&/25.4*gtdpiv&),&HFFF0)/8)
gtyzeilen&=CINT(gthv&/25.4*gtdpiv&)
IF gtxbytes&*(gtyzeilen&+1)<work_space%
HIDEM
gt6000%=VARPTR(gt6000$)
$C+
i%=C:gt6000%(0,gtdpiv&,gtfarbev&,gtkontrav&,gthalbton&,gtxorig&,gtyorig&,gtxbytes&,gtyzeilen&,L:daten_ptr%,L:daten_ptr%+work_space%)
$C-
OUT (2),13
trigger_0
DEFMOUSE 3
SHOWM
ELSE
i%=-1
ENDIF
IF i%>=0
gt_info(waehle$)
PUT xt28&-4,yt28&-4,rette$
layer!=TRUE
layer_geladen!=TRUE
voll_bild!=TRUE
outlined!=FALSE
do_change_aufloesung(AND(INT(gtbv&/25.4*gtdpiv&),&HFFF0),INT(gthv&/25.4*gtdpiv&),1)
init_bit_blit
p_zoom(zoom*100,zoom*100)
do_redraw
ok!=TRUE
ELSE
FOR i%=1 TO 5
gt_info(fehler$)
PAUSE 15
gt_info(" ")
PAUSE 15
NEXT i%
gt_info(waehle$)
ok!=FALSE
ENDIF
ENDIF
UNTIL ok!
gtxv&=prex0&
gtyv&=prey0&
~WIND_GET(1,4)
clip(x_window&,y_window&,b_window&,h_window&,INT{GINTOUT+2},INT{GINTOUT+4})
set_clip_offset
GRAPHMODE 1
DEFFILL 0,0
DEFMOUSE 3
init_bit_blit
RETURN
'
PROCEDURE set_clip_offset
INT{WINDTAB+64}=INT{WINDTAB+64}-x_offset&
INT{WINDTAB+66}=INT{WINDTAB+66}-y_offset&
RETURN
'
PROCEDURE helpo(help$)
TITLEW #1,ein_space$+help$+ein_space$
set_clip_offset
RETURN
'
PROCEDURE help(help$)
TITLEW #1,ein_space$+waehle$+help$+ein_space$
set_clip_offset
RETURN
'
PROCEDURE help_titel
TITLEW #1,ein_space$+pfad_vek$+"\"+programm$+".VEK "
set_clip_offset
DEFMOUSE 3
DEFLINE 1
COLOR 1
GRAPHMODE 1
p_xy_info("X:","Y:",0)
SHOWM
trigger_0
zeit%=TIMER
RETURN
'
PROCEDURE polygon_fill
REPEAT
DEFMOUSE 0
GET xt20&-4,yt20&-4,xt20&+bt20&+4,yt20&+ht20&+4,rette$
SETMOUSE xt20&+bt20&/2,yt20&+160,0
~OBJC_DRAW(tree20_adr%,0,8,xt20&,yt20&,bt20&,ht20&)
~FORM_DO(tree20_adr%,0)
exit_button&=DPEEK(GINTOUT)
OB_STATE(tree20_adr%,exit_button&)=0
PUT xt20&-4,yt20&-4,rette$
IF OB_STATE(tree20_adr%,fill1&)=1
DEFFILL 1,2,1
ELSE IF OB_STATE(tree20_adr%,fill2&)=1
DEFFILL 1,2,2
ELSE IF OB_STATE(tree20_adr%,fill3&)=1
DEFFILL 1,2,3
ELSE IF OB_STATE(tree20_adr%,fill4&)=1
DEFFILL 1,2,4
ELSE IF OB_STATE(tree20_adr%,fill5&)=1
DEFFILL 1,2,5
ELSE IF OB_STATE(tree20_adr%,fill6&)=1
DEFFILL 1,2,6
ELSE IF OB_STATE(tree20_adr%,fill7&)=1
DEFFILL 1,2,8
ENDIF
DEFMOUSE mdaten$
help(help_polygon$)
IF exit_button&<>fillcancel&
REPEAT
trigger_0
wait_taste
IF taste|<>2
FILL x_mouse%,y_mouse%
ENDIF
UNTIL taste|=2
ENDIF
UNTIL exit_button&=fillcancel&
~FRE(0)
DEFFILL 1,1
help_titel
RETURN
'
' *****************************************************************************
' * TANGENTE NIVELLIEREN *
' * *
' * VERÄNDERT VAR: Punkte_X%(), Punkte_Y%() *
' * *
' *****************************************************************************
'
PROCEDURE do_niv_tangente(found_quelle%,von%,bis%,dreh_x%,dreh_y%)
LOCAL phi,strecke
dx=SUB(dreh_x%,punkte_x%(found%))
dy=SUB(dreh_y%,punkte_y%(found%))
strecke=SQR(dx*dx+dy*dy)
get_phi(dreh_x%,dreh_y%,punkte_x%(found_quelle%),punkte_y%(found_quelle%),phi)
redraw_von_bis(von%,bis%,0)
punkte_x%(found%)=CINT(dreh_x%-strecke*COS(phi))
punkte_y%(found%)=CINT(dreh_y%-strecke*SIN(phi))
redraw_von_bis(von%,bis%,1)
RETURN
'
PROCEDURE tangente_nivellieren
LOCAL found_quelle%,quelle_def|
LOCAL von%,bis%,f%,dreh_x%,dreh_y%
IF pointer%>1
show_cursor_fang
REPEAT
trigger_0
GRAPHMODE 1
REPEAT
wait_taste
EXIT IF taste|=2
find(x_mouse%*100/zoom,y_mouse%*100/zoom)
quelle_def|=punkte_def|(found%)
UNTIL (quelle_def|>da| AND quelle_def|<b3|)
IF taste|<>2
found_quelle%=found%
IF quelle_def|=b1|
IF punkte_def|(found_quelle%-1)=b3|
found%=found_quelle%-2
von%=found_quelle%-4
bis%=von%+3
dreh_x%=punkte_x%(found_quelle%-1)
dreh_y%=punkte_y%(found_quelle%-1)
do_niv_tangente(found_quelle%,von%,bis%,dreh_x%,dreh_y%)
ELSE
IF punkte_def|(found_quelle%-1)=da|
found%=found_quelle%
found_quelle%=found%-2
von%=found%-1
bis%=von%+3
dreh_x%=punkte_x%(found%-1)
dreh_y%=punkte_y%(found%-1)
do_niv_tangente(found_quelle%,von%,bis%,dreh_x%,dreh_y%)
ELSE
IF punkte_def|(found_quelle%-1)=ma|
found%=found_quelle%
REPEAT
INC found%
UNTIL punkte_def|(found%)=ma|
DEC found%
IF punkte_def|(found%)=b3|
DEC found%
von%=found%-2
bis%=von%+3
dreh_x%=punkte_x%(found_quelle%-1)
dreh_y%=punkte_y%(found_quelle%-1)
do_niv_tangente(found_quelle%,von%,bis%,dreh_x%,dreh_y%)
ELSE
IF punkte_def|(found%)=da|
f%=found_quelle%
found_quelle%=found%-1
found%=f%
von%=found%-1
bis%=von%+3
dreh_x%=punkte_x%(found_quelle%+1)
dreh_y%=punkte_y%(found_quelle%+1)
do_niv_tangente(found_quelle%,von%,bis%,dreh_x%,dreh_y%)
ENDIF
ENDIF
ENDIF
ENDIF
ENDIF
ELSE
IF quelle_def|=b2|
IF punkte_def|(found_quelle%+2)=b1|
found%=found_quelle%+2
von%=found_quelle%+1
bis%=von%+3
dreh_x%=punkte_x%(found_quelle%+1)
dreh_y%=punkte_y%(found_quelle%+1)
do_niv_tangente(found_quelle%,von%,bis%,dreh_x%,dreh_y%)
ELSE
IF punkte_def|(found_quelle%+2)=da|
found%=found_quelle%
found_quelle%=found%+2
von%=found%-2
bis%=von%+3
dreh_x%=punkte_x%(found%+1)
dreh_y%=punkte_y%(found%+1)
do_niv_tangente(found_quelle%,von%,bis%,dreh_x%,dreh_y%)
ELSE
IF punkte_def|(found_quelle%+2)=ma|
found%=found_quelle%
REPEAT
DEC found%
UNTIL punkte_def|(found%)=ma|
INC found%
IF punkte_def|(found%)=b1|
von%=found%-1
bis%=von%+3
dreh_x%=punkte_x%(found_quelle%+1)
dreh_y%=punkte_y%(found_quelle%+1)
do_niv_tangente(found_quelle%,von%,bis%,dreh_x%,dreh_y%)
ELSE
IF punkte_def|(found%)=da|
f%=found_quelle%
found_quelle%=found%
found%=f%
von%=found%-2
bis%=von%+3
dreh_x%=punkte_x%(found_quelle%-1)
dreh_y%=punkte_y%(found_quelle%-1)
do_niv_tangente(found_quelle%,von%,bis%,dreh_x%,dreh_y%)
ENDIF
ENDIF
ENDIF
ENDIF
ENDIF
ENDIF
ENDIF
ENDIF
UNTIL taste|=2
DEFMOUSE 3
ENDIF
RETURN
'
' *****************************************************************************
' * ASCII Editor *
' * *
' * *
' * ' ******************************************************************************
' * *
' * CUTOUT *
' * *
' * 27.02.1992 *
' * *
' ******************************************************************************
'
'
$B+
$I-
INLINE scsi%,933
DIM buffer|(512*2)
DIM command|(12)
' VAR:
' apl_id&=APPL_INIT()
magic%=14031952
'
' serien_nummer$="REGIST00"
' serien_nummer_vergleich$="REGIST11"
serien_nummer$=MKD$(101)
serien_nummer_vergleich$=MKD$(101 XOR magic%)
'
fang_schnittpunkt|=4
buffer%=0
buffer_max%=0
poly_len%=0
bits%=0
punkt_eintrag&=0
x_start&=0
y_start&=0
edi_max&=0
m=0
m_neu=0
bit_count|=0
pixel!=FALSE
'
regist_nr%=0
revision$="1.59"
zeit%=TIMER
calamus_nr%=0
ortho|=45
ortho=RAD(ortho|)
ortho2=ortho/2
x_win&=0 ! Window X pos aktuell
y_win&=0 ! Window Y pos aktuell
x_window&=0 ! Window X pos aktuell
y_window&=0 ! Window Y pos aktuell
b_window&=0 ! Window Breite aktuell
h_window&=0 ! Window Höhe aktuell
~WIND_GET(0,4,scrx&,scry&,scrb&,scrh&) ! maximaler Desktop
wmx%=scrb&-62
wmy%=scrh&-57+scry&
desk_breite&=scrb&
desk_hoehe&=scrh&+scry&
gross_bildschirm!=FALSE
IF desk_breite&>640 OR desk_hoehe&>400
gross_bildschirm!=TRUE
ENDIF
ADD scrx&,42 ! Position Window X+Menuleiste
SUB scrb&,42 ! Breite Window
scrb_old&=scrb&
scrh_old&=scrh&
res_x%=0 ! Auflösung x in mm
res_y%=0 ! Auflösung y in mm
res_x_old%=0
res_y_old%=0
x_layer%=0
y_layer%=0
x_layero%=0
y_layero%=0
x_offset&=0 ! Nullpunkt x im Fenster
y_offset&=0 ! Nullpunkt y im Fenster
x_offset_old&=0
y_offset_old&=0
x_mouse%=0
y_mouse%=0
x_mouse_old%=0
y_mouse_old%=0
x_mouse_0%=0
y_mouse_0%=0
objectbox_x0%=0
objectbox_y0%=0
objectbox_x1%=0
objectbox_y1%=0
grid%=10 ! raster mm
schraff_dist=201
schraff_inc=0
schraff_fix_abst=0
schraff_winkel=0
schraff_start%=0
schraff_y_min%=0
bit_count_max|=6
geraden_fehler|=1
lange_gerade%=4000
schmutz_filter%=20
knick_winkel_max=RAD(140)
bogen_max=PI/2/2
abweichung_gerade%=0.5*100
last_poly_s%=-1
last_poly_e%=-1
taste|=0
zoom=1
zoom_old=1
zoom_100=1
pointer%=0 ! Zeiger auf Punkteliste
found%=0 ! gefundener Punkt bei SNAP
found_t%=0 ! gefundener Kurvenparameter
schnittpunkt_genau%=16 ! Zerlegung Bezier in Teile
anz_schnittpunkte%=0 ! Anzahl Schnittpunkte
b_vari=100
i%=0 ! allgemeiner Schleifenzähler
ii%=0
iii%=0
d0%=0
dx%=0
dy%=0
dx=0
dy=0
schnitt_laenge=0
kostfak=1
gkosten=0
px0%=0
py0%=0
px1%=0
py1%=0
px2%=0
py2%=0
px3%=0
py3%=0
m_square_breite&=&H3000
m_square_hoehe&=&H3000
kerning_256|=m_square_breite& DIV 256
len_pair_daten&=0
z_hoehe_def%=16384 ! Höhe des definierten Zsatzes
z_breite_def%=16384 ! Breite "
zeichen_hoehe%=3000 ! gewünschte Höhe in 1/100 mm
versal_def%=0 ! Versal Höhe in 1/100 mm
z_ascii_scale=zeichen_hoehe%/z_hoehe_def% ! Scaling
z_ascii_scale_old=z_ascii_scale ! save Scaling
global_kerning%=1280 ! globales Kerning
zeilen_abstand_prozent%=125 ! relativer Zeilen Abstand
zeilen_abstand%=zeichen_hoehe%*zeilen_abstand_prozent%/100-zeichen_hoehe%
z_cursor_x_spalte%=0 ! Start String
z_cursor_x%=0 ! ASCII Zeichen Cursor X
z_cursor_y%=0 ! ASCII Zeichen Cursor y
z_cursor_x_old%=0 ! letztes Zeichen Cursor X
z_cursor_y_old%=0 ! letztes Zeichen Cursor y
z_ascii_old%=0 ! letztes Zeichen ASCII+32
z_satz_pointer%=0 ! Pointer auf Zeichensatz
state_rs232&=0 ! Centronics aktiv
state_hp&=0 ! HPGL aktiv
folie_x%=1188 ! Folien Grö₧e
folie_y%=840
plotter_x_min%=0
plotter_y_min%=0
gdu=0 ! 100*Plottereinheit
sel_start%=0
sel_end%=0
gtxv&=0
gtyv&=0
gtbv&=216
gthv&=297
gtdpiv&=300
gtfarbev&=3
gtkontrav&=3
exit_button&=0
cursor_x&=0
cursor_y&=0
ofn_ver|=0
overcut|=0
geschlossen%=0
'
phi_x_3d=0
phi_y_3d=0
a2_3d=0
'
daten_ptr%=0
work_space%=0
'
' CONST:
'
IF FRE(0)>4000000
p_max%=99999
ELSE
p_max%=60000
ENDIF
ma|=0
da|=1
b1|=2
b2|=3
b3|=4
ein_drittel=1/3
fmin=2.225073858507E-307
fmin1=0.005
max1=0.995
pimal2=PI*2
pihalbe=PI/2
pidrittel=PI/3
fang_rad%=8*100 ! FANGRADIUS
p_at%=XBIOS(3)+76 ! PRINT AT FÜR X,Y
p_at_zoom%=p_at%-12 ! PRINT AT FÜR ZOOM
x_bytes%=(scrb&+42)/8 ! BYTES IN X RICHTUNG DESKTOP
'
' CONST: Menuleiste
'
tree00&=0
tree0_adr%=0
datei&=3
eintrag&=4
mfenster&=10
mtext&=5
mzedi&=6
spezial&=7
all_clear&=8
bbogen&=9
mschnitt&=11
'
tree01&=1
tree1_adr%=0
back_main&=3
fwd_main&=4
gerade&=5
kurve&=6
schliess&=7
verrunde&=8
loeschen&=9
lock&=10
snap&=11
bild&=12
zircel&=13
bezier4&=14
schere&=15
' fenster&=15
'
tree02&=2
tree2_adr%=0
back_datei&=3
fwd_datei&=4
l_vek&=5
l_merge&=6
r_macro&=7
r_cvg&=8
l_img&=9
l_pic&=10
ordner&=11
s_vek&=12
s_plt&=13
a_plotter&=14
'
tree03&=3
tree3_adr%=0
back_fenster&=3
fwd_fenster&=4
fmove&=5
blitz&=6
fcopy&=7
fzoom&=8
fzoomp&=9
fdreh&=10
fspiegel&=11
fkursiv&=12
dreh3d&=13
drehxp&=14
drehxm&=15
drehym&=16
drehyp&=17
floesch&=18
fzoom1&=19
'
tree04&=4
tree4_adr%=0
back_spezial&=3
gtepson&=4
handy&=5
kontour&=6
filter&=7
trace&=8
smooth&=9
simag&=10
'
tree05&=5
tree5_adr%=0
back_text&=3
fwd_text&=4
z_edit&=5
z_editor&=6
z_string&=7
z_t_hoehe&=8
z_t_abstand&=9
z_g_kerning&=10
z_read_ascii&=11
l_font&=12
s_font&=14
c_font&=13
'
tree06&=6
tree6_adr%=0
t_hoehe&=1
'
tree07&=7
tree7_adr%=0
zabs&=1
'
tree08&=8 ! String Text
tree8_adr%=0
string_text&=1
breite&=3
string_breite&=4
versal&=5
string_versal&=6
pfad&=7
do_kerning&=8
string_kreis&=9
string_kreis_von&=10
string_kreis_bis&=11
fontname&=13
c_text&=14
icon_pair&=15
icon_trep&=16
'
tree09&=9 ! Zeichen Editor
tree9_adr%=0
back_editor&=3
m_matrix&=4
z_matrix&=5
move_matrix&=6
kerning_links&=7
kerning_rechts&=8
kerning_auto&=9
z_get&=10
z_muell&=11
z_up&=13
z_down&=14
z_char&=15
'
tree10&=10
tree10_adr%=0
b_kerning&=2
g_kerning&=3
'
tree11&=11 ! Optimier
tree11_adr%=0
del_ma&=4
del_ge&=6
del_el&=8
'
tree12&=12
tree12_adr%=0
bstep&=1
'
tree13&=13 ! Info
tree13_adr%=0
vernr&=7
version&=4
firma&=4
strasse&=7
stadt&=10
punkte&=15
rest&=17
'
tree14&=14 ! Auflösung
tree14_adr%=0
rx1&=8
ry1&=10
rx2&=12
ry2&=13
rx3&=16
ry3&=17
get_pf&=19
r1&=4
r2&=5
r3&=6
'
tree15&=15 ! Plotter INIT
tree15_adr%=0
p_init1&=3
p_init2&=4
gdu01&=9
gdu025&=10
gdu05&=11
gdu1&=12
overcut&=16
cent&=18
rs232&=20
hp&=23
gp&=24
mgl&=25
ma&=29
da&=30
'
tree16&=16 ! Pfade und Parameter
tree16_adr%=0
pv&=5
pp&=7
pfi&=9
pg&=11
pf&=13
df&=15
p1&=17
p2&=19
schnitt&=21
gdu&=23
foliex&=25
foliey&=27
warn&=29
cancel&=31
'
tree17&=17
tree17_adr%=0
outl&=1
outl_anz&=2
'
tree18&=18
tree18_adr%=0
schraffd&=1
schraffi&=2
schrafix&=3
schraffw&=4
schraffa&=7
schrafff&=8
'
tree19&=19
tree19_adr%=0
necka&=1
neckp&=2
'
tree20&=20 ! Füll
tree20_adr%=0
fill1&=3
fill2&=5
fill3&=7
fill4&=9
fill5&=11
fill6&=13
fill7&=15
fillcancel&=17
'
tree21&=21 ! Trace
tree21_adr%=0
t_step&=7
t_gerade&=8
t_schmutz&=9
bschwelle&=21
knickwinkel&=22
bogen_max&=23
abweichung_gerade&=24
nur_gerade&=13
trace_cancel&=14
gerade_bezier&=30
'
tree22&=22
tree22_adr%=0
scann_x&=1
scann_y&=2
'
tree23&=23
tree23_adr%=0
radius&=1
'
tree24&=24
tree24_adr%=0
grau&=6
stark&=7
selgrau0&=4
selgrau&=5
sellinie&=8
alle&=9
auswahl&=10
'
tree25&=25 ! Bogen
tree25_adr%=0
backboge&=3
vkreis&=4
kreis3&=5
kreisbog&=6
bogen3&=7
bogen2&=8
ellipse&=9
elbogen&=10
eckrund&=11
'
tree26&=26 ! Koordinaten
tree26_adr%=0
absolut&=2
relativ&=3
polar&=4
'
tree27&=27 ! Calamus Versions Nr.
tree27_adr%=0
calamus_nr&=1
'
tree28&=28 ! GT 6000
tree28_adr%=0
gtscan&=47
gtx&=38
gty&=44
gtb&=42
gth&=43
gtcancel&=46
gtpresca&=45
gtdpi&=35
gtdpimin&=33
gtdpiplu&=34
gtprewin&=1
gtstate&=5
gtkeiner&=9
gtraster&=10
gtweich&=11
gthart&=12
gtkeine&=15
gtrot&=18
gtgruen&=17
gtblau&=16
k0&=22
k1&=23
k2&=24
k3&=25
k4&=26
k5&=27
k6&=28
'
tree29&=29 ! Kosten
tree29_adr%=0
kostfak&=1
sl&=2
gkosten&=4
'
tree30&=30 ! Select Filter
tree30_adr%=0
abs_filter&=1
'
tree31&=31 ! Select Fenster
tree31_adr%=0
ohnecopy&=1
mitcopy&=6
anz_rot&=3
phi_rot&=4
numohne&=5
ausricht_vector&=7
'
tree32&=32 ! Select Spiegel
tree32_adr%=0
anbox&=2
anachse&=1
'
tree33&=33
tree33_adr%=0
teil&=1
'
tree34&=34 ! Schnittpunkt
tree34_adr%=0
backschn&=3
fwdschn&=4
trimm&=5
knack&=6
lot&=7
teilen&=8
lang&=9
schnitt2&=10
schnittn&=11
delseg&=12
delel&=13
schmelz&=14
'
tree35&=35 ! Select Copy
tree35_adr%=0
copysing&=1
copymul&=2
cx&=4
cy&=5
canz&=6
cdist&=7
'
tree36&=36 ! Ausrichten
tree36_adr%=0
a_olinks&=1
a_oben&=2
a_orechts&=3
a_links&=4
a_mitte&=5
a_rechts&=6
a_ulinks&=7
a_unten&=8
a_urechts&=9
'
tree37&=37 ! Scalieren
tree37_adr%=0
scale_interactiv&=1
scale_numerisch&=2
scale_breite&=4
scale_hoehe&=5
'
tree38&=38 ! Ordner
tree38_adr%=0
ordnert&=1
ordnerok&=2
ordnerca&=3
'
tree39&=39 ! Kerning
tree39_adr%=0
kerning_box&=1
kerning_minus&=3
kerning_plus&=4
kerning_last&=2
kerning_next&=5
kerning_exit&=6
kerning_minus2&=9
kerning_plus2&=10
kerning_last2&=8
kerning_next2&=11
kerning_clear&=7
kerning_info&=13
kerning_pair&=15
'
tree40&=40 ! Plotter OUTPUT
tree40_adr%=0
pl100&=3
plschieber&=4
plschere&=7
plschereauf&=5
plscherezu&=6
plschere&=7
'
tree41&=41 ! Select Neigen
tree41_adr%=0
neige_grad&=2
neige_vertical&=3
neige_horizontal&=4
neige_interaktiv&=5
'
' FLAG:
'
undo!=FALSE
geschlossen!=FALSE
ok!=FALSE ! allgemein
layer_geladen!=FALSE ! ist Layer geladen
layer!=FALSE ! soll Layer gezeigt werden
window_fulled!=TRUE ! ist Fenster schon gro₧
voll_bild!=FALSE ! ist Fenster komplett auf Crt
eintragen!=FALSE ! ist eintragen aktiv
bogen!=FALSE
mtext!=FALSE
meditor!=FALSE
datei!=FALSE
fenster!=FALSE
schnittpunktm!=FALSE
loeschen!=FALSE ! ist loeschen aktiv
neues_polygon!=TRUE ! erster Punkt im Polygon
found!=FALSE ! gefunden bei Fangradius
marker!=FALSE ! sollen Marker gezeigt werden
marker_select!=FALSE ! soll Marker selectiert
modified!=FALSE ! wurde Vektorbild geändert
font_geladen!=FALSE ! ist ein Font geladen
outlined!=FALSE ! wurde Bitmap schon outlined
auto_schraff!=TRUE
schraff_fix_abst!=FALSE
einpassen!=FALSE
tangente!=FALSE
tangenten_lock!=TRUE
warn!=FALSE
gp_gl!=FALSE ! HPGL oder GPGL
tasten_rep!=FALSE
absolut!=TRUE
relativ!=FALSE
polar!=FALSE
absolut_old!=FALSE
polar_old!=FALSE
fangklein!=FALSE ! Fangradius gro₧
fadenkreuz!=FALSE
polygonmode!=TRUE ! Polygonmodus
ortho!=FALSE
grid!=FALSE
scrolled!=FALSE
move!=FALSE
drei_d!=FALSE
status_wechsel!=FALSE
grid_wechsel!=FALSE
swap!=FALSE
'
' ARRAY:
'
DIM smfdb%(8),dmfdb%(8),p%(8)
DIM z_smfdb%(8),z_dmfdb%(8),z_p%(8),q_dmfdb%(8)
DIM punkte_x%(p_max%),punkte_y%(p_max%),punkte_def|(p_max%),buffer%(p_max%/2)
DIM x_meta%(127),y_meta%(127),punkte_def1|(32)
ARRAYFILL punkte_def1|(),1
DIM bezier_x&(33),bezier_y&(33)
DIM m$(87)
DIM mk%(60,2)
DIM m_square%(5)
DIM z_editor%(32)
DIM z_ascii%(224),z_kerning&(224*16),z_daten&(224*280),z_pair&(224),z_pair|(224),z_pair_daten|(2000)
DIM sx1%(9),sy1%(9),sx2%(9),sy2%(9),sp1(9),sp2(9)
DIM zeilen_buffer$(60)
rette$=SPACE$(32000)
pfad$=SPACE$(80)
kerning_string$=SPACE$(60)
pfad_pic$=SPACE$(80)
pfad_img$=SPACE$(80)
pfad_vek$=SPACE$(80)
pfad_vek_root$=SPACE$(80)
pfad_cvg$=SPACE$(80)
pfad_fnt$=SPACE$(80)
pfad_cfn$=SPACE$(80)
default_font$=SPACE$(10)
programm$=SPACE$(10)
programm_font$=SPACE$(10)
test_datei$=SPACE$(10)
object$=SPACE$(80)
p_init1$=SPACE$(40)
p_init2$=SPACE$(40)
abc$="CutOut Test"
ma$="M"
da$="D"
cutout_font$="CUTOUTOFN"
calamus_font_grafik$=MKI$(159)+MKI$(15)+MKI$(1)+SPACE$(320)
ok$="OK"
ein_space$=" "
x_y$="X|Y"
erster$="1. "
zweiter$="2. "
help_on$="ON "
help_off$="OFF"
vek$="VEK"
cvg$="CVG"
img$="IMG"
plt$="PLT"
calamus$="CALAMUS"
cutout$="CutOut"
' ****************************************************************************
OPEN "I",#1,"SYS\LANGUAGE.DRV"
LINE INPUT #1,pd_menu$
LINE INPUT #1,pd_datei$
LINE INPUT #1,pd_editieren$
LINE INPUT #1,pd_fenster$
LINE INPUT #1,pd_schnittpunkt$
LINE INPUT #1,pd_bogen$
LINE INPUT #1,pd_text$
LINE INPUT #1,pd_zeicheneditor$
LINE INPUT #1,pd_extra$
LINE INPUT #1,pd_quit$
'
LINE INPUT #1,pd_optionen$
LINE INPUT #1,pd_marker_anzeigen$
LINE INPUT #1,pd_tangenten_anzeigen$
LINE INPUT #1,pd_fangradius_klein$
LINE INPUT #1,pd_polygon_modus$
LINE INPUT #1,pd_schnittpunkt_genau$
LINE INPUT #1,pd_koordinaten$
LINE INPUT #1,pd_element_selektieren$
LINE INPUT #1,pd_polygon_selektieren$
LINE INPUT #1,pd_warnmeldungen$
LINE INPUT #1,pd_skaliere_alles$
LINE INPUT #1,pd_punkte_nivellieren$
LINE INPUT #1,pd_tangente$
LINE INPUT #1,pd_plotflaeche$
LINE INPUT #1,pd_bezier_step_aendern$
LINE INPUT #1,pd_plotter_einstellung$
LINE INPUT #1,pd_kosten_faktor$
LINE INPUT #1,pd_pfad_sichern$
'
LINE INPUT #1,pd_figur$
LINE INPUT #1,pd_rechteck$
LINE INPUT #1,pd_n_eck$
LINE INPUT #1,pd_polygon_outline$
LINE INPUT #1,pd_aequidistante$
LINE INPUT #1,pd_frame$
LINE INPUT #1,pd_polygone_ausrichten$
LINE INPUT #1,pd_polygone_zentrieren$
LINE INPUT #1,pd_polygone_vereinen$
LINE INPUT #1,pd_polygone_fuellen$
LINE INPUT #1,pd_einzelne_punkte_loeschen$
'
LINE INPUT #1,pd_linie$
LINE INPUT #1,pd_bezier_vektor$
LINE INPUT #1,pd_bezier_einfuegen$
LINE INPUT #1,pd_tausche_bezier_vektor$
LINE INPUT #1,pd_knacken$
LINE INPUT #1,pd_trimmen$
LINE INPUT #1,pd_lot$
LINE INPUT #1,pd_verlaengern$
LINE INPUT #1,pd_teilen$
LINE INPUT #1,pd_messen$
LINE INPUT #1,pd_schnittp_2er$
LINE INPUT #1,pd_schnittp_n$
'
LINE INPUT #1,pd_effekt$
LINE INPUT #1,pd_parameter_schraffur$
LINE INPUT #1,pd_polygon_schraffieren$
LINE INPUT #1,pd_alles_schraffieren$
LINE INPUT #1,pd_schatten$
LINE INPUT #1,pd_einpassen$
LINE INPUT #1,pd_kugel$
'
LINE INPUT #1,lade$
LINE INPUT #1,sichere$
LINE INPUT #1,fuege_ein$
LINE INPUT #1,vektor$
LINE INPUT #1,macro$
LINE INPUT #1,daten$
LINE INPUT #1,zeichensatz$
LINE INPUT #1,kein$
LINE INPUT #1,keine$
LINE INPUT #1,ja_nein$
LINE INPUT #1,waehle$
LINE INPUT #1,fehler$
LINE INPUT #1,scannen$
LINE INPUT #1,pre_view$
LINE INPUT #1,ascii_importieren$
LINE INPUT #1,ascii_exportieren$
LINE INPUT #1,schriftblock$
LINE INPUT #1,radius_zu$
LINE INPUT #1,winkel_zu$
LINE INPUT #1,leider$
LINE INPUT #1,winkel_einstellen$
LINE INPUT #1,spiegelachse$
LINE INPUT #1,lupe_mal$
LINE INPUT #1,fensterbereich$
LINE INPUT #1,drehzentrum$
LINE INPUT #1,ordner_exist$
LINE INPUT #1,kein_leer$
LINE INPUT #1,suche_schnittpunkte$
LINE INPUT #1,gleiches_polygon$
LINE INPUT #1,bezugs$
LINE INPUT #1,zentriere$
LINE INPUT #1,huellkurve$
LINE INPUT #1,huellkurve1$
LINE INPUT #1,berechne$
LINE INPUT #1,rechte_taste$
LINE INPUT #1,endpunkt$
LINE INPUT #1,lot_an$
LINE INPUT #1,noname$
LINE INPUT #1,symbol$
LINE INPUT #1,orginal_fenster$
LINE INPUT #1,dmc_font$
LINE INPUT #1,bild_datei_zu$
LINE INPUT #1,stad_laden$
LINE INPUT #1,plotter_ist_off$
LINE INPUT #1,plot_datei$
LINE INPUT #1,kein_treiber$
LINE INPUT #1,schnittstelle_auf$
LINE INPUT #1,polygone_vereinen$
LINE INPUT #1,loesche_einzelne$
LINE INPUT #1,quelle$
LINE INPUT #1,ziel$
LINE INPUT #1,nivelliere$
LINE INPUT #1,alle_daten_l$
LINE INPUT #1,ganzer_zeichensatz$
LINE INPUT #1,font_daten_loeschen$
LINE INPUT #1,zeichen_matrix$
LINE INPUT #1,datei_existiert$
LINE INPUT #1,datei_ueberschreiben$
LINE INPUT #1,glaetten_mit$
LINE INPUT #1,gerade_bezier$
LINE INPUT #1,glaetten$
LINE INPUT #1,bereich$
LINE INPUT #1,path$
LINE INPUT #1,help_mittelpunkt$
LINE INPUT #1,help_radius$
LINE INPUT #1,help_position$
LINE INPUT #1,help_startwinkel$
LINE INPUT #1,help_endwinkel$
LINE INPUT #1,help_polygon$
LINE INPUT #1,help_punkt$
LINE INPUT #1,help_linie$
LINE INPUT #1,help_element$
LINE INPUT #1,help_verrund$
LINE INPUT #1,help_loesche$
LINE INPUT #1,help_trenn$
LINE INPUT #1,help_move$
LINE INPUT #1,help_sel$
LINE INPUT #1,help_move_window$
LINE INPUT #1,help_rahmen$
LINE INPUT #1,help_edit$
LINE INPUT #1,help_bezier$
LINE INPUT #1,help_status$
LINE INPUT #1,help_ortho$
LINE INPUT #1,help_grid$
LINE INPUT #1,help_free$
LINE INPUT #1,help_snap$
LINE INPUT #1,help_editor$
LINE INPUT #1,help_pfad$
CLOSE #1
' ****************************************************************************
integer%=VARPTR(punkte_x%(1))-VARPTR(punkte_x%(0)) ! Länge in Bytes Integer
'
z_editor%(0)=2048 ! Top Line Y
z_editor%(1)=3072 ! Ascent Line Y
z_editor%(2)=6144 ! Half Line Y
z_editor%(3)=11264 ! Base Line Y
z_editor%(4)=13952 ! Descent Line Y
z_editor%(5)=14336 ! Bottom Line Y
'
z_editor%(6)=0 ! Matrix links X
z_editor%(7)=16384 ! Matrix rechts X
z_editor%(8)=1280 ! Kerning links X
z_editor%(9)=1280 ! Kerning links X
z_editor%(10)=1280 ! Kerning links X
z_editor%(11)=1280 ! Kerning links X
z_editor%(12)=1280 ! Kerning links X
z_editor%(13)=1280 ! Kerning links X
z_editor%(14)=1280 ! Kerning links X
z_editor%(15)=1280 ! Kerning links X
z_editor%(16)=15104 ! Kerning rechts X
z_editor%(17)=15104 ! Kerning rechts X
z_editor%(18)=15104 ! Kerning rechts X
z_editor%(19)=15104 ! Kerning rechts X
z_editor%(20)=15104 ! Kerning rechts X
z_editor%(21)=15104 ! Kerning rechts X
z_editor%(22)=15104 ! Kerning rechts X
z_editor%(23)=15104 ! Kerning rechts X
z_editor%(24)=z_editor%(0) ! Kerning Y
z_editor%(25)=(z_editor%(5)-z_editor%(0))/8 ! Kerning Y
z_editor%(26)=z_editor%(24)+z_editor%(25) ! Kerning Y
z_editor%(27)=z_editor%(26)+z_editor%(25) ! Kerning Y
z_editor%(28)=z_editor%(27)+z_editor%(25) ! Kerning Y
z_editor%(29)=z_editor%(28)+z_editor%(25) ! Kerning Y
z_editor%(30)=z_editor%(29)+z_editor%(25) ! Kerning Y
z_editor%(31)=z_editor%(30)+z_editor%(25) ! Kerning Y
z_editor%(32)=0 ! Matrix oben Y
'
' ******************************************************************************
' * *
' * MENU INITIALISIERUNG *
' * *
' ******************************************************************************
'
BMOVE V:serien_nummer$,V:serien_nummer,8
BMOVE V:serien_nummer_vergleich$,V:serien_nummer_vergleich,8
regist_nr%=serien_nummer_vergleich
IF serien_nummer<>(serien_nummer_vergleich XOR magic%)
PRINT "SORRY HACKER"
PAUSE 300
SYSTEM
ENDIF
INLINE zasm_ptr%,4136
INLINE pack_img%,958
INLINE calc_bezier%,1050
INLINE p_num%,360
INLINE find_line%,356
INLINE kontour%,216
INLINE staddec%,184
INLINE imgdec%,228
INLINE findexcept%,52
INLINE findpointexcept%,70
mfang$=MKI$(7)+MKI$(7)+MKI$(1)+MKI$(0)+MKI$(1)
mfang$=mfang$+MKI$(&X1111111111111110)
mfang$=mfang$+MKI$(&X1111111111111110)
mfang$=mfang$+MKI$(&X1100001110000110)
mfang$=mfang$+MKI$(&X1100001110000110)
mfang$=mfang$+MKI$(&X1100001110000110)
mfang$=mfang$+MKI$(&X1100001110000110)
mfang$=mfang$+MKI$(&X1111110001111110)
mfang$=mfang$+MKI$(&X1111110001111110)
mfang$=mfang$+MKI$(&X1111110001111110)
mfang$=mfang$+MKI$(&X1100001110000110)
mfang$=mfang$+MKI$(&X1100001110000110)
mfang$=mfang$+MKI$(&X1100001110000110)
mfang$=mfang$+MKI$(&X1100001110000110)
mfang$=mfang$+MKI$(&X1111111111111110)
mfang$=mfang$+MKI$(&X1111111111111110)
mfang$=mfang$+MKI$(&X0)
'
mfang$=mfang$+MKI$(&X1111111111111110)
mfang$=mfang$+MKI$(&X1000000100000010)
mfang$=mfang$+MKI$(&X1000000100000010)
mfang$=mfang$+MKI$(&X1000000100000010)
mfang$=mfang$+MKI$(&X1000000100000010)
mfang$=mfang$+MKI$(&X1000000100000010)
mfang$=mfang$+MKI$(&X1000000000000010)
mfang$=mfang$+MKI$(&X1111110001111110)
mfang$=mfang$+MKI$(&X1000000000000010)
mfang$=mfang$+MKI$(&X1000000100000010)
mfang$=mfang$+MKI$(&X1000000100000010)
mfang$=mfang$+MKI$(&X1000000100000010)
mfang$=mfang$+MKI$(&X1000000100000010)
mfang$=mfang$+MKI$(&X1000000100000010)
mfang$=mfang$+MKI$(&X1111111111111110)
mfang$=mfang$+MKI$(&X0)
'
mfang_klein$=MKI$(7)+MKI$(7)+MKI$(1)+MKI$(0)+MKI$(1)
mfang_klein$=mfang_klein$+MKI$(&X0)
mfang_klein$=mfang_klein$+MKI$(&X0)
mfang_klein$=mfang_klein$+MKI$(&X11111111111000)
mfang_klein$=mfang_klein$+MKI$(&X11111111111000)
mfang_klein$=mfang_klein$+MKI$(&X11001110011000)
mfang_klein$=mfang_klein$+MKI$(&X11001110011000)
mfang_klein$=mfang_klein$+MKI$(&X11110001111000)
mfang_klein$=mfang_klein$+MKI$(&X11110001111000)
mfang_klein$=mfang_klein$+MKI$(&X11110001111000)
mfang_klein$=mfang_klein$+MKI$(&X11001110011000)
mfang_klein$=mfang_klein$+MKI$(&X11001110011000)
mfang_klein$=mfang_klein$+MKI$(&X11111111111000)
mfang_klein$=mfang_klein$+MKI$(&X11111111111000)
mfang_klein$=mfang_klein$+MKI$(&X0)
mfang_klein$=mfang_klein$+MKI$(&X0)
mfang_klein$=mfang_klein$+MKI$(&X0)
'
mfang_klein$=mfang_klein$+MKI$(&X0)
mfang_klein$=mfang_klein$+MKI$(&X0)
mfang_klein$=mfang_klein$+MKI$(&X0)
mfang_klein$=mfang_klein$+MKI$(&X1111111110000)
mfang_klein$=mfang_klein$+MKI$(&X1000100010000)
mfang_klein$=mfang_klein$+MKI$(&X1000100010000)
mfang_klein$=mfang_klein$+MKI$(&X1000000010000)
mfang_klein$=mfang_klein$+MKI$(&X1110001110000)
mfang_klein$=mfang_klein$+MKI$(&X1000000010000)
mfang_klein$=mfang_klein$+MKI$(&X1000100010000)
mfang_klein$=mfang_klein$+MKI$(&X1000100010000)
mfang_klein$=mfang_klein$+MKI$(&X1111111110000)
mfang_klein$=mfang_klein$+MKI$(&X0)
mfang_klein$=mfang_klein$+MKI$(&X0)
mfang_klein$=mfang_klein$+MKI$(&X0)
mfang_klein$=mfang_klein$+MKI$(&X0)
'
mdaten$=MKI$(7)+MKI$(7)+MKI$(1)+MKI$(0)+MKI$(1)
mdaten$=mdaten$+MKI$(&X1110000000)
mdaten$=mdaten$+MKI$(&X1110000000)
mdaten$=mdaten$+MKI$(&X1110000000)
mdaten$=mdaten$+MKI$(&X1110000000)
mdaten$=mdaten$+MKI$(&X1110000000)
mdaten$=mdaten$+MKI$(&X1110000000)
mdaten$=mdaten$+MKI$(&X1111110001111110)
mdaten$=mdaten$+MKI$(&X1111110001111110)
mdaten$=mdaten$+MKI$(&X1111110001111110)
mdaten$=mdaten$+MKI$(&X1110000000)
mdaten$=mdaten$+MKI$(&X1110000000)
mdaten$=mdaten$+MKI$(&X1110000000)
mdaten$=mdaten$+MKI$(&X1110000000)
mdaten$=mdaten$+MKI$(&X1110000000)
mdaten$=mdaten$+MKI$(&X1110000000)
mdaten$=mdaten$+MKI$(&X0)
'
mdaten$=mdaten$+MKI$(&X100000000)
mdaten$=mdaten$+MKI$(&X100000000)
mdaten$=mdaten$+MKI$(&X100000000)
mdaten$=mdaten$+MKI$(&X100000000)
mdaten$=mdaten$+MKI$(&X100000000)
mdaten$=mdaten$+MKI$(&X100000000)
mdaten$=mdaten$+MKI$(&X0)
mdaten$=mdaten$+MKI$(&X1111110001111110)
mdaten$=mdaten$+MKI$(&X0)
mdaten$=mdaten$+MKI$(&X100000000)
mdaten$=mdaten$+MKI$(&X100000000)
mdaten$=mdaten$+MKI$(&X100000000)
mdaten$=mdaten$+MKI$(&X100000000)
mdaten$=mdaten$+MKI$(&X100000000)
mdaten$=mdaten$+MKI$(&X100000000)
mdaten$=mdaten$+MKI$(&X0)
'
schwer$=MKI$(7)+MKI$(7)+MKI$(-1)+MKI$(0)+MKI$(1)
schwer$=schwer$+MKI$(&X0) !
schwer$=schwer$+MKI$(&X0)
schwer$=schwer$+MKI$(&X11111000000) !
schwer$=schwer$+MKI$(&X11111000000)
schwer$=schwer$+MKI$(&X1100111110000) !
schwer$=schwer$+MKI$(&X1100111110000)
schwer$=schwer$+MKI$(&X10000111111000) !
schwer$=schwer$+MKI$(&X10000111111000)
schwer$=schwer$+MKI$(&X10000111111000) !
schwer$=schwer$+MKI$(&X10000111111000)
schwer$=schwer$+MKI$(&X100000111111100) !
schwer$=schwer$+MKI$(&X100000111111100)
schwer$=schwer$+MKI$(&X100000111111100) !
schwer$=schwer$+MKI$(&X100000111111100)
schwer$=schwer$+MKI$(&X111111011111100) !!
schwer$=schwer$+MKI$(&X111111011111100)
schwer$=schwer$+MKI$(&X111111100000100) !
schwer$=schwer$+MKI$(&X111111100000100)
schwer$=schwer$+MKI$(&X111111100000100) !
schwer$=schwer$+MKI$(&X111111100000100)
schwer$=schwer$+MKI$(&X11111100001000) !
schwer$=schwer$+MKI$(&X11111100001000)
schwer$=schwer$+MKI$(&X11111100001000) !
schwer$=schwer$+MKI$(&X11111100001000)
schwer$=schwer$+MKI$(&X1111100110000) !
schwer$=schwer$+MKI$(&X1111100110000)
schwer$=schwer$+MKI$(&X11111000000) !
schwer$=schwer$+MKI$(&X11111000000)
schwer$=schwer$+MKI$(&X0) !
schwer$=schwer$+MKI$(&X0)
schwer$=schwer$+MKI$(&X0) !
schwer$=schwer$+MKI$(&X0)
pfad_read
reset
RESERVE -64*1024
DIM work%((FRE(0)-80*1024)/4)
daten_ptr%=V:work%(0)
work_space%=DIM?(work%())*4
KEYPAD 8
~RSRC_LOAD("SYS\CUTOUT.RSC")
~RSRC_GADDR(0,tree00&,tree0_adr%)
~RSRC_GADDR(0,tree01&,tree1_adr%)
~RSRC_GADDR(0,tree02&,tree2_adr%)
~RSRC_GADDR(0,tree03&,tree3_adr%)
~RSRC_GADDR(0,tree04&,tree4_adr%)
~RSRC_GADDR(0,tree05&,tree5_adr%)
~RSRC_GADDR(0,tree06&,tree6_adr%)
~RSRC_GADDR(0,tree07&,tree7_adr%)
~RSRC_GADDR(0,tree08&,tree8_adr%)
~RSRC_GADDR(0,tree09&,tree9_adr%)
~RSRC_GADDR(0,tree10&,tree10_adr%)
~RSRC_GADDR(0,tree11&,tree11_adr%)
~RSRC_GADDR(0,tree12&,tree12_adr%)
~RSRC_GADDR(0,tree13&,tree13_adr%)
~RSRC_GADDR(0,tree14&,tree14_adr%)
~RSRC_GADDR(0,tree15&,tree15_adr%)
~RSRC_GADDR(0,tree16&,tree16_adr%)
~RSRC_GADDR(0,tree17&,tree17_adr%)
~RSRC_GADDR(0,tree18&,tree18_adr%)
~RSRC_GADDR(0,tree19&,tree19_adr%)
~RSRC_GADDR(0,tree20&,tree20_adr%)
~RSRC_GADDR(0,tree21&,tree21_adr%)
~RSRC_GADDR(0,tree22&,tree22_adr%)
~RSRC_GADDR(0,tree23&,tree23_adr%)
~RSRC_GADDR(0,tree24&,tree24_adr%)
~RSRC_GADDR(0,tree25&,tree25_adr%)
~RSRC_GADDR(0,tree26&,tree26_adr%)
~RSRC_GADDR(0,tree27&,tree27_adr%)
~RSRC_GADDR(0,tree28&,tree28_adr%)
~RSRC_GADDR(0,tree29&,tree29_adr%)
~RSRC_GADDR(0,tree30&,tree30_adr%)
~RSRC_GADDR(0,tree31&,tree31_adr%)
~RSRC_GADDR(0,tree32&,tree32_adr%)
~RSRC_GADDR(0,tree33&,tree33_adr%)
~RSRC_GADDR(0,tree34&,tree34_adr%)
~RSRC_GADDR(0,tree35&,tree35_adr%)
~RSRC_GADDR(0,tree36&,tree36_adr%)
~RSRC_GADDR(0,tree37&,tree37_adr%)
~RSRC_GADDR(0,tree38&,tree38_adr%)
~RSRC_GADDR(0,tree39&,tree39_adr%)
~RSRC_GADDR(0,tree40&,tree40_adr%)
~RSRC_GADDR(0,tree41&,tree41_adr%)
~FORM_CENTER(tree6_adr%)
~FORM_CENTER(tree7_adr%)
~FORM_CENTER(tree8_adr%)
~FORM_CENTER(tree10_adr%)
~FORM_CENTER(tree11_adr%)
~FORM_CENTER(tree12_adr%)
~FORM_CENTER(tree13_adr%)
~FORM_CENTER(tree14_adr%)
~FORM_CENTER(tree15_adr%)
~FORM_CENTER(tree16_adr%)
~FORM_CENTER(tree17_adr%)
~FORM_CENTER(tree18_adr%)
~FORM_CENTER(tree19_adr%)
~FORM_CENTER(tree20_adr%)
~FORM_CENTER(tree21_adr%)
~FORM_CENTER(tree22_adr%)
~FORM_CENTER(tree23_adr%)
~FORM_CENTER(tree24_adr%)
~FORM_CENTER(tree26_adr%)
~FORM_CENTER(tree27_adr%)
~FORM_CENTER(tree28_adr%)
~FORM_CENTER(tree29_adr%)
~FORM_CENTER(tree30_adr%)
~FORM_CENTER(tree31_adr%)
~FORM_CENTER(tree32_adr%)
~FORM_CENTER(tree33_adr%)
~FORM_CENTER(tree35_adr%)
~FORM_CENTER(tree36_adr%)
~FORM_CENTER(tree37_adr%)
~FORM_CENTER(tree38_adr%)
~FORM_CENTER(tree39_adr%)
~FORM_CENTER(tree40_adr%)
~FORM_CENTER(tree41_adr%)
xt6&=DPEEK(tree6_adr%+16)
yt6&=DPEEK(tree6_adr%+18)
bt6&=DPEEK(tree6_adr%+20)
ht6&=DPEEK(tree6_adr%+22)
xt7&=DPEEK(tree7_adr%+16)
yt7&=DPEEK(tree7_adr%+18)
bt7&=DPEEK(tree7_adr%+20)
ht7&=DPEEK(tree7_adr%+22)
xt8&=DPEEK(tree8_adr%+16)
yt8&=DPEEK(tree8_adr%+18)
bt8&=DPEEK(tree8_adr%+20)
ht8&=DPEEK(tree8_adr%+22)
xt10&=DPEEK(tree10_adr%+16)
yt10&=DPEEK(tree10_adr%+18)
bt10&=DPEEK(tree10_adr%+20)
ht10&=DPEEK(tree10_adr%+22)
xt11&=DPEEK(tree11_adr%+16)
yt11&=DPEEK(tree11_adr%+18)
bt11&=DPEEK(tree11_adr%+20)
ht11&=DPEEK(tree11_adr%+22)
xt12&=DPEEK(tree12_adr%+16)
yt12&=DPEEK(tree12_adr%+18)
bt12&=DPEEK(tree12_adr%+20)
ht12&=DPEEK(tree12_adr%+22)
xt13&=DPEEK(tree13_adr%+16)
yt13&=DPEEK(tree13_adr%+18)
bt13&=DPEEK(tree13_adr%+20)
ht13&=DPEEK(tree13_adr%+22)
xt14&=DPEEK(tree14_adr%+16)
yt14&=DPEEK(tree14_adr%+18)
bt14&=DPEEK(tree14_adr%+20)
ht14&=DPEEK(tree14_adr%+22)
xt15&=DPEEK(tree15_adr%+16)
yt15&=DPEEK(tree15_adr%+18)
bt15&=DPEEK(tree15_adr%+20)
ht15&=DPEEK(tree15_adr%+22)
xt16&=DPEEK(tree16_adr%+16)
yt16&=DPEEK(tree16_adr%+18)
bt16&=DPEEK(tree16_adr%+20)
ht16&=DPEEK(tree16_adr%+22)
xt17&=DPEEK(tree17_adr%+16)
yt17&=DPEEK(tree17_adr%+18)
bt17&=DPEEK(tree17_adr%+20)
ht17&=DPEEK(tree17_adr%+22)
xt18&=DPEEK(tree18_adr%+16)
yt18&=DPEEK(tree18_adr%+18)
bt18&=DPEEK(tree18_adr%+20)
ht18&=DPEEK(tree18_adr%+22)
xt19&=DPEEK(tree19_adr%+16)
yt19&=DPEEK(tree19_adr%+18)
bt19&=DPEEK(tree19_adr%+20)
ht19&=DPEEK(tree19_adr%+22)
xt20&=DPEEK(tree20_adr%+16)
yt20&=DPEEK(tree20_adr%+18)
bt20&=DPEEK(tree20_adr%+20)
ht20&=DPEEK(tree20_adr%+22)
xt21&=DPEEK(tree21_adr%+16)
yt21&=DPEEK(tree21_adr%+18)
bt21&=DPEEK(tree21_adr%+20)
ht21&=DPEEK(tree21_adr%+22)
xt22&=DPEEK(tree22_adr%+16)
yt22&=DPEEK(tree22_adr%+18)
bt22&=DPEEK(tree22_adr%+20)
ht22&=DPEEK(tree22_adr%+22)
xt23&=DPEEK(tree23_adr%+16)
yt23&=DPEEK(tree23_adr%+18)
bt23&=DPEEK(tree23_adr%+20)
ht23&=DPEEK(tree23_adr%+22)
DPOKE tree24_adr%+16,DPEEK(tree24_adr%+16)+200
xt24&=DPEEK(tree24_adr%+16)
yt24&=DPEEK(tree24_adr%+18)
bt24&=DPEEK(tree24_adr%+20)
ht24&=DPEEK(tree24_adr%+22)
xt26&=DPEEK(tree26_adr%+16)
yt26&=DPEEK(tree26_adr%+18)
bt26&=DPEEK(tree26_adr%+20)
ht26&=DPEEK(tree26_adr%+22)
xt27&=DPEEK(tree27_adr%+16)
yt27&=DPEEK(tree27_adr%+18)
bt27&=DPEEK(tree27_adr%+20)
ht27&=DPEEK(tree27_adr%+22)
xt28&=DPEEK(tree28_adr%+16)
yt28&=DPEEK(tree28_adr%+18)
bt28&=DPEEK(tree28_adr%+20)
ht28&=DPEEK(tree28_adr%+22)
xt29&=DPEEK(tree29_adr%+16)
yt29&=DPEEK(tree29_adr%+18)
bt29&=DPEEK(tree29_adr%+20)
ht29&=DPEEK(tree29_adr%+22)
xt30&=DPEEK(tree30_adr%+16)
yt30&=DPEEK(tree30_adr%+18)
bt30&=DPEEK(tree30_adr%+20)
ht30&=DPEEK(tree30_adr%+22)
xt31&=DPEEK(tree31_adr%+16)
yt31&=DPEEK(tree31_adr%+18)
bt31&=DPEEK(tree31_adr%+20)
ht31&=DPEEK(tree31_adr%+22)
xt32&=DPEEK(tree32_adr%+16)
yt32&=DPEEK(tree32_adr%+18)
bt32&=DPEEK(tree32_adr%+20)
ht32&=DPEEK(tree32_adr%+22)
xt35&=DPEEK(tree35_adr%+16)
yt35&=DPEEK(tree35_adr%+18)
bt35&=DPEEK(tree35_adr%+20)
ht35&=DPEEK(tree35_adr%+22)
xt33&=DPEEK(tree33_adr%+16)
yt33&=DPEEK(tree33_adr%+18)
bt33&=DPEEK(tree33_adr%+20)
ht33&=DPEEK(tree33_adr%+22)
xt36&=DPEEK(tree36_adr%+16)
yt36&=DPEEK(tree36_adr%+18)
bt36&=DPEEK(tree36_adr%+20)
ht36&=DPEEK(tree36_adr%+22)
xt37&=DPEEK(tree37_adr%+16)
yt37&=DPEEK(tree37_adr%+18)
bt37&=DPEEK(tree37_adr%+20)
ht37&=DPEEK(tree37_adr%+22)
xt38&=DPEEK(tree38_adr%+16)
yt38&=DPEEK(tree38_adr%+18)
bt38&=DPEEK(tree38_adr%+20)
ht38&=DPEEK(tree38_adr%+22)
xt39&=DPEEK(tree39_adr%+16)
yt39&=DPEEK(tree39_adr%+18)
bt39&=DPEEK(tree39_adr%+20)
ht39&=DPEEK(tree39_adr%+22)
xt40&=DPEEK(tree40_adr%+16)
yt40&=DPEEK(tree40_adr%+18)
bt40&=DPEEK(tree40_adr%+20)
ht40&=DPEEK(tree40_adr%+22)
xt41&=DPEEK(tree41_adr%+16)
yt41&=DPEEK(tree41_adr%+18)
bt41&=DPEEK(tree41_adr%+20)
ht41&=DPEEK(tree41_adr%+22)
bt_output&=OB_W(tree40_adr%,pl100&)
CHAR{{OB_SPEC(tree6_adr%,t_hoehe&)}}=STR$(INT(zeichen_hoehe%/100))
CHAR{{OB_SPEC(tree7_adr%,zabs&)}}=STR$(INT(zeilen_abstand_prozent%))
CHAR{{OB_SPEC(tree9_adr%,z_char&)}}=CHR$(z_ascii_old%+32)
CHAR{{OB_SPEC(tree8_adr%,string_text&)}}=abc$
CHAR{{OB_SPEC(tree12_adr%,bstep&)}}=STR$(b_vari/100)
CHAR{{OB_SPEC(tree13_adr%,punkte&)}}=STR$(pointer%)
CHAR{{OB_SPEC(tree13_adr%,rest&)}}=STR$(p_max%-pointer%)
CHAR{{OB_SPEC(tree13_adr%,version&)}}=revision$
CHAR{{OB_SPEC(tree14_adr%,rx1&)}}=STR$(folie_x%)
CHAR{{OB_SPEC(tree14_adr%,ry1&)}}=STR$(folie_y%)
CHAR{{OB_SPEC(tree14_adr%,rx2&)}}=STR$(folie_x2%)
CHAR{{OB_SPEC(tree14_adr%,ry2&)}}=STR$(folie_y2%)
CHAR{{OB_SPEC(tree14_adr%,rx3&)}}=STR$(folie_x3%)
CHAR{{OB_SPEC(tree14_adr%,ry3&)}}=STR$(folie_y3%)
CHAR{{OB_SPEC(tree15_adr%,p_init1&)}}=p_init1$
CHAR{{OB_SPEC(tree15_adr%,p_init2&)}}=p_init2$
CHAR{{OB_SPEC(tree15_adr%,overcut&)}}=STR$(overcut|/10)
CHAR{{OB_SPEC(tree15_adr%,ma&)}}=ma$
CHAR{{OB_SPEC(tree15_adr%,da&)}}=da$
CHAR{{OB_SPEC(tree17_adr%,outl&)}}="3.0"
CHAR{{OB_SPEC(tree18_adr%,schraffd&)}}=STR$(schraff_dist/100)
CHAR{{OB_SPEC(tree18_adr%,schraffi&)}}=STR$(schraff_inc/100)
CHAR{{OB_SPEC(tree18_adr%,schraffw&)}}=STR$(schraff_winkel)
CHAR{{OB_SPEC(tree18_adr%,schrafix&)}}=STR$(schraff_fix_abst)
CHAR{{OB_SPEC(tree21_adr%,t_step&)}}=STR$(bit_count_max|)
CHAR{{OB_SPEC(tree21_adr%,t_gerade&)}}=STR$(geraden_fehler|)
CHAR{{OB_SPEC(tree21_adr%,t_schmutz&)}}=STR$(schmutz_filter%)
CHAR{{OB_SPEC(tree21_adr%,bschwelle&)}}=STR$(lange_gerade%/100)
CHAR{{OB_SPEC(tree21_adr%,knickwinkel&)}}=STR$(CINT(DEG(knick_winkel_max)))
CHAR{{OB_SPEC(tree21_adr%,bogen_max&)}}=STR$(CINT(DEG(bogen_max*2)))
CHAR{{OB_SPEC(tree21_adr%,abweichung_gerade&)}}=STR$(abweichung_gerade%/100)
CHAR{{OB_SPEC(tree22_adr%,scann_x&)}}="1664"
CHAR{{OB_SPEC(tree22_adr%,scann_y&)}}="800"
CHAR{{OB_SPEC(tree23_adr%,radius&)}}="10"
CHAR{{OB_SPEC(tree27_adr%,calamus_nr&)}}=STR$(calamus_nr%)
CHAR{{OB_SPEC(tree29_adr%,kostfak&)}}=STR$(kostfak)
CHAR{{OB_SPEC(tree31_adr%,anz_rot&)}}="3"
CHAR{{OB_SPEC(tree31_adr%,phi_rot&)}}="90"
OB_STATE(tree15_adr%,rs232&)=state_rs232&+16
OB_STATE(tree15_adr%,cent&)=state_rs232& XOR 1+16
OB_STATE(tree15_adr%,hp&)=state_hp&+16
OB_STATE(tree15_adr%,gp&)=state_hp& XOR 1+16
OB_STATE(tree26_adr%,absolut&)=absolut!+18
OB_STATE(tree26_adr%,relativ&)=absolut!+17
OB_STATE(tree26_adr%,polar&)=absolut!+17
IF gdu=1
OB_STATE(tree15_adr%,gdu01&)=17
ELSE
IF gdu=2.5
OB_STATE(tree15_adr%,gdu025&)=17
ELSE
IF gdu=5
OB_STATE(tree15_adr%,gdu05&)=17
ELSE
OB_STATE(tree15_adr%,gdu1&)=17
ENDIF
ENDIF
ENDIF
OB_STATE(tree1_adr%,lock&)=1
IF mimaki!
OB_STATE(tree15_adr%,gdu05&)=17
OB_STATE(tree15_adr%,gdu01&)=8
OB_STATE(tree15_adr%,gdu025&)=8
OB_STATE(tree15_adr%,gdu1&)=8
OB_STATE(tree15_adr%,rs232&)=17
OB_STATE(tree15_adr%,mgl&)=17
OB_STATE(tree15_adr%,cent&)=16
OB_STATE(tree15_adr%,hp&)=16
OB_STATE(tree15_adr%,gp&)=16
ELSE
OB_STATE(tree15_adr%,mgl&)=8
ENDIF
~WIND_GET(0,4) ! get desk size
BMOVE GINTOUT+2,tree0_adr%+16,8 ! set into rsc
BMOVE GINTOUT+2,tree1_adr%+16,8 ! set into rsc
BMOVE GINTOUT+2,tree2_adr%+16,8 ! set into rsc
BMOVE GINTOUT+2,tree3_adr%+16,8 ! set into rsc
BMOVE GINTOUT+2,tree4_adr%+16,8 ! set into rsc
BMOVE GINTOUT+2,tree5_adr%+16,8 ! set into rsc
BMOVE GINTOUT+2,tree9_adr%+16,8 ! set into rsc
BMOVE GINTOUT+2,tree25_adr%+16,8 ! set into rsc
BMOVE GINTOUT+2,tree34_adr%+16,8 ! set into rsc
wind_newdesk(tree0_adr%,0) ! install Datei Baum
IF default_font$<>""
datei$=ein_space$
IF EXIST(pfad_fnt$+"\"+default_font$)
load_font(pfad_fnt$+"\"+default_font$)
programm_font$=LEFT$(default_font$,LEN(default_font$)-4)
ELSE
make_new_font(-1)
ENDIF
ELSE
make_new_font(-1)
ENDIF
m$(0)=""
m$(1)=" CUTOUT"
m$(2)="--------------------"
m$(3)=CHR$(2)
m$(4)=CHR$(3)
m$(5)=CHR$(4)
m$(6)=CHR$(5)
m$(7)=CHR$(6)
m$(8)=CHR$(7)
m$(9)=CHR$(8)
m$(10)=""
m$(11)=pd_menu$
m$(12)=pd_datei$
m$(13)=pd_editieren$
m$(14)=pd_fenster$
m$(15)=pd_schnittpunkt$
m$(16)=pd_bogen$
m$(17)="----------------------"
m$(18)=pd_text$
m$(19)=pd_zeicheneditor$
m$(20)=m$(17)
m$(21)=pd_extra$
m$(22)=m$(17)
m$(23)=pd_quit$
m$(24)=""
m$(25)=pd_optionen$
m$(26)=pd_marker_anzeigen$
m$(27)=pd_tangenten_anzeigen$
m$(28)=pd_fangradius_klein$
m$(29)=pd_polygon_modus$
m$(30)=pd_schnittpunkt_genau$
m$(31)=pd_koordinaten$
m$(32)=pd_element_selektieren$
m$(33)=pd_polygon_selektieren$
m$(34)=pd_warnmeldungen$
m$(35)="---------------------------"
m$(36)=pd_skaliere_alles$
m$(37)=m$(35)
m$(38)=pd_punkte_nivellieren$
m$(39)=pd_tangente$
m$(40)=m$(35)
m$(41)=pd_plotflaeche$
m$(42)=pd_bezier_step_aendern$
m$(43)=pd_plotter_einstellung$
m$(44)=pd_kosten_faktor$
m$(45)=pd_pfad_sichern$
m$(46)=""
m$(47)=pd_figur$
m$(48)=pd_rechteck$
m$(49)=pd_n_eck$
m$(50)=pd_polygon_outline$
m$(51)=pd_aequidistante$
m$(52)=pd_frame$
m$(53)="---------------------------"
m$(54)=pd_polygone_ausrichten$
m$(55)=pd_polygone_zentrieren$
m$(56)=pd_polygone_vereinen$
m$(57)=pd_polygone_fuellen$
m$(58)=m$(53)
m$(59)=pd_einzelne_punkte_loeschen$
m$(60)=""
m$(61)=pd_linie$
m$(62)=pd_bezier_vektor$
m$(63)=pd_bezier_einfuegen$
m$(64)=pd_tausche_bezier_vektor$
m$(65)=m$(53)
m$(66)=pd_knacken$
m$(67)=pd_trimmen$
m$(68)=pd_lot$
m$(69)=pd_verlaengern$
m$(70)=pd_teilen$
m$(71)=pd_messen$
m$(72)=m$(53)
m$(73)=pd_schnittp_2er$
m$(74)=pd_schnittp_n$
m$(75)=""
m$(76)=pd_effekt$
m$(77)=pd_parameter_schraffur$
m$(78)=pd_polygon_schraffieren$
m$(79)=pd_alles_schraffieren$
m$(80)="------------------------"
m$(81)=pd_schatten$
m$(82)=pd_einpassen$
m$(83)=m$(80)
m$(84)=pd_kugel$
m$(85)=""
m$(86)=""
MENU m$()
IF fangklein!
MENU 28,1
ENDIF
IF polygonmode!
MENU 29,1
ENDIF
IF warn!
MENU 34,1
ENDIF
CLIP 0,0,639,399 OFFSET 0,0
DEFTEXT 1,0,0,6
COLOR 1
TEXT 400,7,"Zoom X:"
TEXT 400,15,"Zoom Y:"
TEXT 540,7,"X:"
TEXT 540,15,"Y:"
DEFTEXT 1,0,0,4
TEXT 624,7,"mm"
TEXT 624,15,"mm"
LINE 536,0,536,20
LINE 396,0,396,20
'
~FORM_DIAL(3,0,0,0,0,0,0,desk_breite&,desk_hoehe&) !redraw all
'
layer!=FALSE
zoom=1
x_layer%=folie_x%
y_layer%=folie_y%
x_layero%=x_layer%
y_layero%=y_layer%
res_x%=x_layer%
res_y%=y_layer%
x_offset&=0
y_offset&=0
res_x_old%=x_layer%
res_y_old%=y_layer%
x_offset_old&=0
y_offset_old&=0
pointer%=0
get_desktop
scrb_old&=scrb&
scrh_old&=scrh&
CLOSEW 1
programm$=noname$
INT{WINDTAB+2}=&X111111000000
INT{WINDTAB+4}=scrx&
INT{WINDTAB+6}=scry&
INT{WINDTAB+8}=scrb&
INT{WINDTAB+10}=scrh&
help_titel
OPENW 1
calc_slid
~WIND_GET(1,4,x_win&,y_win&,b_window&,h_window&)
neues_polygon!=TRUE
do_redraw
DEFMOUSE 3
p_zoom(zoom*100,zoom*100)
CHAR{{OB_SPEC(tree14_adr%,rx1&)}}=STR$(x_layer%)
CHAR{{OB_SPEC(tree14_adr%,ry1&)}}=STR$(y_layer%)
' test_vollbild
'
~OBJC_OFFSET(tree28_adr%,gtprewin&,gtxv&,gtyv&)
gtxv&=gtxv&-x_win&+1
gtyv&=gtyv&-y_win&+1
'
ON MENU MESSAGE GOSUB message
ON MENU BUTTON 1,1,1 GOSUB button
ON MENU GOSUB menu
ON MENU KEY GOSUB key
' ON ERROR GOSUB fehler
'
'
REPEAT
ON MENU
UNTIL end!
'
IF modified!
IF pointer%>0
ALERT 3,"| "+sichere$+daten$,1,ja_nein$,i%
IF i%=1
@save_vektor
ENDIF
ENDIF
ENDIF
'
' Bei fertigen Programmen hier nur QUIT
'
reset
~WIND_GET(0,10)
IF DPEEK(GINTOUT+2)
ALERT 1,"Accessories",1,"Close|Quit",i%
IF i%=2
QUIT
ENDIF
REPEAT
~WIND_GET(0,10)
UNTIL DPEEK(GINTOUT+2)=0
ENDIF
RESERVE ! XBIOS(2)-HIMEM+FRE(0)-16384
'
PROCEDURE fehler
ALERT 1,fehler$,1,leider$,i%
' RESUME NEXT
RETURN
'
'
PROCEDURE get_undo
LOCAL dp%
dp%=daten_ptr%
IF (pointer%*9+1<work_space%) AND (NOT layer_geladen!)
LONG{dp%}=pointer%
ADD dp%,4
undo!=TRUE
BMOVE VARPTR(punkte_x%(0)),dp%,pointer%*4
ADD dp%,pointer%*4
BMOVE VARPTR(punkte_y%(0)),dp%,pointer%*4
ADD dp%,pointer%*4
BMOVE VARPTR(punkte_def|(0)),dp%,pointer%
undo!=TRUE
ELSE
undo!=FALSE
ENDIF
RETURN
'
PROCEDURE put_undo
LOCAL dp%
IF undo!
dp%=daten_ptr%
pointer%=LONG{dp%}
ADD dp%,4
BMOVE dp%,VARPTR(punkte_x%(0)),pointer%*4
ADD dp%,pointer%*4
BMOVE dp%,VARPTR(punkte_y%(0)),pointer%*4
ADD dp%,pointer%*4
BMOVE dp%,VARPTR(punkte_def|(0)),pointer%
undo!=FALSE
do_redraw
ENDIF
RETURN
'
PROCEDURE output_drucker
LOCAL handle&,x_resi&,y_resi&,z_old
IF GDOS?
ERASE work%()
IF FRE(0)>250000
RESERVE -250000
handle&=V_OPNWK(21)
IF handle&<>0
V~H=handle&
x_resi&=INTOUT(0)
y_resi&=INTOUT(1)
~V_CLRWK()
z_old=zoom
zoom=4
redraw_ohne(0)
~V_UPDWK()
~V_CLSWK()
zoom=z_old
ELSE
ENDIF
RESERVE
ELSE
ENDIF
DIM work%((FRE(0)-80*1024)/4)
daten_ptr%=V:work%(0)
work_space%=DIM?(work%())*4
ELSE
ENDIF
RETURN
'
'
PROCEDURE scan_a1
ALERT 3,"| SCAN Hochformat: ",1,"A3|A2|A1",i%
SELECT i%
CASE 1
scann_x%=INT(17*400/8) !17
scann_y%=INT(12*400) !12
CASE 2
scann_x%=INT(25*400/8)
scann_y%=INT(17*400)
CASE 3
scann_x%=INT(34*400/8)
scann_y%=INT(25*400)
ENDSELECT
scan_graphtec(3,400,0,0,scann_x%,scann_y%)
RETURN
'
PROCEDURE scan_graphtec(device&,dpi&,x_0%,y_0%,bytes_x%,lines_y%)
LOCAL command_bytes&,bytes_to_transfer%,transfer_dir&
LOCAL y_offset%,block&,command_bytes&,bytes_to_transfer%
' IF FN test_unit_ready(device&)=0
set_graphtec_window(device&,dpi&,x_0%,y_0%,bytes_x%,lines_y%)
command_bytes&=10
block&=&HFFFF DIV bytes_x% DIV 3
bytes_to_transfer%=bytes_x%*block&*3
transfer_dir&=0 ! LESEN
command|(0)=&H28
command|(1)=0
command|(2)=0
command|(3)=0
command|(4)=0
command|(5)=0
command|(6)=0
command|(7)=0
command|(8)=0
command|(9)=0
WORD{V:command|(7)}=block&
'
anzahl&=lines_y% DIV block&
rest&=lines_y% MOD block&
y_offset%=0
FOR i%=1 TO anzahl&
$c+
fehler%=C:scsi%(device&,command_bytes&,bytes_to_transfer%,transfer_dir&,L:V:command|(0),L:daten_ptr%+y_offset%)
$c-
ADD y_offset%,block&*bytes_x%
NEXT i%
IF rest&<>0
bytes_to_transfer%=bytes_x%*rest&*3
WORD{V:command|(7)}=rest&
$c+
fehler%=C:scsi%(device&,command_bytes&,bytes_to_transfer%,transfer_dir&,L:V:command|(0),L:daten_ptr%+y_offset%)
$c-
ENDIF
' status&=AND(CARD(fehler%),&X11110)
' message&=CARD(SWAP(fehler%))
layer!=TRUE
layer_geladen!=TRUE
voll_bild!=TRUE
outlined!=FALSE
do_change_aufloesung(bytes_x%*8,lines_y%,1)
init_bit_blit
p_zoom(zoom*100,zoom*100)
do_redraw
' ENDIF
RETURN
'
PROCEDURE set_graphtec_window(device&,dpi&,x_0%,y_0%,bytes_x%,lines_y%)
LOCAL command_bytes&,bytes_to_transfer%,transfer_dir&
command_bytes&=10
bytes_to_transfer%=53
transfer_dir&=1 ! LESEN (1=SCHREIBEN)
command|(0)=&H24
command|(1)=0
command|(2)=0
command|(3)=0
command|(4)=0
command|(5)=0
command|(6)=0
command|(7)=0
command|(8)=bytes_to_transfer%
command|(9)=0
FOR i%=0 TO 6
buffer|(i%)=0
NEXT i%
FOR i%=38 TO 47
buffer|(i%)=0
NEXT i%
buffer|(7)=45 ! Window Descriptor Block Length
buffer|(8)=0 ! Window ID
buffer|(9)=0 ! reserved
WORD{V:buffer|(10)}=dpi& ! X resolution
WORD{V:buffer|(12)}=dpi& ! Y resolution
LONG{V:buffer|(14)}=x_0%*24 ! X Upper Left
LONG{V:buffer|(18)}=y_0%*3 ! Y Upper Left
LONG{V:buffer|(22)}=bytes_x%*24 ! Width
LONG{V:buffer|(26)}=lines_y%*3 ! Length
buffer|(30)=0 ! reserved
buffer|(31)=0 ! Kontrast
buffer|(32)=0 ! reserved
buffer|(33)=0 ! Image composition
buffer|(34)=1 ! Bits per Pixel
buffer|(35)=0 ! reserved
buffer|(36)=0 ! reserved
buffer|(37)=0 ! Reverse Image
buffer|(48)=2 ! Cell length
buffer|(49)=5 ! Function Code
buffer|(50)=1 ! Fine Line
buffer|(51)=2 ! Cell length
buffer|(52)=6 ! Function Code
buffer|(53)=1 ! Scann Speed
$c+
fehler%=C:scsi%(device&,command_bytes&,bytes_to_transfer%,transfer_dir&,L:V:command|(0),L:V:buffer|(0))
$c-
RETURN
'
FUNCTION test_unit_ready(device&)
command_bytes&=6
bytes_to_transfer%=1
transfer_dir&=0 ! LESEN (1=SCHREIBEN)
command|(0)=0
command|(1)=0
command|(2)=0
command|(3)=0
command|(4)=bytes_to_transfer%
command|(5)=0
'
$c+
fehler%=C:scsi%(device&,command_bytes&,L:bytes_to_transfer%,transfer_dir&,L:V:command|(0),L:V:buffer|(0))
$c-
status&=AND(CARD(fehler%),&X11110)
message&=CARD(SWAP(fehler%))
'
RETURN status&
ENDFUNC
'
'
PROCEDURE gt_info(i$)
CHAR{{OB_SPEC(tree28_adr%,gtstate&)}}=i$
~OBJC_DRAW(tree28_adr%,gtstate&,8,xt28&,yt28&,bt28&,ht28&)
RETURN
'
PROCEDURE dpi_change(prex0&,prey0&,prex0_min&,prey0_min&)
CHAR{{OB_SPEC(tree28_adr%,gtdpi&)}}=STR$(gtdpiv&)
~OBJC_DRAW(tree28_adr%,gtdpi&,8,xt28&,yt28&,bt28&,ht28&)
CHAR{{OB_SPEC(tree28_adr%,gtb&)}}=STR$(AND(INT(gtbv&/25.4*gtdpiv&),&HFFF8))
CHAR{{OB_SPEC(tree28_adr%,gth&)}}=STR$(AND(INT(gthv&/25.4*gtdpiv&),&HFFF8))
~OBJC_DRAW(tree28_adr%,gtb&,8,xt28&,yt28&,bt28&,ht28&)
~OBJC_DRAW(tree28_adr%,gth&,8,xt28&,yt28&,bt28&,ht28&)
CHAR{{OB_SPEC(tree28_adr%,gtx&)}}=STR$(AND(INT((prex0&-prex0_min&)/25.4*gtdpiv&),&HFFF8))
CHAR{{OB_SPEC(tree28_adr%,gty&)}}=STR$(AND(INT((prey0&-prey0_min&)/25.4*gtdpiv&),&HFFF8))
~OBJC_DRAW(tree28_adr%,gtx&,8,xt28&,yt28&,bt28&,ht28&)
~OBJC_DRAW(tree28_adr%,gty&,8,xt28&,yt28&,bt28&,ht28&)
RETURN
'
PROCEDURE gt_6000
LOCAL prex0&,prey0&,prex0_min&,prey0_min&,x_changed&,y_changed&
LOCAL prex&,prey&,gthalbton&
DEFMOUSE 0
SETMOUSE xt28&+240,yt28&+310,0
CLIP 0,0,desk_breite&,desk_hoehe& OFFSET x_win&,y_win&
~OBJC_OFFSET(tree28_adr%,gtprewin&,prex&,prey&)
gthalbton&=1
prex0&=prex&-x_win&+1
prey0&=prey&-y_win&+1
prex0_min&=prex0&
prey0_min&=prey0&
prex0_max&=prex0&+217
prey0_max&=prey0&+297
prex0&=gtxv&
prey0&=gtyv&
'
CHAR{{OB_SPEC(tree28_adr%,gtx&)}}=STR$(AND(INT((prex0&-prex0_min&)/25.4*gtdpiv&),&HFFF8))
CHAR{{OB_SPEC(tree28_adr%,gty&)}}=STR$(AND(INT((prey0&-prey0_min&)/25.4*gtdpiv&),&HFFF8))
CHAR{{OB_SPEC(tree28_adr%,gtb&)}}=STR$(AND(INT(gtbv&/25.4*gtdpiv&),&HFFF8))
CHAR{{OB_SPEC(tree28_adr%,gth&)}}=STR$(AND(INT(gthv&/25.4*gtdpiv&),&HFFF8))
CHAR{{OB_SPEC(tree28_adr%,gtdpi&)}}=STR$(gtdpiv&)
CHAR{{OB_SPEC(tree28_adr%,gtstate&)}}=waehle$
GET xt28&-4,yt28&-4,xt28&+bt28&+4,yt28&+ht28&+4,rette$
~OBJC_DRAW(tree28_adr%,0,8,xt28&,yt28&,bt28&,ht28&)
smfdb%(0)=V:prebuf$
smfdb%(1)=208
smfdb%(2)=292
smfdb%(3)=smfdb%(1)/16
smfdb%(5)=1
dmfdb%(0)=XBIOS(3)
dmfdb%(1)=desk_breite&
dmfdb%(2)=desk_hoehe&
dmfdb%(3)=dmfdb%(1)/16
dmfdb%(5)=1
p%(0)=0
p%(1)=0
p%(2)=207
p%(3)=291
p%(4)=prex&+1
p%(5)=prey&+1
p%(6)=p%(4)+207
p%(7)=p%(5)+291
p%(8)=3
BITBLT smfdb%(),dmfdb%(),p%()
DEFFILL 1,1,1
GRAPHMODE 3
BOX prex0&,prey0&,prex0&+gtbv&,prey0&+gthv&
PBOX prex0&+gtbv&-8,prey0&+gthv&-8,prex0&+gtbv&,prey0&+gthv&
REPEAT
DO
~FORM_DO(tree28_adr%,0)
IF INT{GINTOUT}>0 AND INT{GINTOUT}<100
exit_button&=DPEEK(GINTOUT)
OB_STATE(tree28_adr%,exit_button&)=0
IF exit_button&<>gtprewin&
~OBJC_DRAW(tree28_adr%,exit_button&,8,xt28&,yt28&,bt28&,ht28&)
ENDIF
ENDIF
SELECT exit_button&
CASE gtdpimin&
IF gtdpiv&>100
IF gtdpiv&=480
gtdpiv&=400
ELSE
IF gtdpiv&=600
gtdpiv&=480
ELSE
SUB gtdpiv&,100
ENDIF
ENDIF
dpi_change(prex0&,prey0&,prex0_min&,prey0_min&)
ENDIF
CASE gtdpiplu&
IF gtdpiv&<600
IF gtdpiv&=400
gtdpiv&=480
ELSE
IF gtdpiv&=480
gtdpiv&=600
ELSE
ADD gtdpiv&,100
ENDIF
ENDIF
dpi_change(prex0&,prey0&,prex0_min&,prey0_min&)
ENDIF
CASE gtprewin&
MOUSE x_mouse%,y_mouse%,taste|
IF x_mouse%>prex0&+gtbv&-8 AND x_mouse%<prex0&+gtbv& AND y_mouse%>prey0&+gthv&-8 AND y_mouse%<prey0&+gthv&
DEFMOUSE 3
REPEAT
MOUSE x_mouse%,y_mouse%,taste|
IF x_mouse%<>x_mouse_old% OR y_mouse%<>y_mouse_old%
BOX prex0&,prey0&,prex0&+gtbv&,prey0&+gthv&
PBOX prex0&+gtbv&-8,prey0&+gthv&-8,prex0&+gtbv&,prey0&+gthv&
IF x_mouse%-prex0_min&<217 AND x_mouse%-prex0&>16
gtbv&=x_mouse%-prex0&
i%=AND(INT(gtbv&/25.4*gtdpiv&),&HFFF0)
gtbv&=CINT(i%*25.4/gtdpiv&)
ENDIF
IF y_mouse%-prey0_min&<298 AND y_mouse%-prey0&>16
gthv&=y_mouse%-prey0&
ENDIF
BOX prex0&,prey0&,prex0&+gtbv&,prey0&+gthv&
PBOX prex0&+gtbv&-8,prey0&+gthv&-8,prex0&+gtbv&,prey0&+gthv&
SHOWM
x_mouse_old%=x_mouse%
y_mouse_old%=y_mouse%
CHAR{{OB_SPEC(tree28_adr%,gtb&)}}=STR$(AND(INT(gtbv&/25.4*gtdpiv&),&HFFF0))
CHAR{{OB_SPEC(tree28_adr%,gth&)}}=STR$(INT(gthv&/25.4*gtdpiv&))
~OBJC_DRAW(tree28_adr%,gtb&,8,xt28&,yt28&,bt28&,ht28&)
~OBJC_DRAW(tree28_adr%,gth&,8,xt28&,yt28&,bt28&,ht28&)
ENDIF
UNTIL taste|=0
DEFMOUSE 0
ELSE
IF x_mouse%>prex0& AND x_mouse%<prex0&+gtbv& AND y_mouse%>prey0& AND y_mouse%<prey0&+gthv&
x_mouse_old%=x_mouse%
y_mouse_old%=y_mouse%
DEFMOUSE 3
REPEAT
MOUSE x_mouse%,y_mouse%,taste|
IF x_mouse%<>x_mouse_old% OR y_mouse%<>y_mouse_old%
x_changed&=x_mouse%-x_mouse_old%
y_changed&=y_mouse%-y_mouse_old%
BOX prex0&,prey0&,prex0&+gtbv&,prey0&+gthv&
PBOX prex0&+gtbv&-8,prey0&+gthv&-8,prex0&+gtbv&,prey0&+gthv&
IF prex0&+x_changed&>=prex0_min& AND prex0&+x_changed&+gtbv&<prex0_max&
ADD prex0&,x_changed&
ENDIF
IF prey0&+y_changed&>=prey0_min& AND prey0&+y_changed&+gthv&<prey0_max&
ADD prey0&,y_changed&
ENDIF
BOX prex0&,prey0&,prex0&+gtbv&,prey0&+gthv&
PBOX prex0&+gtbv&-8,prey0&+gthv&-8,prex0&+gtbv&,prey0&+gthv&
SHOWM
x_mouse_old%=x_mouse%
y_mouse_old%=y_mouse%
CHAR{{OB_SPEC(tree28_adr%,gtx&)}}=STR$(AND(INT((prex0&-prex0_min&)/25.4*gtdpiv&),&HFFF8))
CHAR{{OB_SPEC(tree28_adr%,gty&)}}=STR$(AND(INT((prey0&-prey0_min&)/25.4*gtdpiv&),&HFFF8))
~OBJC_DRAW(tree28_adr%,gtx&,8,xt28&,yt28&,bt28&,ht28&)
~OBJC_DRAW(tree28_adr%,gty&,8,xt28&,yt28&,bt28&,ht28&)
ENDIF
UNTIL taste|=0
DEFMOUSE 0
ENDIF
ENDIF
CASE gtpresca&
gt_info(scannen$+pre_view$)
HIDEM
gt6000%=VARPTR(gt6000$)
$C+
VOID C:gt6000%(1,50,3,3,gthalbton&,0,0,26,292,L:V:prebuf$,L:V:prebuf$+8000)
$C-
OUT (2),13
trigger_0
DEFMOUSE 3
SHOWM
BOX prex0&,prey0&,prex0&+gtbv&,prey0&+gthv&
PBOX prex0&+gtbv&-8,prey0&+gthv&-8,prex0&+gtbv&,prey0&+gthv&
smfdb%(0)=V:prebuf$
BITBLT smfdb%(),dmfdb%(),p%()
BOX prex0&,prey0&,prex0&+gtbv&,prey0&+gthv&
PBOX prex0&+gtbv&-8,prey0&+gthv&-8,prex0&+gtbv&,prey0&+gthv&
gt_info(waehle$)
ENDSELECT
EXIT IF exit_button&=gtcancel&
EXIT IF exit_button&=gtscan&
LOOP
IF exit_button&=gtcancel&
PUT xt28&-4,yt28&-4,rette$
ok!=TRUE
ENDIF
IF exit_button&=gtscan&
IF OB_STATE(tree28_adr%,gthart&)=1
gthalbton&=0
ELSE
IF OB_STATE(tree28_adr%,gtweich&)=1
gthalbton&=16
ELSE
IF OB_STATE(tree28_adr%,gtraster&)=1
gthalbton&=32
ELSE
gthalbton&=1
ENDIF
ENDIF
ENDIF
IF OB_STATE(tree28_adr%,gtrot&)=1
gtfarbev&=0
ELSE
IF OB_STATE(tree28_adr%,gtgruen&)=1
gtfarbev&=1
ELSE
IF OB_STATE(tree28_adr%,gtblau&)=1
gtfarbev&=2
ELSE
gtfarbev&=3
ENDIF
ENDIF
ENDIF
IF OB_STATE(tree28_adr%,k0&)=1
gtkontrav&=0
ELSE
IF OB_STATE(tree28_adr%,k1&)=1
gtkontrav&=1
ELSE
IF OB_STATE(tree28_adr%,k2&)=1
gtkontrav&=2
ELSE
IF OB_STATE(tree28_adr%,k3&)=1
gtkontrav&=3
ELSE
IF OB_STATE(tree28_adr%,k4&)=1
gtkontrav&=4
ELSE
IF OB_STATE(tree28_adr%,k5&)=1
gtkontrav&=5
ELSE
gtkontrav&=6
ENDIF
ENDIF
ENDIF
ENDIF
ENDIF
ENDIF
gt_info(scannen$+bereich$)
gtxorig&=CINT(AND(INT((prex0&+2-prex0_min&)/25.4*gtdpiv&),&HFFF8)/8)
gtyorig&=CINT((prey0&+2-prey0_min&)/25.4*gtdpiv&)
gtxbytes&=CINT(AND(INT(gtbv&/25.4*gtdpiv&),&HFFF0)/8)
gtyzeilen&=CINT(gthv&/25.4*gtdpiv&)
IF gtxbytes&*(gtyzeilen&+1)<work_space%
HIDEM
gt6000%=VARPTR(gt6000$)
$C+
i%=C:gt6000%(0,gtdpiv&,gtfarbev&,gtkontrav&,gthalbton&,gtxorig&,gtyorig&,gtxbytes&,gtyzeilen&,L:daten_ptr%,L:daten_ptr%+work_space%)
$C-
OUT (2),13
trigger_0
DEFMOUSE 3
SHOWM
ELSE
i%=-1
ENDIF
IF i%>=0
gt_info(waehle$)
PUT xt28&-4,yt28&-4,rette$
layer!=TRUE
layer_geladen!=TRUE
voll_bild!=TRUE
outlined!=FALSE
do_change_aufloesung(AND(INT(gtbv&/25.4*gtdpiv&),&HFFF0),INT(gthv&/25.4*gtdpiv&),1)
init_bit_blit
p_zoom(zoom*100,zoom*100)
do_redraw
ok!=TRUE
ELSE
FOR i%=1 TO 5
gt_info(fehler$)
PAUSE 15
gt_info(" ")
PAUSE 15
NEXT i%
gt_info(waehle$)
ok!=FALSE
ENDIF
ENDIF
UNTIL ok!
gtxv&=prex0&
gtyv&=prey0&
~WIND_GET(1,4)
clip(x_window&,y_window&,b_window&,h_window&,INT{GINTOUT+2},INT{GINTOUT+4})
set_clip_offset
GRAPHMODE 1
DEFFILL 0,0
DEFMOUSE 3
init_bit_blit
RETURN
'
PROCEDURE set_clip_offset
INT{WINDTAB+64}=INT{WINDTAB+64}-x_offset&
INT{WINDTAB+66}=INT{WINDTAB+66}-y_offset&
RETURN
'
PROCEDURE helpo(help$)
TITLEW #1,ein_space$+help$+ein_space$
set_clip_offset
RETURN
'
PROCEDURE help(help$)
TITLEW #1,ein_space$+waehle$+help$+ein_space$
set_clip_offset
RETURN
'
PROCEDURE help_titel
TITLEW #1,ein_space$+pfad_vek$+"\"+programm$+".VEK "
set_clip_offset
DEFMOUSE 3
DEFLINE 1
COLOR 1
GRAPHMODE 1
p_xy_info("X:","Y:",0)
SHOWM
trigger_0
zeit%=TIMER
RETURN
'
PROCEDURE polygon_fill
REPEAT
DEFMOUSE 0
GET xt20&-4,yt20&-4,xt20&+bt20&+4,yt20&+ht20&+4,rette$
SETMOUSE xt20&+bt20&/2,yt20&+160,0
~OBJC_DRAW(tree20_adr%,0,8,xt20&,yt20&,bt20&,ht20&)
~FORM_DO(tree20_adr%,0)
exit_button&=DPEEK(GINTOUT)
OB_STATE(tree20_adr%,exit_button&)=0
PUT xt20&-4,yt20&-4,rette$
IF OB_STATE(tree20_adr%,fill1&)=1
DEFFILL 1,2,1
ELSE IF OB_STATE(tree20_adr%,fill2&)=1
DEFFILL 1,2,2
ELSE IF OB_STATE(tree20_adr%,fill3&)=1
DEFFILL 1,2,3
ELSE IF OB_STATE(tree20_adr%,fill4&)=1
DEFFILL 1,2,4
ELSE IF OB_STATE(tree20_adr%,fill5&)=1
DEFFILL 1,2,5
ELSE IF OB_STATE(tree20_adr%,fill6&)=1
DEFFILL 1,2,6
ELSE IF OB_STATE(tree20_adr%,fill7&)=1
DEFFILL 1,2,8
ENDIF
DEFMOUSE mdaten$
help(help_polygon$)
IF exit_button&<>fillcancel&
REPEAT
trigger_0
wait_taste
IF taste|<>2
FILL x_mouse%,y_mouse%
ENDIF
UNTIL taste|=2
ENDIF
UNTIL exit_button&=fillcancel&
~FRE(0)
DEFFILL 1,1
help_titel
RETURN
'
' *****************************************************************************
' * TANGENTE NIVELLIEREN *
' * *
' * VERÄNDERT VAR: Punkte_X%(), Punkte_Y%() *
' * *
' *****************************************************************************
'
PROCEDURE do_niv_tangente(found_quelle%,von%,bis%,dreh_x%,dreh_y%)
LOCAL phi,strecke
dx=SUB(dreh_x%,punkte_x%(found%))
dy=SUB(dreh_y%,punkte_y%(found%))
strecke=SQR(dx*dx+dy*dy)
get_phi(dreh_x%,dreh_y%,punkte_x%(found_quelle%),punkte_y%(found_quelle%),phi)
redraw_von_bis(von%,bis%,0)
punkte_x%(found%)=CINT(dreh_x%-strecke*COS(phi))
punkte_y%(found%)=CINT(dreh_y%-strecke*SIN(phi))
redraw_von_bis(von%,bis%,1)
RETURN
'
PROCEDURE tangente_nivellieren
LOCAL found_quelle%,quelle_def|
LOCAL von%,bis%,f%,dreh_x%,dreh_y%
IF pointer%>1
show_cursor_fang
REPEAT
trigger_0
GRAPHMODE 1
REPEAT
wait_taste
EXIT IF taste|=2
find(x_mouse%*100/zoom,y_mouse%*100/zoom)
quelle_def|=punkte_def|(found%)
UNTIL (quelle_def|>da| AND quelle_def|<b3|)
IF taste|<>2
found_quelle%=found%
IF quelle_def|=b1|
IF punkte_def|(found_quelle%-1)=b3|
found%=found_quelle%-2
von%=found_quelle%-4
bis%=von%+3
dreh_x%=punkte_x%(found_quelle%-1)
dreh_y%=punkte_y%(found_quelle%-1)
do_niv_tangente(found_quelle%,von%,bis%,dreh_x%,dreh_y%)
ELSE
IF punkte_def|(found_quelle%-1)=da|
found%=found_quelle%
found_quelle%=found%-2
von%=found%-1
bis%=von%+3
dreh_x%=punkte_x%(found%-1)
dreh_y%=punkte_y%(found%-1)
do_niv_tangente(found_quelle%,von%,bis%,dreh_x%,dreh_y%)
ELSE
IF punkte_def|(found_quelle%-1)=ma|
found%=found_quelle%
REPEAT
INC found%
UNTIL punkte_def|(found%)=ma|
DEC found%
IF punkte_def|(found%)=b3|
DEC found%
von%=found%-2
bis%=von%+3
dreh_x%=punkte_x%(found_quelle%-1)
dreh_y%=punkte_y%(found_quelle%-1)
do_niv_tangente(found_quelle%,von%,bis%,dreh_x%,dreh_y%)
ELSE
IF punkte_def|(found%)=da|
f%=found_quelle%
found_quelle%=found%-1
found%=f%
von%=found%-1
bis%=von%+3
dreh_x%=punkte_x%(found_quelle%+1)
dreh_y%=punkte_y%(found_quelle%+1)
do_niv_tangente(found_quelle%,von%,bis%,dreh_x%,dreh_y%)
ENDIF
ENDIF
ENDIF
ENDIF
ENDIF
ELSE
IF quelle_def|=b2|
IF punkte_def|(found_quelle%+2)=b1|
found%=found_quelle%+2
von%=found_quelle%+1
bis%=von%+3
dreh_x%=punkte_x%(found_quelle%+1)
dreh_y%=punkte_y%(found_quelle%+1)
do_niv_tangente(found_quelle%,von%,bis%,dreh_x%,dreh_y%)
ELSE
IF punkte_def|(found_quelle%+2)=da|
found%=found_quelle%
found_quelle%=found%+2
von%=found%-2
bis%=von%+3
dreh_x%=punkte_x%(found%+1)
dreh_y%=punkte_y%(found%+1)
do_niv_tangente(found_quelle%,von%,bis%,dreh_x%,dreh_y%)
ELSE
IF punkte_def|(found_quelle%+2)=ma|
found%=found_quelle%
REPEAT
DEC found%
UNTIL punkte_def|(found%)=ma|
INC found%
IF punkte_def|(found%)=b1|
von%=found%-1
bis%=von%+3
dreh_x%=punkte_x%(found_quelle%+1)
dreh_y%=punkte_y%(found_quelle%+1)
do_niv_tangente(found_quelle%,von%,bis%,dreh_x%,dreh_y%)
ELSE
IF punkte_def|(found%)=da|
f%=found_quelle%
found_quelle%=found%
found%=f%
von%=found%-2
bis%=von%+3
dreh_x%=punkte_x%(found_quelle%-1)
dreh_y%=punkte_y%(found_quelle%-1)
do_niv_tangente(found_quelle%,von%,bis%,dreh_x%,dreh_y%)
ENDIF
ENDIF
ENDIF
ENDIF
ENDIF
ENDIF
ENDIF
ENDIF
UNTIL taste|=2
DEFMOUSE 3
ENDIF
RETURN
'
' *****************************************************************************
' * ASCII Editor *
' * *
' * *
' * ' ******************************************************************************
' * *
' * CUTOUT *
' * *
' * 27.02.1992 *
' * *
' ******************************************************************************
'
'
$B+
$I-
INLINE scsi%,933
DIM buffer|(512*2)
DIM command|(12)
' VAR:
' apl_id&=APPL_INIT()
magic%=14031952
'
' serien_nummer$="REGIST00"
' serien_nummer_vergleich$="REGIST11"
serien_nummer$=MKD$(101)
serien_nummer_vergleich$=MKD$(101 XOR magic%)
'
fang_schnittpunkt|=4
buffer%=0
buffer_max%=0
poly_len%=0
bits%=0
punkt_eintrag&=0
x_start&=0
y_start&=0
edi_max&=0
m=0
m_neu=0
bit_count|=0
pixel!=FALSE
'
regist_nr%=0
revision$="1.59"
zeit%=TIMER
calamus_nr%=0
ortho|=45
ortho=RAD(ortho|)
ortho2=ortho/2
x_win&=0 ! Window X pos aktuell
y_win&=0 ! Window Y pos aktuell
x_window&=0 ! Window X pos aktuell
y_window&=0 ! Window Y pos aktuell
b_window&=0 ! Window Breite aktuell
h_window&=0 ! Window Höhe aktuell
~WIND_GET(0,4,scrx&,scry&,scrb&,scrh&) ! maximaler Desktop
wmx%=scrb&-62
wmy%=scrh&-57+scry&
desk_breite&=scrb&
desk_hoehe&=scrh&+scry&
gross_bildschirm!=FALSE
IF desk_breite&>640 OR desk_hoehe&>400
gross_bildschirm!=TRUE
ENDIF
ADD scrx&,42 ! Position Window X+Menuleiste
SUB scrb&,42 ! Breite Window
scrb_old&=scrb&
scrh_old&=scrh&
res_x%=0 ! Auflösung x in mm
res_y%=0 ! Auflösung y in mm
res_x_old%=0
res_y_old%=0
x_layer%=0
y_layer%=0
x_layero%=0
y_layero%=0
x_offset&=0 ! Nullpunkt x im Fenster
y_offset&=0 ! Nullpunkt y im Fenster
x_offset_old&=0
y_offset_old&=0
x_mouse%=0
y_mouse%=0
x_mouse_old%=0
y_mouse_old%=0
x_mouse_0%=0
y_mouse_0%=0
objectbox_x0%=0
objectbox_y0%=0
objectbox_x1%=0
objectbox_y1%=0
grid%=10 ! raster mm
schraff_dist=201
schraff_inc=0
schraff_fix_abst=0
schraff_winkel=0
schraff_start%=0
schraff_y_min%=0
bit_count_max|=6
geraden_fehler|=1
lange_gerade%=4000
schmutz_filter%=20
knick_winkel_max=RAD(140)
bogen_max=PI/2/2
abweichung_gerade%=0.5*100
last_poly_s%=-1
last_poly_e%=-1
taste|=0
zoom=1
zoom_old=1
zoom_100=1
pointer%=0 ! Zeiger auf Punkteliste
found%=0 ! gefundener Punkt bei SNAP
found_t%=0 ! gefundener Kurvenparameter
schnittpunkt_genau%=16 ! Zerlegung Bezier in Teile
anz_schnittpunkte%=0 ! Anzahl Schnittpunkte
b_vari=100
i%=0 ! allgemeiner Schleifenzähler
ii%=0
iii%=0
d0%=0
dx%=0
dy%=0
dx=0
dy=0
schnitt_laenge=0
kostfak=1
gkosten=0
px0%=0
py0%=0
px1%=0
py1%=0
px2%=0
py2%=0
px3%=0
py3%=0
m_square_breite&=&H3000
m_square_hoehe&=&H3000
kerning_256|=m_square_breite& DIV 256
len_pair_daten&=0
z_hoehe_def%=16384 ! Höhe des definierten Zsatzes
z_breite_def%=16384 ! Breite "
zeichen_hoehe%=3000 ! gewünschte Höhe in 1/100 mm
versal_def%=0 ! Versal Höhe in 1/100 mm
z_ascii_scale=zeichen_hoehe%/z_hoehe_def% ! Scaling
z_ascii_scale_old=z_ascii_scale ! save Scaling
global_kerning%=1280 ! globales Kerning
zeilen_abstand_prozent%=125 ! relativer Zeilen Abstand
zeilen_abstand%=zeichen_hoehe%*zeilen_abstand_prozent%/100-zeichen_hoehe%
z_cursor_x_spalte%=0 ! Start String
z_cursor_x%=0 ! ASCII Zeichen Cursor X
z_cursor_y%=0 ! ASCII Zeichen Cursor y
z_cursor_x_old%=0 ! letztes Zeichen Cursor X
z_cursor_y_old%=0 ! letztes Zeichen Cursor y
z_ascii_old%=0 ! letztes Zeichen ASCII+32
z_satz_pointer%=0 ! Pointer auf Zeichensatz
state_rs232&=0 ! Centronics aktiv
state_hp&=0 ! HPGL aktiv
folie_x%=1188 ! Folien Grö₧e
folie_y%=840
plotter_x_min%=0
plotter_y_min%=0
gdu=0 ! 100*Plottereinheit
sel_start%=0
sel_end%=0
gtxv&=0
gtyv&=0
gtbv&=216
gthv&=297
gtdpiv&=300
gtfarbev&=3
gtkontrav&=3
exit_button&=0
cursor_x&=0
cursor_y&=0
ofn_ver|=0
overcut|=0
geschlossen%=0
'
phi_x_3d=0
phi_y_3d=0
a2_3d=0
'
daten_ptr%=0
work_space%=0
'
' CONST:
'
IF FRE(0)>4000000
p_max%=99999
ELSE
p_max%=60000
ENDIF
ma|=0
da|=1
b1|=2
b2|=3
b3|=4
ein_drittel=1/3
fmin=2.225073858507E-307
fmin1=0.005
max1=0.995
pimal2=PI*2
pihalbe=PI/2
pidrittel=PI/3
fang_rad%=8*100 ! FANGRADIUS
p_at%=XBIOS(3)+76 ! PRINT AT FÜR X,Y
p_at_zoom%=p_at%-12 ! PRINT AT FÜR ZOOM
x_bytes%=(scrb&+42)/8 ! BYTES IN X RICHTUNG DESKTOP
'
' CONST: Menuleiste
'
tree00&=0
tree0_adr%=0
datei&=3
eintrag&=4
mfenster&=10
mtext&=5
mzedi&=6
spezial&=7
all_clear&=8
bbogen&=9
mschnitt&=11
'
tree01&=1
tree1_adr%=0
back_main&=3
fwd_main&=4
gerade&=5
kurve&=6
schliess&=7
verrunde&=8
loeschen&=9
lock&=10
snap&=11
bild&=12
zircel&=13
bezier4&=14
schere&=15
' fenster&=15
'
tree02&=2
tree2_adr%=0
back_datei&=3
fwd_datei&=4
l_vek&=5
l_merge&=6
r_macro&=7
r_cvg&=8
l_img&=9
l_pic&=10
ordner&=11
s_vek&=12
s_plt&=13
a_plotter&=14
'
tree03&=3
tree3_adr%=0
back_fenster&=3
fwd_fenster&=4
fmove&=5
blitz&=6
fcopy&=7
fzoom&=8
fzoomp&=9
fdreh&=10
fspiegel&=11
fkursiv&=12
dreh3d&=13
drehxp&=14
drehxm&=15
drehym&=16
drehyp&=17
floesch&=18
fzoom1&=19
'
tree04&=4
tree4_adr%=0
back_spezial&=3
gtepson&=4
handy&=5
kontour&=6
filter&=7
trace&=8
smooth&=9
simag&=10
'
tree05&=5
tree5_adr%=0
back_text&=3
fwd_text&=4
z_edit&=5
z_editor&=6
z_string&=7
z_t_hoehe&=8
z_t_abstand&=9
z_g_kerning&=10
z_read_ascii&=11
l_font&=12
s_font&=14
c_font&=13
'
tree06&=6
tree6_adr%=0
t_hoehe&=1
'
tree07&=7
tree7_adr%=0
zabs&=1
'
tree08&=8 ! String Text
tree8_adr%=0
string_text&=1
breite&=3
string_breite&=4
versal&=5
string_versal&=6
pfad&=7
do_kerning&=8
string_kreis&=9
string_kreis_von&=10
string_kreis_bis&=11
fontname&=13
c_text&=14
icon_pair&=15
icon_trep&=16
'
tree09&=9 ! Zeichen Editor
tree9_adr%=0
back_editor&=3
m_matrix&=4
z_matrix&=5
move_matrix&=6
kerning_links&=7
kerning_rechts&=8
kerning_auto&=9
z_get&=10
z_muell&=11
z_up&=13
z_down&=14
z_char&=15
'
tree10&=10
tree10_adr%=0
b_kerning&=2
g_kerning&=3
'
tree11&=11 ! Optimier
tree11_adr%=0
del_ma&=4
del_ge&=6
del_el&=8
'
tree12&=12
tree12_adr%=0
bstep&=1
'
tree13&=13 ! Info
tree13_adr%=0
vernr&=7
version&=4
firma&=4
strasse&=7
stadt&=10
punkte&=15
rest&=17
'
tree14&=14 ! Auflösung
tree14_adr%=0
rx1&=8
ry1&=10
rx2&=12
ry2&=13
rx3&=16
ry3&=17
get_pf&=19
r1&=4
r2&=5
r3&=6
'
tree15&=15 ! Plotter INIT
tree15_adr%=0
p_init1&=3
p_init2&=4
gdu01&=9
gdu025&=10
gdu05&=11
gdu1&=12
overcut&=16
cent&=18
rs232&=20
hp&=23
gp&=24
mgl&=25
ma&=29
da&=30
'
tree16&=16 ! Pfade und Parameter
tree16_adr%=0
pv&=5
pp&=7
pfi&=9
pg&=11
pf&=13
df&=15
p1&=17
p2&=19
schnitt&=21
gdu&=23
foliex&=25
foliey&=27
warn&=29
cancel&=31
'
tree17&=17
tree17_adr%=0
outl&=1
outl_anz&=2
'
tree18&=18
tree18_adr%=0
schraffd&=1
schraffi&=2
schrafix&=3
schraffw&=4
schraffa&=7
schrafff&=8
'
tree19&=19
tree19_adr%=0
necka&=1
neckp&=2
'
tree20&=20 ! Füll
tree20_adr%=0
fill1&=3
fill2&=5
fill3&=7
fill4&=9
fill5&=11
fill6&=13
fill7&=15
fillcancel&=17
'
tree21&=21 ! Trace
tree21_adr%=0
t_step&=7
t_gerade&=8
t_schmutz&=9
bschwelle&=21
knickwinkel&=22
bogen_max&=23
abweichung_gerade&=24
nur_gerade&=13
trace_cancel&=14
gerade_bezier&=30
'
tree22&=22
tree22_adr%=0
scann_x&=1
scann_y&=2
'
tree23&=23
tree23_adr%=0
radius&=1
'
tree24&=24
tree24_adr%=0
grau&=6
stark&=7
selgrau0&=4
selgrau&=5
sellinie&=8
alle&=9
auswahl&=10
'
tree25&=25 ! Bogen
tree25_adr%=0
backboge&=3
vkreis&=4
kreis3&=5
kreisbog&=6
bogen3&=7
bogen2&=8
ellipse&=9
elbogen&=10
eckrund&=11
'
tree26&=26 ! Koordinaten
tree26_adr%=0
absolut&=2
relativ&=3
polar&=4
'
tree27&=27 ! Calamus Versions Nr.
tree27_adr%=0
calamus_nr&=1
'
tree28&=28 ! GT 6000
tree28_adr%=0
gtscan&=47
gtx&=38
gty&=44
gtb&=42
gth&=43
gtcancel&=46
gtpresca&=45
gtdpi&=35
gtdpimin&=33
gtdpiplu&=34
gtprewin&=1
gtstate&=5
gtkeiner&=9
gtraster&=10
gtweich&=11
gthart&=12
gtkeine&=15
gtrot&=18
gtgruen&=17
gtblau&=16
k0&=22
k1&=23
k2&=24
k3&=25
k4&=26
k5&=27
k6&=28
'
tree29&=29 ! Kosten
tree29_adr%=0
kostfak&=1
sl&=2
gkosten&=4
'
tree30&=30 ! Select Filter
tree30_adr%=0
abs_filter&=1
'
tree31&=31 ! Select Fenster
tree31_adr%=0
ohnecopy&=1
mitcopy&=6
anz_rot&=3
phi_rot&=4
numohne&=5
ausricht_vector&=7
'
tree32&=32 ! Select Spiegel
tree32_adr%=0
anbox&=2
anachse&=1
'
tree33&=33
tree33_adr%=0
teil&=1
'
tree34&=34 ! Schnittpunkt
tree34_adr%=0
backschn&=3
fwdschn&=4
trimm&=5
knack&=6
lot&=7
teilen&=8
lang&=9
schnitt2&=10
schnittn&=11
delseg&=12
delel&=13
schmelz&=14
'
tree35&=35 ! Select Copy
tree35_adr%=0
copysing&=1
copymul&=2
cx&=4
cy&=5
canz&=6
cdist&=7
'
tree36&=36 ! Ausrichten
tree36_adr%=0
a_olinks&=1
a_oben&=2
a_orechts&=3
a_links&=4
a_mitte&=5
a_rechts&=6
a_ulinks&=7
a_unten&=8
a_urechts&=9
'
tree37&=37 ! Scalieren
tree37_adr%=0
scale_interactiv&=1
scale_numerisch&=2
scale_breite&=4
scale_hoehe&=5
'
tree38&=38 ! Ordner
tree38_adr%=0
ordnert&=1
ordnerok&=2
ordnerca&=3
'
tree39&=39 ! Kerning
tree39_adr%=0
kerning_box&=1
kerning_minus&=3
kerning_plus&=4
kerning_last&=2
kerning_next&=5
kerning_exit&=6
kerning_minus2&=9
kerning_plus2&=10
kerning_last2&=8
kerning_next2&=11
kerning_clear&=7
kerning_info&=13
kerning_pair&=15
'
tree40&=40 ! Plotter OUTPUT
tree40_adr%=0
pl100&=3
plschieber&=4
plschere&=7
plschereauf&=5
plscherezu&=6
plschere&=7
'
tree41&=41 ! Select Neigen
tree41_adr%=0
neige_grad&=2
neige_vertical&=3
neige_horizontal&=4
neige_interaktiv&=5
'
' FLAG:
'
undo!=FALSE
geschlossen!=FALSE
ok!=FALSE ! allgemein
layer_geladen!=FALSE ! ist Layer geladen
layer!=FALSE ! soll Layer gezeigt werden
window_fulled!=TRUE ! ist Fenster schon gro₧
voll_bild!=FALSE ! ist Fenster komplett auf Crt
eintragen!=FALSE ! ist eintragen aktiv
bogen!=FALSE
mtext!=FALSE
meditor!=FALSE
datei!=FALSE
fenster!=FALSE
schnittpunktm!=FALSE
loeschen!=FALSE ! ist loeschen aktiv
neues_polygon!=TRUE ! erster Punkt im Polygon
found!=FALSE ! gefunden bei Fangradius
marker!=FALSE ! sollen Marker gezeigt werden
marker_select!=FALSE ! soll Marker selectiert
modified!=FALSE ! wurde Vektorbild geändert
font_geladen!=FALSE ! ist ein Font geladen
outlined!=FALSE ! wurde Bitmap schon outlined
auto_schraff!=TRUE
schraff_fix_abst!=FALSE
einpassen!=FALSE
tangente!=FALSE
tangenten_lock!=TRUE
warn!=FALSE
gp_gl!=FALSE ! HPGL oder GPGL
tasten_rep!=FALSE
absolut!=TRUE
relativ!=FALSE
polar!=FALSE
absolut_old!=FALSE
polar_old!=FALSE
fangklein!=FALSE ! Fangradius gro₧
fadenkreuz!=FALSE
polygonmode!=TRUE ! Polygonmodus
ortho!=FALSE
grid!=FALSE
scrolled!=FALSE
move!=FALSE
drei_d!=FALSE
status_wechsel!=FALSE
grid_wechsel!=FALSE
swap!=FALSE
'
' ARRAY:
'
DIM smfdb%(8),dmfdb%(8),p%(8)
DIM z_smfdb%(8),z_dmfdb%(8),z_p%(8),q_dmfdb%(8)
DIM punkte_x%(p_max%),punkte_y%(p_max%),punkte_def|(p_max%),buffer%(p_max%/2)
DIM x_meta%(127),y_meta%(127),punkte_def1|(32)
ARRAYFILL punkte_def1|(),1
DIM bezier_x&(33),bezier_y&(33)
DIM m$(87)
DIM mk%(60,2)
DIM m_square%(5)
DIM z_editor%(32)
DIM z_ascii%(224),z_kerning&(224*16),z_daten&(224*280),z_pair&(224),z_pair|(224),z_pair_daten|(2000)
DIM sx1%(9),sy1%(9),sx2%(9),sy2%(9),sp1(9),sp2(9)
DIM zeilen_buffer$(60)
rette$=SPACE$(32000)
pfad$=SPACE$(80)
kerning_string$=SPACE$(60)
pfad_pic$=SPACE$(80)
pfad_img$=SPACE$(80)
pfad_vek$=SPACE$(80)
pfad_vek_root$=SPACE$(80)
pfad_cvg$=SPACE$(80)
pfad_fnt$=SPACE$(80)
pfad_cfn$=SPACE$(80)
default_font$=SPACE$(10)
programm$=SPACE$(10)
programm_font$=SPACE$(10)
test_datei$=SPACE$(10)
object$=SPACE$(80)
p_init1$=SPACE$(40)
p_init2$=SPACE$(40)
abc$="CutOut Test"
ma$="M"
da$="D"
cutout_font$="CUTOUTOFN"
calamus_font_grafik$=MKI$(159)+MKI$(15)+MKI$(1)+SPACE$(320)
ok$="OK"
ein_space$=" "
x_y$="X|Y"
erster$="1. "
zweiter$="2. "
help_on$="ON "
help_off$="OFF"
vek$="VEK"
cvg$="CVG"
img$="IMG"
plt$="PLT"
calamus$="CALAMUS"
cutout$="CutOut"
' ****************************************************************************
OPEN "I",#1,"SYS\LANGUAGE.DRV"
LINE INPUT #1,pd_menu$
LINE INPUT #1,pd_datei$
LINE INPUT #1,pd_editieren$
LINE INPUT #1,pd_fenster$
LINE INPUT #1,pd_schnittpunkt$
LINE INPUT #1,pd_bogen$
LINE INPUT #1,pd_text$
LINE INPUT #1,pd_zeicheneditor$
LINE INPUT #1,pd_extra$
LINE INPUT #1,pd_quit$
'
LINE INPUT #1,pd_optionen$
LINE INPUT #1,pd_marker_anzeigen$
LINE INPUT #1,pd_tangenten_anzeigen$
LINE INPUT #1,pd_fangradius_klein$
LINE INPUT #1,pd_polygon_modus$
LINE INPUT #1,pd_schnittpunkt_genau$
LINE INPUT #1,pd_koordinaten$
LINE INPUT #1,pd_element_selektieren$
LINE INPUT #1,pd_polygon_selektieren$
LINE INPUT #1,pd_warnmeldungen$
LINE INPUT #1,pd_skaliere_alles$
LINE INPUT #1,pd_punkte_nivellieren$
LINE INPUT #1,pd_tangente$
LINE INPUT #1,pd_plotflaeche$
LINE INPUT #1,pd_bezier_step_aendern$
LINE INPUT #1,pd_plotter_einstellung$
LINE INPUT #1,pd_kosten_faktor$
LINE INPUT #1,pd_pfad_sichern$
'
LINE INPUT #1,pd_figur$
LINE INPUT #1,pd_rechteck$
LINE INPUT #1,pd_n_eck$
LINE INPUT #1,pd_polygon_outline$
LINE INPUT #1,pd_aequidistante$
LINE INPUT #1,pd_frame$
LINE INPUT #1,pd_polygone_ausrichten$
LINE INPUT #1,pd_polygone_zentrieren$
LINE INPUT #1,pd_polygone_vereinen$
LINE INPUT #1,pd_polygone_fuellen$
LINE INPUT #1,pd_einzelne_punkte_loeschen$
'
LINE INPUT #1,pd_linie$
LINE INPUT #1,pd_bezier_vektor$
LINE INPUT #1,pd_bezier_einfuegen$
LINE INPUT #1,pd_tausche_bezier_vektor$
LINE INPUT #1,pd_knacken$
LINE INPUT #1,pd_trimmen$
LINE INPUT #1,pd_lot$
LINE INPUT #1,pd_verlaengern$
LINE INPUT #1,pd_teilen$
LINE INPUT #1,pd_messen$
LINE INPUT #1,pd_schnittp_2er$
LINE INPUT #1,pd_schnittp_n$
'
LINE INPUT #1,pd_effekt$
LINE INPUT #1,pd_parameter_schraffur$
LINE INPUT #1,pd_polygon_schraffieren$
LINE INPUT #1,pd_alles_schraffieren$
LINE INPUT #1,pd_schatten$
LINE INPUT #1,pd_einpassen$
LINE INPUT #1,pd_kugel$
'
LINE INPUT #1,lade$
LINE INPUT #1,sichere$
LINE INPUT #1,fuege_ein$
LINE INPUT #1,vektor$
LINE INPUT #1,macro$
LINE INPUT #1,daten$
LINE INPUT #1,zeichensatz$
LINE INPUT #1,kein$
LINE INPUT #1,keine$
LINE INPUT #1,ja_nein$
LINE INPUT #1,waehle$
LINE INPUT #1,fehler$
LINE INPUT #1,scannen$
LINE INPUT #1,pre_view$
LINE INPUT #1,ascii_importieren$
LINE INPUT #1,ascii_exportieren$
LINE INPUT #1,schriftblock$
LINE INPUT #1,radius_zu$
LINE INPUT #1,winkel_zu$
LINE INPUT #1,leider$
LINE INPUT #1,winkel_einstellen$
LINE INPUT #1,spiegelachse$
LINE INPUT #1,lupe_mal$
LINE INPUT #1,fensterbereich$
LINE INPUT #1,drehzentrum$
LINE INPUT #1,ordner_exist$
LINE INPUT #1,kein_leer$
LINE INPUT #1,suche_schnittpunkte$
LINE INPUT #1,gleiches_polygon$
LINE INPUT #1,bezugs$
LINE INPUT #1,zentriere$
LINE INPUT #1,huellkurve$
LINE INPUT #1,huellkurve1$
LINE INPUT #1,berechne$
LINE INPUT #1,rechte_taste$
LINE INPUT #1,endpunkt$
LINE INPUT #1,lot_an$
LINE INPUT #1,noname$
LINE INPUT #1,symbol$
LINE INPUT #1,orginal_fenster$
LINE INPUT #1,dmc_font$
LINE INPUT #1,bild_datei_zu$
LINE INPUT #1,stad_laden$
LINE INPUT #1,plotter_ist_off$
LINE INPUT #1,plot_datei$
LINE INPUT #1,kein_treiber$
LINE INPUT #1,schnittstelle_auf$
LINE INPUT #1,polygone_vereinen$
LINE INPUT #1,loesche_einzelne$
LINE INPUT #1,quelle$
LINE INPUT #1,ziel$
LINE INPUT #1,nivelliere$
LINE INPUT #1,alle_daten_l$
LINE INPUT #1,ganzer_zeichensatz$
LINE INPUT #1,font_daten_loeschen$
LINE INPUT #1,zeichen_matrix$
LINE INPUT #1,datei_existiert$
LINE INPUT #1,datei_ueberschreiben$
LINE INPUT #1,glaetten_mit$
LINE INPUT #1,gerade_bezier$
LINE INPUT #1,glaetten$
LINE INPUT #1,bereich$
LINE INPUT #1,path$
LINE INPUT #1,help_mittelpunkt$
LINE INPUT #1,help_radius$
LINE INPUT #1,help_position$
LINE INPUT #1,help_startwinkel$
LINE INPUT #1,help_endwinkel$
LINE INPUT #1,help_polygon$
LINE INPUT #1,help_punkt$
LINE INPUT #1,help_linie$
LINE INPUT #1,help_element$
LINE INPUT #1,help_verrund$
LINE INPUT #1,help_loesche$
LINE INPUT #1,help_trenn$
LINE INPUT #1,help_move$
LINE INPUT #1,help_sel$
LINE INPUT #1,help_move_window$
LINE INPUT #1,help_rahmen$
LINE INPUT #1,help_edit$
LINE INPUT #1,help_bezier$
LINE INPUT #1,help_status$
LINE INPUT #1,help_ortho$
LINE INPUT #1,help_grid$
LINE INPUT #1,help_free$
LINE INPUT #1,help_snap$
LINE INPUT #1,help_editor$
LINE INPUT #1,help_pfad$
CLOSE #1
' ****************************************************************************
integer%=VARPTR(punkte_x%(1))-VARPTR(punkte_x%(0)) ! Länge in Bytes Integer
'
z_editor%(0)=2048 ! Top Line Y
z_editor%(1)=3072 ! Ascent Line Y
z_editor%(2)=6144 ! Half Line Y
z_editor%(3)=11264 ! Base Line Y
z_editor%(4)=13952 ! Descent Line Y
z_editor%(5)=14336 ! Bottom Line Y
'
z_editor%(6)=0 ! Matrix links X
z_editor%(7)=16384 ! Matrix rechts X
z_editor%(8)=1280 ! Kerning links X
z_editor%(9)=1280 ! Kerning links X
z_editor%(10)=1280 ! Kerning links X
z_editor%(11)=1280 ! Kerning links X
z_editor%(12)=1280 ! Kerning links X
z_editor%(13)=1280 ! Kerning links X
z_editor%(14)=1280 ! Kerning links X
z_editor%(15)=1280 ! Kerning links X
z_editor%(16)=15104 ! Kerning rechts X
z_editor%(17)=15104 ! Kerning rechts X
z_editor%(18)=15104 ! Kerning rechts X
z_editor%(19)=15104 ! Kerning rechts X
z_editor%(20)=15104 ! Kerning rechts X
z_editor%(21)=15104 ! Kerning rechts X
z_editor%(22)=15104 ! Kerning rechts X
z_editor%(23)=15104 ! Kerning rechts X
z_editor%(24)=z_editor%(0) ! Kerning Y
z_editor%(25)=(z_editor%(5)-z_editor%(0))/8 ! Kerning Y
z_editor%(26)=z_editor%(24)+z_editor%(25) ! Kerning Y
z_editor%(27)=z_editor%(26)+z_editor%(25) ! Kerning Y
z_editor%(28)=z_editor%(27)+z_editor%(25) ! Kerning Y
z_editor%(29)=z_editor%(28)+z_editor%(25) ! Kerning Y
z_editor%(30)=z_editor%(29)+z_editor%(25) ! Kerning Y
z_editor%(31)=z_editor%(30)+z_editor%(25) ! Kerning Y
z_editor%(32)=0 ! Matrix oben Y
'
' ******************************************************************************
' * *
' * MENU INITIALISIERUNG *
' * *
' ******************************************************************************
'
BMOVE V:serien_nummer$,V:serien_nummer,8
BMOVE V:serien_nummer_vergleich$,V:serien_nummer_vergleich,8
regist_nr%=serien_nummer_vergleich
IF serien_nummer<>(serien_nummer_vergleich XOR magic%)
PRINT "SORRY HACKER"
PAUSE 300
SYSTEM
ENDIF
INLINE zasm_ptr%,4136
INLINE pack_img%,958
INLINE calc_bezier%,1050
INLINE p_num%,360
INLINE find_line%,356
INLINE kontour%,216
INLINE staddec%,184
INLINE imgdec%,228
INLINE findexcept%,52
INLINE findpointexcept%,70
mfang$=MKI$(7)+MKI$(7)+MKI$(1)+MKI$(0)+MKI$(1)
mfang$=mfang$+MKI$(&X1111111111111110)
mfang$=mfang$+MKI$(&X1111111111111110)
mfang$=mfang$+MKI$(&X1100001110000110)
mfang$=mfang$+MKI$(&X1100001110000110)
mfang$=mfang$+MKI$(&X1100001110000110)
mfang$=mfang$+MKI$(&X1100001110000110)
mfang$=mfang$+MKI$(&X1111110001111110)
mfang$=mfang$+MKI$(&X1111110001111110)
mfang$=mfang$+MKI$(&X1111110001111110)
mfang$=mfang$+MKI$(&X1100001110000110)
mfang$=mfang$+MKI$(&X1100001110000110)
mfang$=mfang$+MKI$(&X1100001110000110)
mfang$=mfang$+MKI$(&X1100001110000110)
mfang$=mfang$+MKI$(&X1111111111111110)
mfang$=mfang$+MKI$(&X1111111111111110)
mfang$=mfang$+MKI$(&X0)
'
mfang$=mfang$+MKI$(&X1111111111111110)
mfang$=mfang$+MKI$(&X1000000100000010)
mfang$=mfang$+MKI$(&X1000000100000010)
mfang$=mfang$+MKI$(&X1000000100000010)
mfang$=mfang$+MKI$(&X1000000100000010)
mfang$=mfang$+MKI$(&X1000000100000010)
mfang$=mfang$+MKI$(&X1000000000000010)
mfang$=mfang$+MKI$(&X1111110001111110)
mfang$=mfang$+MKI$(&X1000000000000010)
mfang$=mfang$+MKI$(&X1000000100000010)
mfang$=mfang$+MKI$(&X1000000100000010)
mfang$=mfang$+MKI$(&X1000000100000010)
mfang$=mfang$+MKI$(&X1000000100000010)
mfang$=mfang$+MKI$(&X1000000100000010)
mfang$=mfang$+MKI$(&X1111111111111110)
mfang$=mfang$+MKI$(&X0)
'
mfang_klein$=MKI$(7)+MKI$(7)+MKI$(1)+MKI$(0)+MKI$(1)
mfang_klein$=mfang_klein$+MKI$(&X0)
mfang_klein$=mfang_klein$+MKI$(&X0)
mfang_klein$=mfang_klein$+MKI$(&X11111111111000)
mfang_klein$=mfang_klein$+MKI$(&X11111111111000)
mfang_klein$=mfang_klein$+MKI$(&X11001110011000)
mfang_klein$=mfang_klein$+MKI$(&X11001110011000)
mfang_klein$=mfang_klein$+MKI$(&X11110001111000)
mfang_klein$=mfang_klein$+MKI$(&X11110001111000)
mfang_klein$=mfang_klein$+MKI$(&X11110001111000)
mfang_klein$=mfang_klein$+MKI$(&X11001110011000)
mfang_klein$=mfang_klein$+MKI$(&X11001110011000)
mfang_klein$=mfang_klein$+MKI$(&X11111111111000)
mfang_klein$=mfang_klein$+MKI$(&X11111111111000)
mfang_klein$=mfang_klein$+MKI$(&X0)
mfang_klein$=mfang_klein$+MKI$(&X0)
mfang_klein$=mfang_klein$+MKI$(&X0)
'
mfang_klein$=mfang_klein$+MKI$(&X0)
mfang_klein$=mfang_klein$+MKI$(&X0)
mfang_klein$=mfang_klein$+MKI$(&X0)
mfang_klein$=mfang_klein$+MKI$(&X1111111110000)
mfang_klein$=mfang_klein$+MKI$(&X1000100010000)
mfang_klein$=mfang_klein$+MKI$(&X1000100010000)
mfang_klein$=mfang_klein$+MKI$(&X1000000010000)
mfang_klein$=mfang_klein$+MKI$(&X1110001110000)
mfang_klein$=mfang_klein$+MKI$(&X1000000010000)
mfang_klein$=mfang_klein$+MKI$(&X1000100010000)
mfang_klein$=mfang_klein$+MKI$(&X1000100010000)
mfang_klein$=mfang_klein$+MKI$(&X1111111110000)
mfang_klein$=mfang_klein$+MKI$(&X0)
mfang_klein$=mfang_klein$+MKI$(&X0)
mfang_klein$=mfang_klein$+MKI$(&X0)
mfang_klein$=mfang_klein$+MKI$(&X0)
'
mdaten$=MKI$(7)+MKI$(7)+MKI$(1)+MKI$(0)+MKI$(1)
mdaten$=mdaten$+MKI$(&X1110000000)
mdaten$=mdaten$+MKI$(&X1110000000)
mdaten$=mdaten$+MKI$(&X1110000000)
mdaten$=mdaten$+MKI$(&X1110000000)
mdaten$=mdaten$+MKI$(&X1110000000)
mdaten$=mdaten$+MKI$(&X1110000000)
mdaten$=mdaten$+MKI$(&X1111110001111110)
mdaten$=mdaten$+MKI$(&X1111110001111110)
mdaten$=mdaten$+MKI$(&X1111110001111110)
mdaten$=mdaten$+MKI$(&X1110000000)
mdaten$=mdaten$+MKI$(&X1110000000)
mdaten$=mdaten$+MKI$(&X1110000000)
mdaten$=mdaten$+MKI$(&X1110000000)
mdaten$=mdaten$+MKI$(&X1110000000)
mdaten$=mdaten$+MKI$(&X1110000000)
mdaten$=mdaten$+MKI$(&X0)
'
mdaten$=mdaten$+MKI$(&X100000000)
mdaten$=mdaten$+MKI$(&X100000000)
mdaten$=mdaten$+MKI$(&X100000000)
mdaten$=mdaten$+MKI$(&X100000000)
mdaten$=mdaten$+MKI$(&X100000000)
mdaten$=mdaten$+MKI$(&X100000000)
mdaten$=mdaten$+MKI$(&X0)
mdaten$=mdaten$+MKI$(&X1111110001111110)
mdaten$=mdaten$+MKI$(&X0)
mdaten$=mdaten$+MKI$(&X100000000)
mdaten$=mdaten$+MKI$(&X100000000)
mdaten$=mdaten$+MKI$(&X100000000)
mdaten$=mdaten$+MKI$(&X100000000)
mdaten$=mdaten$+MKI$(&X100000000)
mdaten$=mdaten$+MKI$(&X100000000)
mdaten$=mdaten$+MKI$(&X0)
'
schwer$=MKI$(7)+MKI$(7)+MKI$(-1)+MKI$(0)+MKI$(1)
schwer$=schwer$+MKI$(&X0) !
schwer$=schwer$+MKI$(&X0)
schwer$=schwer$+MKI$(&X11111000000) !
schwer$=schwer$+MKI$(&X11111000000)
schwer$=schwer$+MKI$(&X1100111110000) !
schwer$=schwer$+MKI$(&X1100111110000)
schwer$=schwer$+MKI$(&X10000111111000) !
schwer$=schwer$+MKI$(&X10000111111000)
schwer$=schwer$+MKI$(&X10000111111000) !
schwer$=schwer$+MKI$(&X10000111111000)
schwer$=schwer$+MKI$(&X100000111111100) !
schwer$=schwer$+MKI$(&X100000111111100)
schwer$=schwer$+MKI$(&X100000111111100) !
schwer$=schwer$+MKI$(&X100000111111100)
schwer$=schwer$+MKI$(&X111111011111100) !!
schwer$=schwer$+MKI$(&X111111011111100)
schwer$=schwer$+MKI$(&X111111100000100) !
schwer$=schwer$+MKI$(&X111111100000100)
schwer$=schwer$+MKI$(&X111111100000100) !
schwer$=schwer$+MKI$(&X111111100000100)
schwer$=schwer$+MKI$(&X11111100001000) !
schwer$=schwer$+MKI$(&X11111100001000)
schwer$=schwer$+MKI$(&X11111100001000) !
schwer$=schwer$+MKI$(&X11111100001000)
schwer$=schwer$+MKI$(&X1111100110000) !
schwer$=schwer$+MKI$(&X1111100110000)
schwer$=schwer$+MKI$(&X11111000000) !
schwer$=schwer$+MKI$(&X11111000000)
schwer$=schwer$+MKI$(&X0) !
schwer$=schwer$+MKI$(&X0)
schwer$=schwer$+MKI$(&X0) !
schwer$=schwer$+MKI$(&X0)
pfad_read
reset
RESERVE -64*1024
DIM work%((FRE(0)-80*1024)/4)
daten_ptr%=V:work%(0)
work_space%=DIM?(work%())*4
KEYPAD 8
~RSRC_LOAD("SYS\CUTOUT.RSC")
~RSRC_GADDR(0,tree00&,tree0_adr%)
~RSRC_GADDR(0,tree01&,tree1_adr%)
~RSRC_GADDR(0,tree02&,tree2_adr%)
~RSRC_GADDR(0,tree03&,tree3_adr%)
~RSRC_GADDR(0,tree04&,tree4_adr%)
~RSRC_GADDR(0,tree05&,tree5_adr%)
~RSRC_GADDR(0,tree06&,tree6_adr%)
~RSRC_GADDR(0,tree07&,tree7_adr%)
~RSRC_GADDR(0,tree08&,tree8_adr%)
~RSRC_GADDR(0,tree09&,tree9_adr%)
~RSRC_GADDR(0,tree10&,tree10_adr%)
~RSRC_GADDR(0,tree11&,tree11_adr%)
~RSRC_GADDR(0,tree12&,tree12_adr%)
~RSRC_GADDR(0,tree13&,tree13_adr%)
~RSRC_GADDR(0,tree14&,tree14_adr%)
~RSRC_GADDR(0,tree15&,tree15_adr%)
~RSRC_GADDR(0,tree16&,tree16_adr%)
~RSRC_GADDR(0,tree17&,tree17_adr%)
~RSRC_GADDR(0,tree18&,tree18_adr%)
~RSRC_GADDR(0,tree19&,tree19_adr%)
~RSRC_GADDR(0,tree20&,tree20_adr%)
~RSRC_GADDR(0,tree21&,tree21_adr%)
~RSRC_GADDR(0,tree22&,tree22_adr%)
~RSRC_GADDR(0,tree23&,tree23_adr%)
~RSRC_GADDR(0,tree24&,tree24_adr%)
~RSRC_GADDR(0,tree25&,tree25_adr%)
~RSRC_GADDR(0,tree26&,tree26_adr%)
~RSRC_GADDR(0,tree27&,tree27_adr%)
~RSRC_GADDR(0,tree28&,tree28_adr%)
~RSRC_GADDR(0,tree29&,tree29_adr%)
~RSRC_GADDR(0,tree30&,tree30_adr%)
~RSRC_GADDR(0,tree31&,tree31_adr%)
~RSRC_GADDR(0,tree32&,tree32_adr%)
~RSRC_GADDR(0,tree33&,tree33_adr%)
~RSRC_GADDR(0,tree34&,tree34_adr%)
~RSRC_GADDR(0,tree35&,tree35_adr%)
~RSRC_GADDR(0,tree36&,tree36_adr%)
~RSRC_GADDR(0,tree37&,tree37_adr%)
~RSRC_GADDR(0,tree38&,tree38_adr%)
~RSRC_GADDR(0,tree39&,tree39_adr%)
~RSRC_GADDR(0,tree40&,tree40_adr%)
~RSRC_GADDR(0,tree41&,tree41_adr%)
~FORM_CENTER(tree6_adr%)
~FORM_CENTER(tree7_adr%)
~FORM_CENTER(tree8_adr%)
~FORM_CENTER(tree10_adr%)
~FORM_CENTER(tree11_adr%)
~FORM_CENTER(tree12_adr%)
~FORM_CENTER(tree13_adr%)
~FORM_CENTER(tree14_adr%)
~FORM_CENTER(tree15_adr%)
~FORM_CENTER(tree16_adr%)
~FORM_CENTER(tree17_adr%)
~FORM_CENTER(tree18_adr%)
~FORM_CENTER(tree19_adr%)
~FORM_CENTER(tree20_adr%)
~FORM_CENTER(tree21_adr%)
~FORM_CENTER(tree22_adr%)
~FORM_CENTER(tree23_adr%)
~FORM_CENTER(tree24_adr%)
~FORM_CENTER(tree26_adr%)
~FORM_CENTER(tree27_adr%)
~FORM_CENTER(tree28_adr%)
~FORM_CENTER(tree29_adr%)
~FORM_CENTER(tree30_adr%)
~FORM_CENTER(tree31_adr%)
~FORM_CENTER(tree32_adr%)
~FORM_CENTER(tree33_adr%)
~FORM_CENTER(tree35_adr%)
~FORM_CENTER(tree36_adr%)
~FORM_CENTER(tree37_adr%)
~FORM_CENTER(tree38_adr%)
~FORM_CENTER(tree39_adr%)
~FORM_CENTER(tree40_adr%)
~FORM_CENTER(tree41_adr%)
xt6&=DPEEK(tree6_adr%+16)
yt6&=DPEEK(tree6_adr%+18)
bt6&=DPEEK(tree6_adr%+20)
ht6&=DPEEK(tree6_adr%+22)
xt7&=DPEEK(tree7_adr%+16)
yt7&=DPEEK(tree7_adr%+18)
bt7&=DPEEK(tree7_adr%+20)
ht7&=DPEEK(tree7_adr%+22)
xt8&=DPEEK(tree8_adr%+16)
yt8&=DPEEK(tree8_adr%+18)
bt8&=DPEEK(tree8_adr%+20)
ht8&=DPEEK(tree8_adr%+22)
xt10&=DPEEK(tree10_adr%+16)
yt10&=DPEEK(tree10_adr%+18)
bt10&=DPEEK(tree10_adr%+20)
ht10&=DPEEK(tree10_adr%+22)
xt11&=DPEEK(tree11_adr%+16)
yt11&=DPEEK(tree11_adr%+18)
bt11&=DPEEK(tree11_adr%+20)
ht11&=DPEEK(tree11_adr%+22)
xt12&=DPEEK(tree12_adr%+16)
yt12&=DPEEK(tree12_adr%+18)
bt12&=DPEEK(tree12_adr%+20)
ht12&=DPEEK(tree12_adr%+22)
xt13&=DPEEK(tree13_adr%+16)
yt13&=DPEEK(tree13_adr%+18)
bt13&=DPEEK(tree13_adr%+20)
ht13&=DPEEK(tree13_adr%+22)
xt14&=DPEEK(tree14_adr%+16)
yt14&=DPEEK(tree14_adr%+18)
bt14&=DPEEK(tree14_adr%+20)
ht14&=DPEEK(tree14_adr%+22)
xt15&=DPEEK(tree15_adr%+16)
yt15&=DPEEK(tree15_adr%+18)
bt15&=DPEEK(tree15_adr%+20)
ht15&=DPEEK(tree15_adr%+22)
xt16&=DPEEK(tree16_adr%+16)
yt16&=DPEEK(tree16_adr%+18)
bt16&=DPEEK(tree16_adr%+20)
ht16&=DPEEK(tree16_adr%+22)
xt17&=DPEEK(tree17_adr%+16)
yt17&=DPEEK(tree17_adr%+18)
bt17&=DPEEK(tree17_adr%+20)
ht17&=DPEEK(tree17_adr%+22)
xt18&=DPEEK(tree18_adr%+16)
yt18&=DPEEK(tree18_adr%+18)
bt18&=DPEEK(tree18_adr%+20)
ht18&=DPEEK(tree18_adr%+22)
xt19&=DPEEK(tree19_adr%+16)
yt19&=DPEEK(tree19_adr%+18)
bt19&=DPEEK(tree19_adr%+20)
ht19&=DPEEK(tree19_adr%+22)
xt20&=DPEEK(tree20_adr%+16)
yt20&=DPEEK(tree20_adr%+18)
bt20&=DPEEK(tree20_adr%+20)
ht20&=DPEEK(tree20_adr%+22)
xt21&=DPEEK(tree21_adr%+16)
yt21&=DPEEK(tree21_adr%+18)
bt21&=DPEEK(tree21_adr%+20)
ht21&=DPEEK(tree21_adr%+22)
xt22&=DPEEK(tree22_adr%+16)
yt22&=DPEEK(tree22_adr%+18)
bt22&=DPEEK(tree22_adr%+20)
ht22&=DPEEK(tree22_adr%+22)
xt23&=DPEEK(tree23_adr%+16)
yt23&=DPEEK(tree23_adr%+18)
bt23&=DPEEK(tree23_adr%+20)
ht23&=DPEEK(tree23_adr%+22)
DPOKE tree24_adr%+16,DPEEK(tree24_adr%+16)+200
xt24&=DPEEK(tree24_adr%+16)
yt24&=DPEEK(tree24_adr%+18)
bt24&=DPEEK(tree24_adr%+20)
ht24&=DPEEK(tree24_adr%+22)
xt26&=DPEEK(tree26_adr%+16)
yt26&=DPEEK(tree26_adr%+18)
bt26&=DPEEK(tree26_adr%+20)
ht26&=DPEEK(tree26_adr%+22)
xt27&=DPEEK(tree27_adr%+16)
yt27&=DPEEK(tree27_adr%+18)
bt27&=DPEEK(tree27_adr%+20)
ht27&=DPEEK(tree27_adr%+22)
xt28&=DPEEK(tree28_adr%+16)
yt28&=DPEEK(tree28_adr%+18)
bt28&=DPEEK(tree28_adr%+20)
ht28&=DPEEK(tree28_adr%+22)
xt29&=DPEEK(tree29_adr%+16)
yt29&=DPEEK(tree29_adr%+18)
bt29&=DPEEK(tree29_adr%+20)
ht29&=DPEEK(tree29_adr%+22)
xt30&=DPEEK(tree30_adr%+16)
yt30&=DPEEK(tree30_adr%+18)
bt30&=DPEEK(tree30_adr%+20)
ht30&=DPEEK(tree30_adr%+22)
xt31&=DPEEK(tree31_adr%+16)
yt31&=DPEEK(tree31_adr%+18)
bt31&=DPEEK(tree31_adr%+20)
ht31&=DPEEK(tree31_adr%+22)
xt32&=DPEEK(tree32_adr%+16)
yt32&=DPEEK(tree32_adr%+18)
bt32&=DPEEK(tree32_adr%+20)
ht32&=DPEEK(tree32_adr%+22)
xt35&=DPEEK(tree35_adr%+16)
yt35&=DPEEK(tree35_adr%+18)
bt35&=DPEEK(tree35_adr%+20)
ht35&=DPEEK(tree35_adr%+22)
xt33&=DPEEK(tree33_adr%+16)
yt33&=DPEEK(tree33_adr%+18)
bt33&=DPEEK(tree33_adr%+20)
ht33&=DPEEK(tree33_adr%+22)
xt36&=DPEEK(tree36_adr%+16)
yt36&=DPEEK(tree36_adr%+18)
bt36&=DPEEK(tree36_adr%+20)
ht36&=DPEEK(tree36_adr%+22)
xt37&=DPEEK(tree37_adr%+16)
yt37&=DPEEK(tree37_adr%+18)
bt37&=DPEEK(tree37_adr%+20)
ht37&=DPEEK(tree37_adr%+22)
xt38&=DPEEK(tree38_adr%+16)
yt38&=DPEEK(tree38_adr%+18)
bt38&=DPEEK(tree38_adr%+20)
ht38&=DPEEK(tree38_adr%+22)
xt39&=DPEEK(tree39_adr%+16)
yt39&=DPEEK(tree39_adr%+18)
bt39&=DPEEK(tree39_adr%+20)
ht39&=DPEEK(tree39_adr%+22)
xt40&=DPEEK(tree40_adr%+16)
yt40&=DPEEK(tree40_adr%+18)
bt40&=DPEEK(tree40_adr%+20)
ht40&=DPEEK(tree40_adr%+22)
xt41&=DPEEK(tree41_adr%+16)
yt41&=DPEEK(tree41_adr%+18)
bt41&=DPEEK(tree41_adr%+20)
ht41&=DPEEK(tree41_adr%+22)
bt_output&=OB_W(tree40_adr%,pl100&)
CHAR{{OB_SPEC(tree6_adr%,t_hoehe&)}}=STR$(INT(zeichen_hoehe%/100))
CHAR{{OB_SPEC(tree7_adr%,zabs&)}}=STR$(INT(zeilen_abstand_prozent%))
CHAR{{OB_SPEC(tree9_adr%,z_char&)}}=CHR$(z_ascii_old%+32)
CHAR{{OB_SPEC(tree8_adr%,string_text&)}}=abc$
CHAR{{OB_SPEC(tree12_adr%,bstep&)}}=STR$(b_vari/100)
CHAR{{OB_SPEC(tree13_adr%,punkte&)}}=STR$(pointer%)
CHAR{{OB_SPEC(tree13_adr%,rest&)}}=STR$(p_max%-pointer%)
CHAR{{OB_SPEC(tree13_adr%,version&)}}=revision$
CHAR{{OB_SPEC(tree14_adr%,rx1&)}}=STR$(folie_x%)
CHAR{{OB_SPEC(tree14_adr%,ry1&)}}=STR$(folie_y%)
CHAR{{OB_SPEC(tree14_adr%,rx2&)}}=STR$(folie_x2%)
CHAR{{OB_SPEC(tree14_adr%,ry2&)}}=STR$(folie_y2%)
CHAR{{OB_SPEC(tree14_adr%,rx3&)}}=STR$(folie_x3%)
CHAR{{OB_SPEC(tree14_adr%,ry3&)}}=STR$(folie_y3%)
CHAR{{OB_SPEC(tree15_adr%,p_init1&)}}=p_init1$
CHAR{{OB_SPEC(tree15_adr%,p_init2&)}}=p_init2$
CHAR{{OB_SPEC(tree15_adr%,overcut&)}}=STR$(overcut|/10)
CHAR{{OB_SPEC(tree15_adr%,ma&)}}=ma$
CHAR{{OB_SPEC(tree15_adr%,da&)}}=da$
CHAR{{OB_SPEC(tree17_adr%,outl&)}}="3.0"
CHAR{{OB_SPEC(tree18_adr%,schraffd&)}}=STR$(schraff_dist/100)
CHAR{{OB_SPEC(tree18_adr%,schraffi&)}}=STR$(schraff_inc/100)
CHAR{{OB_SPEC(tree18_adr%,schraffw&)}}=STR$(schraff_winkel)
CHAR{{OB_SPEC(tree18_adr%,schrafix&)}}=STR$(schraff_fix_abst)
CHAR{{OB_SPEC(tree21_adr%,t_step&)}}=STR$(bit_count_max|)
CHAR{{OB_SPEC(tree21_adr%,t_gerade&)}}=STR$(geraden_fehler|)
CHAR{{OB_SPEC(tree21_adr%,t_schmutz&)}}=STR$(schmutz_filter%)
CHAR{{OB_SPEC(tree21_adr%,bschwelle&)}}=STR$(lange_gerade%/100)
CHAR{{OB_SPEC(tree21_adr%,knickwinkel&)}}=STR$(CINT(DEG(knick_winkel_max)))
CHAR{{OB_SPEC(tree21_adr%,bogen_max&)}}=STR$(CINT(DEG(bogen_max*2)))
CHAR{{OB_SPEC(tree21_adr%,abweichung_gerade&)}}=STR$(abweichung_gerade%/100)
CHAR{{OB_SPEC(tree22_adr%,scann_x&)}}="1664"
CHAR{{OB_SPEC(tree22_adr%,scann_y&)}}="800"
CHAR{{OB_SPEC(tree23_adr%,radius&)}}="10"
CHAR{{OB_SPEC(tree27_adr%,calamus_nr&)}}=STR$(calamus_nr%)
CHAR{{OB_SPEC(tree29_adr%,kostfak&)}}=STR$(kostfak)
CHAR{{OB_SPEC(tree31_adr%,anz_rot&)}}="3"
CHAR{{OB_SPEC(tree31_adr%,phi_rot&)}}="90"
OB_STATE(tree15_adr%,rs232&)=state_rs232&+16
OB_STATE(tree15_adr%,cent&)=state_rs232& XOR 1+16
OB_STATE(tree15_adr%,hp&)=state_hp&+16
OB_STATE(tree15_adr%,gp&)=state_hp& XOR 1+16
OB_STATE(tree26_adr%,absolut&)=absolut!+18
OB_STATE(tree26_adr%,relativ&)=absolut!+17
OB_STATE(tree26_adr%,polar&)=absolut!+17
IF gdu=1
OB_STATE(tree15_adr%,gdu01&)=17
ELSE
IF gdu=2.5
OB_STATE(tree15_adr%,gdu025&)=17
ELSE
IF gdu=5
OB_STATE(tree15_adr%,gdu05&)=17
ELSE
OB_STATE(tree15_adr%,gdu1&)=17
ENDIF
ENDIF
ENDIF
OB_STATE(tree1_adr%,lock&)=1
IF mimaki!
OB_STATE(tree15_adr%,gdu05&)=17
OB_STATE(tree15_adr%,gdu01&)=8
OB_STATE(tree15_adr%,gdu025&)=8
OB_STATE(tree15_adr%,gdu1&)=8
OB_STATE(tree15_adr%,rs232&)=17
OB_STATE(tree15_adr%,mgl&)=17
OB_STATE(tree15_adr%,cent&)=16
OB_STATE(tree15_adr%,hp&)=16
OB_STATE(tree15_adr%,gp&)=16
ELSE
OB_STATE(tree15_adr%,mgl&)=8
ENDIF
~WIND_GET(0,4) ! get desk size
BMOVE GINTOUT+2,tree0_adr%+16,8 ! set into rsc
BMOVE GINTOUT+2,tree1_adr%+16,8 ! set into rsc
BMOVE GINTOUT+2,tree2_adr%+16,8 ! set into rsc
BMOVE GINTOUT+2,tree3_adr%+16,8 ! set into rsc
BMOVE GINTOUT+2,tree4_adr%+16,8 ! set into rsc
BMOVE GINTOUT+2,tree5_adr%+16,8 ! set into rsc
BMOVE GINTOUT+2,tree9_adr%+16,8 ! set into rsc
BMOVE GINTOUT+2,tree25_adr%+16,8 ! set into rsc
BMOVE GINTOUT+2,tree34_adr%+16,8 ! set into rsc
wind_newdesk(tree0_adr%,0) ! install Datei Baum
IF default_font$<>""
datei$=ein_space$
IF EXIST(pfad_fnt$+"\"+default_font$)
load_font(pfad_fnt$+"\"+default_font$)
programm_font$=LEFT$(default_font$,LEN(default_font$)-4)
ELSE
make_new_font(-1)
ENDIF
ELSE
make_new_font(-1)
ENDIF
m$(0)=""
m$(1)=" CUTOUT"
m$(2)="--------------------"
m$(3)=CHR$(2)
m$(4)=CHR$(3)
m$(5)=CHR$(4)
m$(6)=CHR$(5)
m$(7)=CHR$(6)
m$(8)=CHR$(7)
m$(9)=CHR$(8)
m$(10)=""
m$(11)=pd_menu$
m$(12)=pd_datei$
m$(13)=pd_editieren$
m$(14)=pd_fenster$
m$(15)=pd_schnittpunkt$
m$(16)=pd_bogen$
m$(17)="----------------------"
m$(18)=pd_text$
m$(19)=pd_zeicheneditor$
m$(20)=m$(17)
m$(21)=pd_extra$
m$(22)=m$(17)
m$(23)=pd_quit$
m$(24)=""
m$(25)=pd_optionen$
m$(26)=pd_marker_anzeigen$
m$(27)=pd_tangenten_anzeigen$
m$(28)=pd_fangradius_klein$
m$(29)=pd_polygon_modus$
m$(30)=pd_schnittpunkt_genau$
m$(31)=pd_koordinaten$
m$(32)=pd_element_selektieren$
m$(33)=pd_polygon_selektieren$
m$(34)=pd_warnmeldungen$
m$(35)="---------------------------"
m$(36)=pd_skaliere_alles$
m$(37)=m$(35)
m$(38)=pd_punkte_nivellieren$
m$(39)=pd_tangente$
m$(40)=m$(35)
m$(41)=pd_plotflaeche$
m$(42)=pd_bezier_step_aendern$
m$(43)=pd_plotter_einstellung$
m$(44)=pd_kosten_faktor$
m$(45)=pd_pfad_sichern$
m$(46)=""
m$(47)=pd_figur$
m$(48)=pd_rechteck$
m$(49)=pd_n_eck$
m$(50)=pd_polygon_outline$
m$(51)=pd_aequidistante$
m$(52)=pd_frame$
m$(53)="---------------------------"
m$(54)=pd_polygone_ausrichten$
m$(55)=pd_polygone_zentrieren$
m$(56)=pd_polygone_vereinen$
m$(57)=pd_polygone_fuellen$
m$(58)=m$(53)
m$(59)=pd_einzelne_punkte_loeschen$
m$(60)=""
m$(61)=pd_linie$
m$(62)=pd_bezier_vektor$
m$(63)=pd_bezier_einfuegen$
m$(64)=pd_tausche_bezier_vektor$
m$(65)=m$(53)
m$(66)=pd_knacken$
m$(67)=pd_trimmen$
m$(68)=pd_lot$
m$(69)=pd_verlaengern$
m$(70)=pd_teilen$
m$(71)=pd_messen$
m$(72)=m$(53)
m$(73)=pd_schnittp_2er$
m$(74)=pd_schnittp_n$
m$(75)=""
m$(76)=pd_effekt$
m$(77)=pd_parameter_schraffur$
m$(78)=pd_polygon_schraffieren$
m$(79)=pd_alles_schraffieren$
m$(80)="------------------------"
m$(81)=pd_schatten$
m$(82)=pd_einpassen$
m$(83)=m$(80)
m$(84)=pd_kugel$
m$(85)=""
m$(86)=""
MENU m$()
IF fangklein!
MENU 28,1
ENDIF
IF polygonmode!
MENU 29,1
ENDIF
IF warn!
MENU 34,1
ENDIF
CLIP 0,0,639,399 OFFSET 0,0
DEFTEXT 1,0,0,6
COLOR 1
TEXT 400,7,"Zoom X:"
TEXT 400,15,"Zoom Y:"
TEXT 540,7,"X:"
TEXT 540,15,"Y:"
DEFTEXT 1,0,0,4
TEXT 624,7,"mm"
TEXT 624,15,"mm"
LINE 536,0,536,20
LINE 396,0,396,20
'
~FORM_DIAL(3,0,0,0,0,0,0,desk_breite&,desk_hoehe&) !redraw all
'
layer!=FALSE
zoom=1
x_layer%=folie_x%
y_layer%=folie_y%
x_layero%=x_layer%
y_layero%=y_layer%
res_x%=x_layer%
res_y%=y_layer%
x_offset&=0
y_offset&=0
res_x_old%=x_layer%
res_y_old%=y_layer%
x_offset_old&=0
y_offset_old&=0
pointer%=0
get_desktop
scrb_old&=scrb&
scrh_old&=scrh&
CLOSEW 1
programm$=noname$
INT{WINDTAB+2}=&X111111000000
INT{WINDTAB+4}=scrx&
INT{WINDTAB+6}=scry&
INT{WINDTAB+8}=scrb&
INT{WINDTAB+10}=scrh&
help_titel
OPENW 1
calc_slid
~WIND_GET(1,4,x_win&,y_win&,b_window&,h_window&)
neues_polygon!=TRUE
do_redraw
DEFMOUSE 3
p_zoom(zoom*100,zoom*100)
CHAR{{OB_SPEC(tree14_adr%,rx1&)}}=STR$(x_layer%)
CHAR{{OB_SPEC(tree14_adr%,ry1&)}}=STR$(y_layer%)
' test_vollbild
'
~OBJC_OFFSET(tree28_adr%,gtprewin&,gtxv&,gtyv&)
gtxv&=gtxv&-x_win&+1
gtyv&=gtyv&-y_win&+1
'
ON MENU MESSAGE GOSUB message
ON MENU BUTTON 1,1,1 GOSUB button
ON MENU GOSUB menu
ON MENU KEY GOSUB key
' ON ERROR GOSUB fehler
'
'
REPEAT
ON MENU
UNTIL end!
'
IF modified!
IF pointer%>0
ALERT 3,"| "+sichere$+daten$,1,ja_nein$,i%
IF i%=1
@save_vektor
ENDIF
ENDIF
ENDIF
'
' Bei fertigen Programmen hier nur QUIT
'
reset
~WIND_GET(0,10)
IF DPEEK(GINTOUT+2)
ALERT 1,"Accessories",1,"Close|Quit",i%
IF i%=2
QUIT
ENDIF
REPEAT
~WIND_GET(0,10)
UNTIL DPEEK(GINTOUT+2)=0
ENDIF
RESERVE ! XBIOS(2)-HIMEM+FRE(0)-16384
'
PROCEDURE fehler
ALERT 1,fehler$,1,leider$,i%
' RESUME NEXT
RETURN
'
'
PROCEDURE get_undo
LOCAL dp%
dp%=daten_ptr%
IF (pointer%*9+1<work_space%) AND (NOT layer_geladen!)
LONG{dp%}=pointer%
ADD dp%,4
undo!=TRUE
BMOVE VARPTR(punkte_x%(0)),dp%,pointer%*4
ADD dp%,pointer%*4
BMOVE VARPTR(punkte_y%(0)),dp%,pointer%*4
ADD dp%,pointer%*4
BMOVE VARPTR(punkte_def|(0)),dp%,pointer%
undo!=TRUE
ELSE
undo!=FALSE
ENDIF
RETURN
'
PROCEDURE put_undo
LOCAL dp%
IF undo!
dp%=daten_ptr%
pointer%=LONG{dp%}
ADD dp%,4
BMOVE dp%,VARPTR(punkte_x%(0)),pointer%*4
ADD dp%,pointer%*4
BMOVE dp%,VARPTR(punkte_y%(0)),pointer%*4
ADD dp%,pointer%*4
BMOVE dp%,VARPTR(punkte_def|(0)),pointer%
undo!=FALSE
do_redraw
ENDIF
RETURN
'
PROCEDURE output_drucker
LOCAL handle&,x_resi&,y_resi&,z_old
IF GDOS?
ERASE work%()
IF FRE(0)>250000
RESERVE -250000
handle&=V_OPNWK(21)
IF handle&<>0
V~H=handle&
x_resi&=INTOUT(0)
y_resi&=INTOUT(1)
~V_CLRWK()
z_old=zoom
zoom=4
redraw_ohne(0)
~V_UPDWK()
~V_CLSWK()
zoom=z_old
ELSE
ENDIF
RESERVE
ELSE
ENDIF
DIM work%((FRE(0)-80*1024)/4)
daten_ptr%=V:work%(0)
work_space%=DIM?(work%())*4
ELSE
ENDIF
RETURN
'
'
PROCEDURE scan_a1
ALERT 3,"| SCAN Hochformat: ",1,"A3|A2|A1",i%
SELECT i%
CASE 1
scann_x%=INT(17*400/8) !17
scann_y%=INT(12*400) !12
CASE 2
scann_x%=INT(25*400/8)
scann_y%=INT(17*400)
CASE 3
scann_x%=INT(34*400/8)
scann_y%=INT(25*400)
ENDSELECT
scan_graphtec(3,400,0,0,scann_x%,scann_y%)
RETURN
'
PROCEDURE scan_graphtec(device&,dpi&,x_0%,y_0%,bytes_x%,lines_y%)
LOCAL command_bytes&,bytes_to_transfer%,transfer_dir&
LOCAL y_offset%,block&,command_bytes&,bytes_to_transfer%
' IF FN test_unit_ready(device&)=0
set_graphtec_window(device&,dpi&,x_0%,y_0%,bytes_x%,lines_y%)
command_bytes&=10
block&=&HFFFF DIV bytes_x% DIV 3
bytes_to_transfer%=bytes_x%*block&*3
transfer_dir&=0 ! LESEN
command|(0)=&H28
command|(1)=0
command|(2)=0
command|(3)=0
command|(4)=0
command|(5)=0
command|(6)=0
command|(7)=0
command|(8)=0
command|(9)=0
WORD{V:command|(7)}=block&
'
anzahl&=lines_y% DIV block&
rest&=lines_y% MOD block&
y_offset%=0
FOR i%=1 TO anzahl&
$c+
fehler%=C:scsi%(device&,command_bytes&,bytes_to_transfer%,transfer_dir&,L:V:command|(0),L:daten_ptr%+y_offset%)
$c-
ADD y_offset%,block&*bytes_x%
NEXT i%
IF rest&<>0
bytes_to_transfer%=bytes_x%*rest&*3
WORD{V:command|(7)}=rest&
$c+
fehler%=C:scsi%(device&,command_bytes&,bytes_to_transfer%,transfer_dir&,L:V:command|(0),L:daten_ptr%+y_offset%)
$c-
ENDIF
' status&=AND(CARD(fehler%),&X11110)
' message&=CARD(SWAP(fehler%))
layer!=TRUE
layer_geladen!=TRUE
voll_bild!=TRUE
outlined!=FALSE
do_change_aufloesung(bytes_x%*8,lines_y%,1)
init_bit_blit
p_zoom(zoom*100,zoom*100)
do_redraw
' ENDIF
RETURN
'
PROCEDURE set_graphtec_window(device&,dpi&,x_0%,y_0%,bytes_x%,lines_y%)
LOCAL command_bytes&,bytes_to_transfer%,transfer_dir&
command_bytes&=10
bytes_to_transfer%=53
transfer_dir&=1 ! LESEN (1=SCHREIBEN)
command|(0)=&H24
command|(1)=0
command|(2)=0
command|(3)=0
command|(4)=0
command|(5)=0
command|(6)=0
command|(7)=0
command|(8)=bytes_to_transfer%
command|(9)=0
FOR i%=0 TO 6
buffer|(i%)=0
NEXT i%
FOR i%=38 TO 47
buffer|(i%)=0
NEXT i%
buffer|(7)=45 ! Window Descriptor Block Length
buffer|(8)=0 ! Window ID
buffer|(9)=0 ! reserved
WORD{V:buffer|(10)}=dpi& ! X resolution
WORD{V:buffer|(12)}=dpi& ! Y resolution
LONG{V:buffer|(14)}=x_0%*24 ! X Upper Left
LONG{V:buffer|(18)}=y_0%*3 ! Y Upper Left
LONG{V:buffer|(22)}=bytes_x%*24 ! Width
LONG{V:buffer|(26)}=lines_y%*3 ! Length
buffer|(30)=0 ! reserved
buffer|(31)=0 ! Kontrast
buffer|(32)=0 ! reserved
buffer|(33)=0 ! Image composition
buffer|(34)=1 ! Bits per Pixel
buffer|(35)=0 ! reserved
buffer|(36)=0 ! reserved
buffer|(37)=0 ! Reverse Image
buffer|(48)=2 ! Cell length
buffer|(49)=5 ! Function Code
buffer|(50)=1 ! Fine Line
buffer|(51)=2 ! Cell length
buffer|(52)=6 ! Function Code
buffer|(53)=1 ! Scann Speed
$c+
fehler%=C:scsi%(device&,command_bytes&,bytes_to_transfer%,transfer_dir&,L:V:command|(0),L:V:buffer|(0))
$c-
RETURN
'
FUNCTION test_unit_ready(device&)
command_bytes&=6
bytes_to_transfer%=1
transfer_dir&=0 ! LESEN (1=SCHREIBEN)
command|(0)=0
command|(1)=0
command|(2)=0
command|(3)=0
command|(4)=bytes_to_transfer%
command|(5)=0
'
$c+
fehler%=C:scsi%(device&,command_bytes&,L:bytes_to_transfer%,transfer_dir&,L:V:command|(0),L:V:buffer|(0))
$c-
status&=AND(CARD(fehler%),&X11110)
message&=CARD(SWAP(fehler%))
'
RETURN status&
ENDFUNC
'
'
PROCEDURE gt_info(i$)
CHAR{{OB_SPEC(tree28_adr%,gtstate&)}}=i$
~OBJC_DRAW(tree28_adr%,gtstate&,8,xt28&,yt28&,bt28&,ht28&)
RETURN
'
PROCEDURE dpi_change(prex0&,prey0&,prex0_min&,prey0_min&)
CHAR{{OB_SPEC(tree28_adr%,gtdpi&)}}=STR$(gtdpiv&)
~OBJC_DRAW(tree28_adr%,gtdpi&,8,xt28&,yt28&,bt28&,ht28&)
CHAR{{OB_SPEC(tree28_adr%,gtb&)}}=STR$(AND(INT(gtbv&/25.4*gtdpiv&),&HFFF8))
CHAR{{OB_SPEC(tree28_adr%,gth&)}}=STR$(AND(INT(gthv&/25.4*gtdpiv&),&HFFF8))
~OBJC_DRAW(tree28_adr%,gtb&,8,xt28&,yt28&,bt28&,ht28&)
~OBJC_DRAW(tree28_adr%,gth&,8,xt28&,yt28&,bt28&,ht28&)
CHAR{{OB_SPEC(tree28_adr%,gtx&)}}=STR$(AND(INT((prex0&-prex0_min&)/25.4*gtdpiv&),&HFFF8))
CHAR{{OB_SPEC(tree28_adr%,gty&)}}=STR$(AND(INT((prey0&-prey0_min&)/25.4*gtdpiv&),&HFFF8))
~OBJC_DRAW(tree28_adr%,gtx&,8,xt28&,yt28&,bt28&,ht28&)
~OBJC_DRAW(tree28_adr%,gty&,8,xt28&,yt28&,bt28&,ht28&)
RETURN
'
PROCEDURE gt_6000
LOCAL prex0&,prey0&,prex0_min&,prey0_min&,x_changed&,y_changed&
LOCAL prex&,prey&,gthalbton&
DEFMOUSE 0
SETMOUSE xt28&+240,yt28&+310,0
CLIP 0,0,desk_breite&,desk_hoehe& OFFSET x_win&,y_win&
~OBJC_OFFSET(tree28_adr%,gtprewin&,prex&,prey&)
gthalbton&=1
prex0&=prex&-x_win&+1
prey0&=prey&-y_win&+1
prex0_min&=prex0&
prey0_min&=prey0&
prex0_max&=prex0&+217
prey0_max&=prey0&+297
prex0&=gtxv&
prey0&=gtyv&
'
CHAR{{OB_SPEC(tree28_adr%,gtx&)}}=STR$(AND(INT((prex0&-prex0_min&)/25.4*gtdpiv&),&HFFF8))
CHAR{{OB_SPEC(tree28_adr%,gty&)}}=STR$(AND(INT((prey0&-prey0_min&)/25.4*gtdpiv&),&HFFF8))
CHAR{{OB_SPEC(tree28_adr%,gtb&)}}=STR$(AND(INT(gtbv&/25.4*gtdpiv&),&HFFF8))
CHAR{{OB_SPEC(tree28_adr%,gth&)}}=STR$(AND(INT(gthv&/25.4*gtdpiv&),&HFFF8))
CHAR{{OB_SPEC(tree28_adr%,gtdpi&)}}=STR$(gtdpiv&)
CHAR{{OB_SPEC(tree28_adr%,gtstate&)}}=waehle$
GET xt28&-4,yt28&-4,xt28&+bt28&+4,yt28&+ht28&+4,rette$
~OBJC_DRAW(tree28_adr%,0,8,xt28&,yt28&,bt28&,ht28&)
smfdb%(0)=V:prebuf$
smfdb%(1)=208
smfdb%(2)=292
smfdb%(3)=smfdb%(1)/16
smfdb%(5)=1
dmfdb%(0)=XBIOS(3)
dmfdb%(1)=desk_breite&
dmfdb%(2)=desk_hoehe&
dmfdb%(3)=dmfdb%(1)/16
dmfdb%(5)=1
p%(0)=0
p%(1)=0
p%(2)=207
p%(3)=291
p%(4)=prex&+1
p%(5)=prey&+1
p%(6)=p%(4)+207
p%(7)=p%(5)+291
p%(8)=3
BITBLT smfdb%(),dmfdb%(),p%()
DEFFILL 1,1,1
GRAPHMODE 3
BOX prex0&,prey0&,prex0&+gtbv&,prey0&+gthv&
PBOX prex0&+gtbv&-8,prey0&+gthv&-8,prex0&+gtbv&,prey0&+gthv&
REPEAT
DO
~FORM_DO(tree28_adr%,0)
IF INT{GINTOUT}>0 AND INT{GINTOUT}<100
exit_button&=DPEEK(GINTOUT)
OB_STATE(tree28_adr%,exit_button&)=0
IF exit_button&<>gtprewin&
~OBJC_DRAW(tree28_adr%,exit_button&,8,xt28&,yt28&,bt28&,ht28&)
ENDIF
ENDIF
SELECT exit_button&
CASE gtdpimin&
IF gtdpiv&>100
IF gtdpiv&=480
gtdpiv&=400
ELSE
IF gtdpiv&=600
gtdpiv&=480
ELSE
SUB gtdpiv&,100
ENDIF
ENDIF
dpi_change(prex0&,prey0&,prex0_min&,prey0_min&)
ENDIF
CASE gtdpiplu&
IF gtdpiv&<600
IF gtdpiv&=400
gtdpiv&=480
ELSE
IF gtdpiv&=480
gtdpiv&=600
ELSE
ADD gtdpiv&,100
ENDIF
ENDIF
dpi_change(prex0&,prey0&,prex0_min&,prey0_min&)
ENDIF
CASE gtprewin&
MOUSE x_mouse%,y_mouse%,taste|
IF x_mouse%>prex0&+gtbv&-8 AND x_mouse%<prex0&+gtbv& AND y_mouse%>prey0&+gthv&-8 AND y_mouse%<prey0&+gthv&
DEFMOUSE 3
REPEAT
MOUSE x_mouse%,y_mouse%,taste|
IF x_mouse%<>x_mouse_old% OR y_mouse%<>y_mouse_old%
BOX prex0&,prey0&,prex0&+gtbv&,prey0&+gthv&
PBOX prex0&+gtbv&-8,prey0&+gthv&-8,prex0&+gtbv&,prey0&+gthv&
IF x_mouse%-prex0_min&<217 AND x_mouse%-prex0&>16
gtbv&=x_mouse%-prex0&
i%=AND(INT(gtbv&/25.4*gtdpiv&),&HFFF0)
gtbv&=CINT(i%*25.4/gtdpiv&)
ENDIF
IF y_mouse%-prey0_min&<298 AND y_mouse%-prey0&>16
gthv&=y_mouse%-prey0&
ENDIF
BOX prex0&,prey0&,prex0&+gtbv&,prey0&+gthv&
PBOX prex0&+gtbv&-8,prey0&+gthv&-8,prex0&+gtbv&,prey0&+gthv&
SHOWM
x_mouse_old%=x_mouse%
y_mouse_old%=y_mouse%
CHAR{{OB_SPEC(tree28_adr%,gtb&)}}=STR$(AND(INT(gtbv&/25.4*gtdpiv&),&HFFF0))
CHAR{{OB_SPEC(tree28_adr%,gth&)}}=STR$(INT(gthv&/25.4*gtdpiv&))
~OBJC_DRAW(tree28_adr%,gtb&,8,xt28&,yt28&,bt28&,ht28&)
~OBJC_DRAW(tree28_adr%,gth&,8,xt28&,yt28&,bt28&,ht28&)
ENDIF
UNTIL taste|=0
DEFMOUSE 0
ELSE
IF x_mouse%>prex0& AND x_mouse%<prex0&+gtbv& AND y_mouse%>prey0& AND y_mouse%<prey0&+gthv&
x_mouse_old%=x_mouse%
y_mouse_old%=y_mouse%
DEFMOUSE 3
REPEAT
MOUSE x_mouse%,y_mouse%,taste|
IF x_mouse%<>x_mouse_old% OR y_mouse%<>y_mouse_old%
x_changed&=x_mouse%-x_mouse_old%
y_changed&=y_mouse%-y_mouse_old%
BOX prex0&,prey0&,prex0&+gtbv&,prey0&+gthv&
PBOX prex0&+gtbv&-8,prey0&+gthv&-8,prex0&+gtbv&,prey0&+gthv&
IF prex0&+x_changed&>=prex0_min& AND prex0&+x_changed&+gtbv&<prex0_max&
ADD prex0&,x_changed&
ENDIF
IF prey0&+y_changed&>=prey0_min& AND prey0&+y_changed&+gthv&<prey0_max&
ADD prey0&,y_changed&
ENDIF
BOX prex0&,prey0&,prex0&+gtbv&,prey0&+gthv&
PBOX prex0&+gtbv&-8,prey0&+gthv&-8,prex0&+gtbv&,prey0&+gthv&
SHOWM
x_mouse_old%=x_mouse%
y_mouse_old%=y_mouse%
CHAR{{OB_SPEC(tree28_adr%,gtx&)}}=STR$(AND(INT((prex0&-prex0_min&)/25.4*gtdpiv&),&HFFF8))
CHAR{{OB_SPEC(tree28_adr%,gty&)}}=STR$(AND(INT((prey0&-prey0_min&)/25.4*gtdpiv&),&HFFF8))
~OBJC_DRAW(tree28_adr%,gtx&,8,xt28&,yt28&,bt28&,ht28&)
~OBJC_DRAW(tree28_adr%,gty&,8,xt28&,yt28&,bt28&,ht28&)
ENDIF
UNTIL taste|=0
DEFMOUSE 0
ENDIF
ENDIF
CASE gtpresca&
gt_info(scannen$+pre_view$)
HIDEM
gt6000%=VARPTR(gt6000$)
$C+
VOID C:gt6000%(1,50,3,3,gthalbton&,0,0,26,292,L:V:prebuf$,L:V:prebuf$+8000)
$C-
OUT (2),13
trigger_0
DEFMOUSE 3
SHOWM
BOX prex0&,prey0&,prex0&+gtbv&,prey0&+gthv&
PBOX prex0&+gtbv&-8,prey0&+gthv&-8,prex0&+gtbv&,prey0&+gthv&
smfdb%(0)=V:prebuf$
BITBLT smfdb%(),dmfdb%(),p%()
BOX prex0&,prey0&,prex0&+gtbv&,prey0&+gthv&
PBOX prex0&+gtbv&-8,prey0&+gthv&-8,prex0&+gtbv&,prey0&+gthv&
gt_info(waehle$)
ENDSELECT
EXIT IF exit_button&=gtcancel&
EXIT IF exit_button&=gtscan&
LOOP
IF exit_button&=gtcancel&
PUT xt28&-4,yt28&-4,rette$
ok!=TRUE
ENDIF
IF exit_button&=gtscan&
IF OB_STATE(tree28_adr%,gthart&)=1
gthalbton&=0
ELSE
IF OB_STATE(tree28_adr%,gtweich&)=1
gthalbton&=16
ELSE
IF OB_STATE(tree28_adr%,gtraster&)=1
gthalbton&=32
ELSE
gthalbton&=1
ENDIF
ENDIF
ENDIF
IF OB_STATE(tree28_adr%,gtrot&)=1
gtfarbev&=0
ELSE
IF OB_STATE(tree28_adr%,gtgruen&)=1
gtfarbev&=1
ELSE
IF OB_STATE(tree28_adr%,gtblau&)=1
gtfarbev&=2
ELSE
gtfarbev&=3
ENDIF
ENDIF
ENDIF
IF OB_STATE(tree28_adr%,k0&)=1
gtkontrav&=0
ELSE
IF OB_STATE(tree28_adr%,k1&)=1
gtkontrav&=1
ELSE
IF OB_STATE(tree28_adr%,k2&)=1
gtkontrav&=2
ELSE
IF OB_STATE(tree28_adr%,k3&)=1
gtkontrav&=3
ELSE
IF OB_STATE(tree28_adr%,k4&)=1
gtkontrav&=4
ELSE
IF OB_STATE(tree28_adr%,k5&)=1
gtkontrav&=5
ELSE
gtkontrav&=6
ENDIF
ENDIF
ENDIF
ENDIF
ENDIF
ENDIF
gt_info(scannen$+bereich$)
gtxorig&=CINT(AND(INT((prex0&+2-prex0_min&)/25.4*gtdpiv&),&HFFF8)/8)
gtyorig&=CINT((prey0&+2-prey0_min&)/25.4*gtdpiv&)
gtxbytes&=CINT(AND(INT(gtbv&/25.4*gtdpiv&),&HFFF0)/8)
gtyzeilen&=CINT(gthv&/25.4*gtdpiv&)
IF gtxbytes&*(gtyzeilen&+1)<work_space%
HIDEM
gt6000%=VARPTR(gt6000$)
$C+
i%=C:gt6000%(0,gtdpiv&,gtfarbev&,gtkontrav&,gthalbton&,gtxorig&,gtyorig&,gtxbytes&,gtyzeilen&,L:daten_ptr%,L:daten_ptr%+work_space%)
$C-
OUT (2),13
trigger_0
DEFMOUSE 3
SHOWM
ELSE
i%=-1
ENDIF
IF i%>=0
gt_info(waehle$)
PUT xt28&-4,yt28&-4,rette$
layer!=TRUE
layer_geladen!=TRUE
voll_bild!=TRUE
outlined!=FALSE
do_change_aufloesung(AND(INT(gtbv&/25.4*gtdpiv&),&HFFF0),INT(gthv&/25.4*gtdpiv&),1)
init_bit_blit
p_zoom(zoom*100,zoom*100)
do_redraw
ok!=TRUE
ELSE
FOR i%=1 TO 5
gt_info(fehler$)
PAUSE 15
gt_info(" ")
PAUSE 15
NEXT i%
gt_info(waehle$)
ok!=FALSE
ENDIF
ENDIF
UNTIL ok!
gtxv&=prex0&
gtyv&=prey0&
~WIND_GET(1,4)
clip(x_window&,y_window&,b_window&,h_window&,INT{GINTOUT+2},INT{GINTOUT+4})
set_clip_offset
GRAPHMODE 1
DEFFILL 0,0
DEFMOUSE 3
init_bit_blit
RETURN
'
PROCEDURE set_clip_offset
INT{WINDTAB+64}=INT{WINDTAB+64}-x_offset&
INT{WINDTAB+66}=INT{WINDTAB+66}-y_offset&
RETURN
'
PROCEDURE helpo(help$)
TITLEW #1,ein_space$+help$+ein_space$
set_clip_offset
RETURN
'
PROCEDURE help(help$)
TITLEW #1,ein_space$+waehle$+help$+ein_space$
set_clip_offset
RETURN
'
PROCEDURE help_titel
TITLEW #1,ein_space$+pfad_vek$+"\"+programm$+".VEK "
set_clip_offset
DEFMOUSE 3
DEFLINE 1
COLOR 1
GRAPHMODE 1
p_xy_info("X:","Y:",0)
SHOWM
trigger_0
zeit%=TIMER
RETURN
'
PROCEDURE polygon_fill
REPEAT
DEFMOUSE 0
GET xt20&-4,yt20&-4,xt20&+bt20&+4,yt20&+ht20&+4,rette$
SETMOUSE xt20&+bt20&/2,yt20&+160,0
~OBJC_DRAW(tree20_adr%,0,8,xt20&,yt20&,bt20&,ht20&)
~FORM_DO(tree20_adr%,0)
exit_button&=DPEEK(GINTOUT)
OB_STATE(tree20_adr%,exit_button&)=0
PUT xt20&-4,yt20&-4,rette$
IF OB_STATE(tree20_adr%,fill1&)=1
DEFFILL 1,2,1
ELSE IF OB_STATE(tree20_adr%,fill2&)=1
DEFFILL 1,2,2
ELSE IF OB_STATE(tree20_adr%,fill3&)=1
DEFFILL 1,2,3
ELSE IF OB_STATE(tree20_adr%,fill4&)=1
DEFFILL 1,2,4
ELSE IF OB_STATE(tree20_adr%,fill5&)=1
DEFFILL 1,2,5
ELSE IF OB_STATE(tree20_adr%,fill6&)=1
DEFFILL 1,2,6
ELSE IF OB_STATE(tree20_adr%,fill7&)=1
DEFFILL 1,2,8
ENDIF
DEFMOUSE mdaten$
help(help_polygon$)
IF exit_button&<>fillcancel&
REPEAT
trigger_0
wait_taste
IF taste|<>2
FILL x_mouse%,y_mouse%
ENDIF
UNTIL taste|=2
ENDIF
UNTIL exit_button&=fillcancel&
~FRE(0)
DEFFILL 1,1
help_titel
RETURN
'
' *****************************************************************************
' * TANGENTE NIVELLIEREN *
' * *
' * VERÄNDERT VAR: Punkte_X%(), Punkte_Y%() *
' * *
' *****************************************************************************
'
PROCEDURE do_niv_tangente(found_quelle%,von%,bis%,dreh_x%,dreh_y%)
LOCAL phi,strecke
dx=SUB(dreh_x%,punkte_x%(found%))
dy=SUB(dreh_y%,punkte_y%(found%))
strecke=SQR(dx*dx+dy*dy)
get_phi(dreh_x%,dreh_y%,punkte_x%(found_quelle%),punkte_y%(found_quelle%),phi)
redraw_von_bis(von%,bis%,0)
punkte_x%(found%)=CINT(dreh_x%-strecke*COS(phi))
punkte_y%(found%)=CINT(dreh_y%-strecke*SIN(phi))
redraw_von_bis(von%,bis%,1)
RETURN
'
PROCEDURE tangente_nivellieren
LOCAL found_quelle%,quelle_def|
LOCAL von%,bis%,f%,dreh_x%,dreh_y%
IF pointer%>1
show_cursor_fang
REPEAT
trigger_0
GRAPHMODE 1
REPEAT
wait_taste
EXIT IF taste|=2
find(x_mouse%*100/zoom,y_mouse%*100/zoom)
quelle_def|=punkte_def|(found%)
UNTIL (quelle_def|>da| AND quelle_def|<b3|)
IF taste|<>2
found_quelle%=found%
IF quelle_def|=b1|
IF punkte_def|(found_quelle%-1)=b3|
found%=found_quelle%-2
von%=found_quelle%-4
bis%=von%+3
dreh_x%=punkte_x%(found_quelle%-1)
dreh_y%=punkte_y%(found_quelle%-1)
do_niv_tangente(found_quelle%,von%,bis%,dreh_x%,dreh_y%)
ELSE
IF punkte_def|(found_quelle%-1)=da|
found%=found_quelle%
found_quelle%=found%-2
von%=found%-1
bis%=von%+3
dreh_x%=punkte_x%(found%-1)
dreh_y%=punkte_y%(found%-1)
do_niv_tangente(found_quelle%,von%,bis%,dreh_x%,dreh_y%)
ELSE
IF punkte_def|(found_quelle%-1)=ma|
found%=found_quelle%
REPEAT
INC found%
UNTIL punkte_def|(found%)=ma|
DEC found%
IF punkte_def|(found%)=b3|
DEC found%
von%=found%-2
bis%=von%+3
dreh_x%=punkte_x%(found_quelle%-1)
dreh_y%=punkte_y%(found_quelle%-1)
do_niv_tangente(found_quelle%,von%,bis%,dreh_x%,dreh_y%)
ELSE
IF punkte_def|(found%)=da|
f%=found_quelle%
found_quelle%=found%-1
found%=f%
von%=found%-1
bis%=von%+3
dreh_x%=punkte_x%(found_quelle%+1)
dreh_y%=punkte_y%(found_quelle%+1)
do_niv_tangente(found_quelle%,von%,bis%,dreh_x%,dreh_y%)
ENDIF
ENDIF
ENDIF
ENDIF
ENDIF
ELSE
IF quelle_def|=b2|
IF punkte_def|(found_quelle%+2)=b1|
found%=found_quelle%+2
von%=found_quelle%+1
bis%=von%+3
dreh_x%=punkte_x%(found_quelle%+1)
dreh_y%=punkte_y%(found_quelle%+1)
do_niv_tangente(found_quelle%,von%,bis%,dreh_x%,dreh_y%)
ELSE
IF punkte_def|(found_quelle%+2)=da|
found%=found_quelle%
found_quelle%=found%+2
von%=found%-2
bis%=von%+3
dreh_x%=punkte_x%(found%+1)
dreh_y%=punkte_y%(found%+1)
do_niv_tangente(found_quelle%,von%,bis%,dreh_x%,dreh_y%)
ELSE
IF punkte_def|(found_quelle%+2)=ma|
found%=found_quelle%
REPEAT
DEC found%
UNTIL punkte_def|(found%)=ma|
INC found%
IF punkte_def|(found%)=b1|
von%=found%-1
bis%=von%+3
dreh_x%=punkte_x%(found_quelle%+1)
dreh_y%=punkte_y%(found_quelle%+1)
do_niv_tangente(found_quelle%,von%,bis%,dreh_x%,dreh_y%)
ELSE
IF punkte_def|(found%)=da|
f%=found_quelle%
found_quelle%=found%
found%=f%
von%=found%-2
bis%=von%+3
dreh_x%=punkte_x%(found_quelle%-1)
dreh_y%=punkte_y%(found_quelle%-1)
do_niv_tangente(found_quelle%,von%,bis%,dreh_x%,dreh_y%)
ENDIF
ENDIF
ENDIF
ENDIF
ENDIF
ENDIF
ENDIF
ENDIF
UNTIL taste|=2
DEFMOUSE 3
ENDIF
RETURN
'
' *****************************************************************************
' * ASCII Editor *
' * *
' * *
' * ' ******************************************************************************
' * *
' * CUTOUT *
' * *
' * 27.02.1992 *
' * *
' ******************************************************************************
'
'
$B+
$I-
INLINE scsi%,933
DIM buffer|(512*2)
DIM command|(12)
' VAR:
' apl_id&=APPL_INIT()
magic%=14031952
'
' serien_nummer$="REGIST00"
' serien_nummer_vergleich$="REGIST11"
serien_nummer$=MKD$(101)
serien_nummer_vergleich$=MKD$(101 XOR magic%)
'
fang_schnittpunkt|=4
buffer%=0
buffer_max%=0
poly_len%=0
bits%=0
punkt_eintrag&=0
x_start&=0
y_start&=0
edi_max&=0
m=0
m_neu=0
bit_count|=0
pixel!=FALSE
'
regist_nr%=0
revision$="1.59"
zeit%=TIMER
calamus_nr%=0
ortho|=45
ortho=RAD(ortho|)
ortho2=ortho/2
x_win&=0 ! Window X pos aktuell
y_win&=0 ! Window Y pos aktuell
x_window&=0 ! Window X pos aktuell
y_window&=0 ! Window Y pos aktuell
b_window&=0 ! Window Breite aktuell
h_window&=0 ! Window Höhe aktuell
~WIND_GET(0,4,scrx&,scry&,scrb&,scrh&) ! maximaler Desktop
wmx%=scrb&-62
wmy%=scrh&-57+scry&
desk_breite&=scrb&
desk_hoehe&=scrh&+scry&
gross_bildschirm!=FALSE
IF desk_breite&>640 OR desk_hoehe&>400
gross_bildschirm!=TRUE
ENDIF
ADD scrx&,42 ! Position Window X+Menuleiste
SUB scrb&,42 ! Breite Window
scrb_old&=scrb&
scrh_old&=scrh&
res_x%=0 ! Auflösung x in mm
res_y%=0 ! Auflösung y in mm
res_x_old%=0
res_y_old%=0
x_layer%=0
y_layer%=0
x_layero%=0
y_layero%=0
x_offset&=0 ! Nullpunkt x im Fenster
y_offset&=0 ! Nullpunkt y im Fenster
x_offset_old&=0
y_offset_old&=0
x_mouse%=0
y_mouse%=0
x_mouse_old%=0
y_mouse_old%=0
x_mouse_0%=0
y_mouse_0%=0
objectbox_x0%=0
objectbox_y0%=0
objectbox_x1%=0
objectbox_y1%=0
grid%=10 ! raster mm
schraff_dist=201
schraff_inc=0
schraff_fix_abst=0
schraff_winkel=0
schraff_start%=0
schraff_y_min%=0
bit_count_max|=6
geraden_fehler|=1
lange_gerade%=4000
schmutz_filter%=20
knick_winkel_max=RAD(140)
bogen_max=PI/2/2
abweichung_gerade%=0.5*100
last_poly_s%=-1
last_poly_e%=-1
taste|=0
zoom=1
zoom_old=1
zoom_100=1
pointer%=0 ! Zeiger auf Punkteliste
found%=0 ! gefundener Punkt bei SNAP
found_t%=0 ! gefundener Kurvenparameter
schnittpunkt_genau%=16 ! Zerlegung Bezier in Teile
anz_schnittpunkte%=0 ! Anzahl Schnittpunkte
b_vari=100
i%=0 ! allgemeiner Schleifenzähler
ii%=0
iii%=0
d0%=0
dx%=0
dy%=0
dx=0
dy=0
schnitt_laenge=0
kostfak=1
gkosten=0
px0%=0
py0%=0
px1%=0
py1%=0
px2%=0
py2%=0
px3%=0
py3%=0
m_square_breite&=&H3000
m_square_hoehe&=&H3000
kerning_256|=m_square_breite& DIV 256
len_pair_daten&=0
z_hoehe_def%=16384 ! Höhe des definierten Zsatzes
z_breite_def%=16384 ! Breite "
zeichen_hoehe%=3000 ! gewünschte Höhe in 1/100 mm
versal_def%=0 ! Versal Höhe in 1/100 mm
z_ascii_scale=zeichen_hoehe%/z_hoehe_def% ! Scaling
z_ascii_scale_old=z_ascii_scale ! save Scaling
global_kerning%=1280 ! globales Kerning
zeilen_abstand_prozent%=125 ! relativer Zeilen Abstand
zeilen_abstand%=zeichen_hoehe%*zeilen_abstand_prozent%/100-zeichen_hoehe%
z_cursor_x_spalte%=0 ! Start String
z_cursor_x%=0 ! ASCII Zeichen Cursor X
z_cursor_y%=0 ! ASCII Zeichen Cursor y
z_cursor_x_old%=0 ! letztes Zeichen Cursor X
z_cursor_y_old%=0 ! letztes Zeichen Cursor y
z_ascii_old%=0 ! letztes Zeichen ASCII+32
z_satz_pointer%=0 ! Pointer auf Zeichensatz
state_rs232&=0 ! Centronics aktiv
state_hp&=0 ! HPGL aktiv
folie_x%=1188 ! Folien Grö₧e
folie_y%=840
plotter_x_min%=0
plotter_y_min%=0
gdu=0 ! 100*Plottereinheit
sel_start%=0
sel_end%=0
gtxv&=0
gtyv&=0
gtbv&=216
gthv&=297
gtdpiv&=300
gtfarbev&=3
gtkontrav&=3
exit_button&=0
cursor_x&=0
cursor_y&=0
ofn_ver|=0
overcut|=0
geschlossen%=0
'
phi_x_3d=0
phi_y_3d=0
a2_3d=0
'
daten_ptr%=0
work_space%=0
'
' CONST:
'
IF FRE(0)>4000000
p_max%=99999
ELSE
p_max%=60000
ENDIF
ma|=0
da|=1
b1|=2
b2|=3
b3|=4
ein_drittel=1/3
fmin=2.225073858507E-307
fmin1=0.005
max1=0.995
pimal2=PI*2
pihalbe=PI/2
pidrittel=PI/3
fang_rad%=8*100 ! FANGRADIUS
p_at%=XBIOS(3)+76 ! PRINT AT FÜR X,Y
p_at_zoom%=p_at%-12 ! PRINT AT FÜR ZOOM
x_bytes%=(scrb&+42)/8 ! BYTES IN X RICHTUNG DESKTOP
'
' CONST: Menuleiste
'
tree00&=0
tree0_adr%=0
datei&=3
eintrag&=4
mfenster&=10
mtext&=5
mzedi&=6
spezial&=7
all_clear&=8
bbogen&=9
mschnitt&=11
'
tree01&=1
tree1_adr%=0
back_main&=3
fwd_main&=4
gerade&=5
kurve&=6
schliess&=7
verrunde&=8
loeschen&=9
lock&=10
snap&=11
bild&=12
zircel&=13
bezier4&=14
schere&=15
' fenster&=15
'
tree02&=2
tree2_adr%=0
back_datei&=3
fwd_datei&=4
l_vek&=5
l_merge&=6
r_macro&=7
r_cvg&=8
l_img&=9
l_pic&=10
ordner&=11
s_vek&=12
s_plt&=13
a_plotter&=14
'
tree03&=3
tree3_adr%=0
back_fenster&=3
fwd_fenster&=4
fmove&=5
blitz&=6
fcopy&=7
fzoom&=8
fzoomp&=9
fdreh&=10
fspiegel&=11
fkursiv&=12
dreh3d&=13
drehxp&=14
drehxm&=15
drehym&=16
drehyp&=17
floesch&=18
fzoom1&=19
'
tree04&=4
tree4_adr%=0
back_spezial&=3
gtepson&=4
handy&=5
kontour&=6
filter&=7
trace&=8
smooth&=9
simag&=10
'
tree05&=5
tree5_adr%=0
back_text&=3
fwd_text&=4
z_edit&=5
z_editor&=6
z_string&=7
z_t_hoehe&=8
z_t_abstand&=9
z_g_kerning&=10
z_read_ascii&=11
l_font&=12
s_font&=14
c_font&=13
'
tree06&=6
tree6_adr%=0
t_hoehe&=1
'
tree07&=7
tree7_adr%=0
zabs&=1
'
tree08&=8 ! String Text
tree8_adr%=0
string_text&=1
breite&=3
string_breite&=4
versal&=5
string_versal&=6
pfad&=7
do_kerning&=8
string_kreis&=9
string_kreis_von&=10
string_kreis_bis&=11
fontname&=13
c_text&=14
icon_pair&=15
icon_trep&=16
'
tree09&=9 ! Zeichen Editor
tree9_adr%=0
back_editor&=3
m_matrix&=4
z_matrix&=5
move_matrix&=6
kerning_links&=7
kerning_rechts&=8
kerning_auto&=9
z_get&=10
z_muell&=11
z_up&=13
z_down&=14
z_char&=15
'
tree10&=10
tree10_adr%=0
b_kerning&=2
g_kerning&=3
'
tree11&=11 ! Optimier
tree11_adr%=0
del_ma&=4
del_ge&=6
del_el&=8
'
tree12&=12
tree12_adr%=0
bstep&=1
'
tree13&=13 ! Info
tree13_adr%=0
vernr&=7
version&=4
firma&=4
strasse&=7
stadt&=10
punkte&=15
rest&=17
'
tree14&=14 ! Auflösung
tree14_adr%=0
rx1&=8
ry1&=10
rx2&=12
ry2&=13
rx3&=16
ry3&=17
get_pf&=19
r1&=4
r2&=5
r3&=6
'
tree15&=15 ! Plotter INIT
tree15_adr%=0
p_init1&=3
p_init2&=4
gdu01&=9
gdu025&=10
gdu05&=11
gdu1&=12
overcut&=16
cent&=18
rs232&=20
hp&=23
gp&=24
mgl&=25
ma&=29
da&=30
'
tree16&=16 ! Pfade und Parameter
tree16_adr%=0
pv&=5
pp&=7
pfi&=9
pg&=11
pf&=13
df&=15
p1&=17
p2&=19
schnitt&=21
gdu&=23
foliex&=25
foliey&=27
warn&=29
cancel&=31
'
tree17&=17
tree17_adr%=0
outl&=1
outl_anz&=2
'
tree18&=18
tree18_adr%=0
schraffd&=1
schraffi&=2
schrafix&=3
schraffw&=4
schraffa&=7
schrafff&=8
'
tree19&=19
tree19_adr%=0
necka&=1
neckp&=2
'
tree20&=20 ! Füll
tree20_adr%=0
fill1&=3
fill2&=5
fill3&=7
fill4&=9
fill5&=11
fill6&=13
fill7&=15
fillcancel&=17
'
tree21&=21 ! Trace
tree21_adr%=0
t_step&=7
t_gerade&=8
t_schmutz&=9
bschwelle&=21
knickwinkel&=22
bogen_max&=23
abweichung_gerade&=24
nur_gerade&=13
trace_cancel&=14
gerade_bezier&=30
'
tree22&=22
tree22_adr%=0
scann_x&=1
scann_y&=2
'
tree23&=23
tree23_adr%=0
radius&=1
'
tree24&=24
tree24_adr%=0
grau&=6
stark&=7
selgrau0&=4
selgrau&=5
sellinie&=8
alle&=9
auswahl&=10
'
tree25&=25 ! Bogen
tree25_adr%=0
backboge&=3
vkreis&=4
kreis3&=5
kreisbog&=6
bogen3&=7
bogen2&=8
ellipse&=9
elbogen&=10
eckrund&=11
'
tree26&=26 ! Koordinaten
tree26_adr%=0
absolut&=2
relativ&=3
polar&=4
'
tree27&=27 ! Calamus Versions Nr.
tree27_adr%=0
calamus_nr&=1
'
tree28&=28 ! GT 6000
tree28_adr%=0
gtscan&=47
gtx&=38
gty&=44
gtb&=42
gth&=43
gtcancel&=46
gtpresca&=45
gtdpi&=35
gtdpimin&=33
gtdpiplu&=34
gtprewin&=1
gtstate&=5
gtkeiner&=9
gtraster&=10
gtweich&=11
gthart&=12
gtkeine&=15
gtrot&=18
gtgruen&=17
gtblau&=16
k0&=22
k1&=23
k2&=24
k3&=25
k4&=26
k5&=27
k6&=28
'
tree29&=29 ! Kosten
tree29_adr%=0
kostfak&=1
sl&=2
gkosten&=4
'
tree30&=30 ! Select Filter
tree30_adr%=0
abs_filter&=1
'
tree31&=31 ! Select Fenster
tree31_adr%=0
ohnecopy&=1
mitcopy&=6
anz_rot&=3
phi_rot&=4
numohne&=5
ausricht_vector&=7
'
tree32&=32 ! Select Spiegel
tree32_adr%=0
anbox&=2
anachse&=1
'
tree33&=33
tree33_adr%=0
teil&=1
'
tree34&=34 ! Schnittpunkt
tree34_adr%=0
backschn&=3
fwdschn&=4
trimm&=5
knack&=6
lot&=7
teilen&=8
lang&=9
schnitt2&=10
schnittn&=11
delseg&=12
delel&=13
schmelz&=14
'
tree35&=35 ! Select Copy
tree35_adr%=0
copysing&=1
copymul&=2
cx&=4
cy&=5
canz&=6
cdist&=7
'
tree36&=36 ! Ausrichten
tree36_adr%=0
a_olinks&=1
a_oben&=2
a_orechts&=3
a_links&=4
a_mitte&=5
a_rechts&=6
a_ulinks&=7
a_unten&=8
a_urechts&=9
'
tree37&=37 ! Scalieren
tree37_adr%=0
scale_interactiv&=1
scale_numerisch&=2
scale_breite&=4
scale_hoehe&=5
'
tree38&=38 ! Ordner
tree38_adr%=0
ordnert&=1
ordnerok&=2
ordnerca&=3
'
tree39&=39 ! Kerning
tree39_adr%=0
kerning_box&=1
kerning_minus&=3
kerning_plus&=4
kerning_last&=2
kerning_next&=5
kerning_exit&=6
kerning_minus2&=9
kerning_plus2&=10
kerning_last2&=8
kerning_next2&=11
kerning_clear&=7
kerning_info&=13
kerning_pair&=15
'
tree40&=40 ! Plotter OUTPUT
tree40_adr%=0
pl100&=3
plschieber&=4
plschere&=7
plschereauf&=5
plscherezu&=6
plschere&=7
'
tree41&=41 ! Select Neigen
tree41_adr%=0
neige_grad&=2
neige_vertical&=3
neige_horizontal&=4
neige_interaktiv&=5
'
' FLAG:
'
undo!=FALSE
geschlossen!=FALSE
ok!=FALSE ! allgemein
layer_geladen!=FALSE ! ist Layer geladen
layer!=FALSE ! soll Layer gezeigt werden
window_fulled!=TRUE ! ist Fenster schon gro₧
voll_bild!=FALSE ! ist Fenster komplett auf Crt
eintragen!=FALSE ! ist eintragen aktiv
bogen!=FALSE
mtext!=FALSE
meditor!=FALSE
datei!=FALSE
fenster!=FALSE
schnittpunktm!=FALSE
loeschen!=FALSE ! ist loeschen aktiv
neues_polygon!=TRUE ! erster Punkt im Polygon
found!=FALSE ! gefunden bei Fangradius
marker!=FALSE ! sollen Marker gezeigt werden
marker_select!=FALSE ! soll Marker selectiert
modified!=FALSE ! wurde Vektorbild geändert
font_geladen!=FALSE ! ist ein Font geladen
outlined!=FALSE ! wurde Bitmap schon outlined
auto_schraff!=TRUE
schraff_fix_abst!=FALSE
einpassen!=FALSE
tangente!=FALSE
tangenten_lock!=TRUE
warn!=FALSE
gp_gl!=FALSE ! HPGL oder GPGL
tasten_rep!=FALSE
absolut!=TRUE
relativ!=FALSE
polar!=FALSE
absolut_old!=FALSE
polar_old!=FALSE
fangklein!=FALSE ! Fangradius gro₧
fadenkreuz!=FALSE
polygonmode!=TRUE ! Polygonmodus
ortho!=FALSE
grid!=FALSE
scrolled!=FALSE
move!=FALSE
drei_d!=FALSE
status_wechsel!=FALSE
grid_wechsel!=FALSE
swap!=FALSE
'
' ARRAY:
'
DIM smfdb%(8),dmfdb%(8),p%(8)
DIM z_smfdb%(8),z_dmfdb%(8),z_p%(8),q_dmfdb%(8)
DIM punkte_x%(p_max%),punkte_y%(p_max%),punkte_def|(p_max%),buffer%(p_max%/2)
DIM x_meta%(127),y_meta%(127),punkte_def1|(32)
ARRAYFILL punkte_def1|(),1
DIM bezier_x&(33),bezier_y&(33)
DIM m$(87)
DIM mk%(60,2)
DIM m_square%(5)
DIM z_editor%(32)
DIM z_ascii%(224),z_kerning&(224*16),z_daten&(224*280),z_pair&(224),z_pair|(224),z_pair_daten|(2000)
DIM sx1%(9),sy1%(9),sx2%(9),sy2%(9),sp1(9),sp2(9)
DIM zeilen_buffer$(60)
rette$=SPACE$(32000)
pfad$=SPACE$(80)
kerning_string$=SPACE$(60)
pfad_pic$=SPACE$(80)
pfad_img$=SPACE$(80)
pfad_vek$=SPACE$(80)
pfad_vek_root$=SPACE$(80)
pfad_cvg$=SPACE$(80)
pfad_fnt$=SPACE$(80)
pfad_cfn$=SPACE$(80)
default_font$=SPACE$(10)
programm$=SPACE$(10)
programm_font$=SPACE$(10)
test_datei$=SPACE$(10)
object$=SPACE$(80)
p_init1$=SPACE$(40)
p_init2$=SPACE$(40)
abc$="CutOut Test"
ma$="M"
da$="D"
cutout_font$="CUTOUTOFN"
calamus_font_grafik$=MKI$(159)+MKI$(15)+MKI$(1)+SPACE$(320)
ok$="OK"
ein_space$=" "
x_y$="X|Y"
erster$="1. "
zweiter$="2. "
help_on$="ON "
help_off$="OFF"
vek$="VEK"
cvg$="CVG"
img$="IMG"
plt$="PLT"
calamus$="CALAMUS"
cutout$="CutOut"
' ****************************************************************************
OPEN "I",#1,"SYS\LANGUAGE.DRV"
LINE INPUT #1,pd_menu$
LINE INPUT #1,pd_datei$
LINE INPUT #1,pd_editieren$
LINE INPUT #1,pd_fenster$
LINE INPUT #1,pd_schnittpunkt$
LINE INPUT #1,pd_bogen$
LINE INPUT #1,pd_text$
LINE INPUT #1,pd_zeicheneditor$
LINE INPUT #1,pd_extra$
LINE INPUT #1,pd_quit$
'
LINE INPUT #1,pd_optionen$
LINE INPUT #1,pd_marker_anzeigen$
LINE INPUT #1,pd_tangenten_anzeigen$
LINE INPUT #1,pd_fangradius_klein$
LINE INPUT #1,pd_polygon_modus$
LINE INPUT #1,pd_schnittpunkt_genau$
LINE INPUT #1,pd_koordinaten$
LINE INPUT #1,pd_element_selektieren$
LINE INPUT #1,pd_polygon_selektieren$
LINE INPUT #1,pd_warnmeldungen$
LINE INPUT #1,pd_skaliere_alles$
LINE INPUT #1,pd_punkte_nivellieren$
LINE INPUT #1,pd_tangente$
LINE INPUT #1,pd_plotflaeche$
LINE INPUT #1,pd_bezier_step_aendern$
LINE INPUT #1,pd_plotter_einstellung$
LINE INPUT #1,pd_kosten_faktor$
LINE INPUT #1,pd_pfad_sichern$
'
LINE INPUT #1,pd_figur$
LINE INPUT #1,pd_rechteck$
LINE INPUT #1,pd_n_eck$
LINE INPUT #1,pd_polygon_outline$
LINE INPUT #1,pd_aequidistante$
LINE INPUT #1,pd_frame$
LINE INPUT #1,pd_polygone_ausrichten$
LINE INPUT #1,pd_polygone_zentrieren$
LINE INPUT #1,pd_polygone_vereinen$
LINE INPUT #1,pd_polygone_fuellen$
LINE INPUT #1,pd_einzelne_punkte_loeschen$
'
LINE INPUT #1,pd_linie$
LINE INPUT #1,pd_bezier_vektor$
LINE INPUT #1,pd_bezier_einfuegen$
LINE INPUT #1,pd_tausche_bezier_vektor$
LINE INPUT #1,pd_knacken$
LINE INPUT #1,pd_trimmen$
LINE INPUT #1,pd_lot$
LINE INPUT #1,pd_verlaengern$
LINE INPUT #1,pd_teilen$
LINE INPUT #1,pd_messen$
LINE INPUT #1,pd_schnittp_2er$
LINE INPUT #1,pd_schnittp_n$
'
LINE INPUT #1,pd_effekt$
LINE INPUT #1,pd_parameter_schraffur$
LINE INPUT #1,pd_polygon_schraffieren$
LINE INPUT #1,pd_alles_schraffieren$
LINE INPUT #1,pd_schatten$
LINE INPUT #1,pd_einpassen$
LINE INPUT #1,pd_kugel$
'
LINE INPUT #1,lade$
LINE INPUT #1,sichere$
LINE INPUT #1,fuege_ein$
LINE INPUT #1,vektor$
LINE INPUT #1,macro$
LINE INPUT #1,daten$
LINE INPUT #1,zeichensatz$
LINE INPUT #1,kein$
LINE INPUT #1,keine$
LINE INPUT #1,ja_nein$
LINE INPUT #1,waehle$
LINE INPUT #1,fehler$
LINE INPUT #1,scannen$
LINE INPUT #1,pre_view$
LINE INPUT #1,ascii_importieren$
LINE INPUT #1,ascii_exportieren$
LINE INPUT #1,schriftblock$
LINE INPUT #1,radius_zu$
LINE INPUT #1,winkel_zu$
LINE INPUT #1,leider$
LINE INPUT #1,winkel_einstellen$
LINE INPUT #1,spiegelachse$
LINE INPUT #1,lupe_mal$
LINE INPUT #1,fensterbereich$
LINE INPUT #1,drehzentrum$
LINE INPUT #1,ordner_exist$
LINE INPUT #1,kein_leer$
LINE INPUT #1,suche_schnittpunkte$
LINE INPUT #1,gleiches_polygon$
LINE INPUT #1,bezugs$
LINE INPUT #1,zentriere$
LINE INPUT #1,huellkurve$
LINE INPUT #1,huellkurve1$
LINE INPUT #1,berechne$
LINE INPUT #1,rechte_taste$
LINE INPUT #1,endpunkt$
LINE INPUT #1,lot_an$
LINE INPUT #1,noname$
LINE INPUT #1,symbol$
LINE INPUT #1,orginal_fenster$
LINE INPUT #1,dmc_font$
LINE INPUT #1,bild_datei_zu$
LINE INPUT #1,stad_laden$
LINE INPUT #1,plotter_ist_off$
LINE INPUT #1,plot_datei$
LINE INPUT #1,kein_treiber$
LINE INPUT #1,schnittstelle_auf$
LINE INPUT #1,polygone_vereinen$
LINE INPUT #1,loesche_einzelne$
LINE INPUT #1,quelle$
LINE INPUT #1,ziel$
LINE INPUT #1,nivelliere$
LINE INPUT #1,alle_daten_l$
LINE INPUT #1,ganzer_zeichensatz$
LINE INPUT #1,font_daten_loeschen$
LINE INPUT #1,zeichen_matrix$
LINE INPUT #1,datei_existiert$
LINE INPUT #1,datei_ueberschreiben$
LINE INPUT #1,glaetten_mit$
LINE INPUT #1,gerade_bezier$
LINE INPUT #1,glaetten$
LINE INPUT #1,bereich$
LINE INPUT #1,path$
LINE INPUT #1,help_mittelpunkt$
LINE INPUT #1,help_radius$
LINE INPUT #1,help_position$
LINE INPUT #1,help_startwinkel$
LINE INPUT #1,help_endwinkel$
LINE INPUT #1,help_polygon$
LINE INPUT #1,help_punkt$
LINE INPUT #1,help_linie$
LINE INPUT #1,help_element$
LINE INPUT #1,help_verrund$
LINE INPUT #1,help_loesche$
LINE INPUT #1,help_trenn$
LINE INPUT #1,help_move$
LINE INPUT #1,help_sel$
LINE INPUT #1,help_move_window$
LINE INPUT #1,help_rahmen$
LINE INPUT #1,help_edit$
LINE INPUT #1,help_bezier$
LINE INPUT #1,help_status$
LINE INPUT #1,help_ortho$
LINE INPUT #1,help_grid$
LINE INPUT #1,help_free$
LINE INPUT #1,help_snap$
LINE INPUT #1,help_editor$
LINE INPUT #1,help_pfad$
CLOSE #1
' ****************************************************************************
integer%=VARPTR(punkte_x%(1))-VARPTR(punkte_x%(0)) ! Länge in Bytes Integer
'
z_editor%(0)=2048 ! Top Line Y
z_editor%(1)=3072 ! Ascent Line Y
z_editor%(2)=6144 ! Half Line Y
z_editor%(3)=11264 ! Base Line Y
z_editor%(4)=13952 ! Descent Line Y
z_editor%(5)=14336 ! Bottom Line Y
'
z_editor%(6)=0 ! Matrix links X
z_editor%(7)=16384 ! Matrix rechts X
z_editor%(8)=1280 ! Kerning links X
z_editor%(9)=1280 ! Kerning links X
z_editor%(10)=1280 ! Kerning links X
z_editor%(11)=1280 ! Kerning links X
z_editor%(12)=1280 ! Kerning links X
z_editor%(13)=1280 ! Kerning links X
z_editor%(14)=1280 ! Kerning links X
z_editor%(15)=1280 ! Kerning links X
z_editor%(16)=15104 ! Kerning rechts X
z_editor%(17)=15104 ! Kerning rechts X
z_editor%(18)=15104 ! Kerning rechts X
z_editor%(19)=15104 ! Kerning rechts X
z_editor%(20)=15104 ! Kerning rechts X
z_editor%(21)=15104 ! Kerning rechts X
z_editor%(22)=15104 ! Kerning rechts X
z_editor%(23)=15104 ! Kerning rechts X
z_editor%(24)=z_editor%(0) ! Kerning Y
z_editor%(25)=(z_editor%(5)-z_editor%(0))/8 ! Kerning Y
z_editor%(26)=z_editor%(24)+z_editor%(25) ! Kerning Y
z_editor%(27)=z_editor%(26)+z_editor%(25) ! Kerning Y
z_editor%(28)=z_editor%(27)+z_editor%(25) ! Kerning Y
z_editor%(29)=z_editor%(28)+z_editor%(25) ! Kerning Y
z_editor%(30)=z_editor%(29)+z_editor%(25) ! Kerning Y
z_editor%(31)=z_editor%(30)+z_editor%(25) ! Kerning Y
z_editor%(32)=0 ! Matrix oben Y
'
' ******************************************************************************
' * *
' * MENU INITIALISIERUNG *
' * *
' ******************************************************************************
'
BMOVE V:serien_nummer$,V:serien_nummer,8
BMOVE V:serien_nummer_vergleich$,V:serien_nummer_vergleich,8
regist_nr%=serien_nummer_vergleich
IF serien_nummer<>(serien_nummer_vergleich XOR magic%)
PRINT "SORRY HACKER"
PAUSE 300
SYSTEM
ENDIF
INLINE zasm_ptr%,4136
INLINE pack_img%,958
INLINE calc_bezier%,1050
INLINE p_num%,360
INLINE find_line%,356
INLINE kontour%,216
INLINE staddec%,184
INLINE imgdec%,228
INLINE findexcept%,52
INLINE findpointexcept%,70
mfang$=MKI$(7)+MKI$(7)+MKI$(1)+MKI$(0)+MKI$(1)
mfang$=mfang$+MKI$(&X1111111111111110)
mfang$=mfang$+MKI$(&X1111111111111110)
mfang$=mfang$+MKI$(&X1100001110000110)
mfang$=mfang$+MKI$(&X1100001110000110)
mfang$=mfang$+MKI$(&X1100001110000110)
mfang$=mfang$+MKI$(&X1100001110000110)
mfang$=mfang$+MKI$(&X1111110001111110)
mfang$=mfang$+MKI$(&X1111110001111110)
mfang$=mfang$+MKI$(&X1111110001111110)
mfang$=mfang$+MKI$(&X1100001110000110)
mfang$=mfang$+MKI$(&X1100001110000110)
mfang$=mfang$+MKI$(&X1100001110000110)
mfang$=mfang$+MKI$(&X1100001110000110)
mfang$=mfang$+MKI$(&X1111111111111110)
mfang$=mfang$+MKI$(&X1111111111111110)
mfang$=mfang$+MKI$(&X0)
'
mfang$=mfang$+MKI$(&X1111111111111110)
mfang$=mfang$+MKI$(&X1000000100000010)
mfang$=mfang$+MKI$(&X1000000100000010)
mfang$=mfang$+MKI$(&X1000000100000010)
mfang$=mfang$+MKI$(&X1000000100000010)
mfang$=mfang$+MKI$(&X1000000100000010)
mfang$=mfang$+MKI$(&X1000000000000010)
mfang$=mfang$+MKI$(&X1111110001111110)
mfang$=mfang$+MKI$(&X1000000000000010)
mfang$=mfang$+MKI$(&X1000000100000010)
mfang$=mfang$+MKI$(&X1000000100000010)
mfang$=mfang$+MKI$(&X1000000100000010)
mfang$=mfang$+MKI$(&X1000000100000010)
mfang$=mfang$+MKI$(&X1000000100000010)
mfang$=mfang$+MKI$(&X1111111111111110)
mfang$=mfang$+MKI$(&X0)
'
mfang_klein$=MKI$(7)+MKI$(7)+MKI$(1)+MKI$(0)+MKI$(1)
mfang_klein$=mfang_klein$+MKI$(&X0)
mfang_klein$=mfang_klein$+MKI$(&X0)
mfang_klein$=mfang_klein$+MKI$(&X11111111111000)
mfang_klein$=mfang_klein$+MKI$(&X11111111111000)
mfang_klein$=mfang_klein$+MKI$(&X11001110011000)
mfang_klein$=mfang_klein$+MKI$(&X11001110011000)
mfang_klein$=mfang_klein$+MKI$(&X11110001111000)
mfang_klein$=mfang_klein$+MKI$(&X11110001111000)
mfang_klein$=mfang_klein$+MKI$(&X11110001111000)
mfang_klein$=mfang_klein$+MKI$(&X11001110011000)
mfang_klein$=mfang_klein$+MKI$(&X11001110011000)
mfang_klein$=mfang_klein$+MKI$(&X11111111111000)
mfang_klein$=mfang_klein$+MKI$(&X11111111111000)
mfang_klein$=mfang_klein$+MKI$(&X0)
mfang_klein$=mfang_klein$+MKI$(&X0)
mfang_klein$=mfang_klein$+MKI$(&X0)
'
mfang_klein$=mfang_klein$+MKI$(&X0)
mfang_klein$=mfang_klein$+MKI$(&X0)
mfang_klein$=mfang_klein$+MKI$(&X0)
mfang_klein$=mfang_klein$+MKI$(&X1111111110000)
mfang_klein$=mfang_klein$+MKI$(&X1000100010000)
mfang_klein$=mfang_klein$+MKI$(&X1000100010000)
mfang_klein$=mfang_klein$+MKI$(&X1000000010000)
mfang_klein$=mfang_klein$+MKI$(&X1110001110000)
mfang_klein$=mfang_klein$+MKI$(&X1000000010000)
mfang_klein$=mfang_klein$+MKI$(&X1000100010000)
mfang_klein$=mfang_klein$+MKI$(&X1000100010000)
mfang_klein$=mfang_klein$+MKI$(&X1111111110000)
mfang_klein$=mfang_klein$+MKI$(&X0)
mfang_klein$=mfang_klein$+MKI$(&X0)
mfang_klein$=mfang_klein$+MKI$(&X0)
mfang_klein$=mfang_klein$+MKI$(&X0)
'
mdaten$=MKI$(7)+MKI$(7)+MKI$(1)+MKI$(0)+MKI$(1)
mdaten$=mdaten$+MKI$(&X1110000000)
mdaten$=mdaten$+MKI$(&X1110000000)
mdaten$=mdaten$+MKI$(&X1110000000)
mdaten$=mdaten$+MKI$(&X1110000000)
mdaten$=mdaten$+MKI$(&X1110000000)
mdaten$=mdaten$+MKI$(&X1110000000)
mdaten$=mdaten$+MKI$(&X1111110001111110)
mdaten$=mdaten$+MKI$(&X1111110001111110)
mdaten$=mdaten$+MKI$(&X1111110001111110)
mdaten$=mdaten$+MKI$(&X1110000000)
mdaten$=mdaten$+MKI$(&X1110000000)
mdaten$=mdaten$+MKI$(&X1110000000)
mdaten$=mdaten$+MKI$(&X1110000000)
mdaten$=mdaten$+MKI$(&X1110000000)
mdaten$=mdaten$+MKI$(&X1110000000)
mdaten$=mdaten$+MKI$(&X0)
'
mdaten$=mdaten$+MKI$(&X100000000)
mdaten$=mdaten$+MKI$(&X100000000)
mdaten$=mdaten$+MKI$(&X100000000)
mdaten$=mdaten$+MKI$(&X100000000)
mdaten$=mdaten$+MKI$(&X100000000)
mdaten$=mdaten$+MKI$(&X100000000)
mdaten$=mdaten$+MKI$(&X0)
mdaten$=mdaten$+MKI$(&X1111110001111110)
mdaten$=mdaten$+MKI$(&X0)
mdaten$=mdaten$+MKI$(&X100000000)
mdaten$=mdaten$+MKI$(&X100000000)
mdaten$=mdaten$+MKI$(&X100000000)
mdaten$=mdaten$+MKI$(&X100000000)
mdaten$=mdaten$+MKI$(&X100000000)
mdaten$=mdaten$+MKI$(&X100000000)
mdaten$=mdaten$+MKI$(&X0)
'
schwer$=MKI$(7)+MKI$(7)+MKI$(-1)+MKI$(0)+MKI$(1)
schwer$=schwer$+MKI$(&X0) !
schwer$=schwer$+MKI$(&X0)
schwer$=schwer$+MKI$(&X11111000000) !
schwer$=schwer$+MKI$(&X11111000000)
schwer$=schwer$+MKI$(&X1100111110000) !
schwer$=schwer$+MKI$(&X1100111110000)
schwer$=schwer$+MKI$(&X10000111111000) !
schwer$=schwer$+MKI$(&X10000111111000)
schwer$=schwer$+MKI$(&X10000111111000) !
schwer$=schwer$+MKI$(&X10000111111000)
schwer$=schwer$+MKI$(&X100000111111100) !
schwer$=schwer$+MKI$(&X100000111111100)
schwer$=schwer$+MKI$(&X100000111111100) !
schwer$=schwer$+MKI$(&X100000111111100)
schwer$=schwer$+MKI$(&X111111011111100) !!
schwer$=schwer$+MKI$(&X111111011111100)
schwer$=schwer$+MKI$(&X111111100000100) !
schwer$=schwer$+MKI$(&X111111100000100)
schwer$=schwer$+MKI$(&X111111100000100) !
schwer$=schwer$+MKI$(&X111111100000100)
schwer$=schwer$+MKI$(&X11111100001000) !
schwer$=schwer$+MKI$(&X11111100001000)
schwer$=schwer$+MKI$(&X11111100001000) !
schwer$=schwer$+MKI$(&X11111100001000)
schwer$=schwer$+MKI$(&X1111100110000) !
schwer$=schwer$+MKI$(&X1111100110000)
schwer$=schwer$+MKI$(&X11111000000) !
schwer$=schwer$+MKI$(&X11111000000)
schwer$=schwer$+MKI$(&X0) !
schwer$=schwer$+MKI$(&X0)
schwer$=schwer$+MKI$(&X0) !
schwer$=schwer$+MKI$(&X0)
pfad_read
reset
RESERVE -64*1024
DIM work%((FRE(0)-80*1024)/4)
daten_ptr%=V:work%(0)
work_space%=DIM?(work%())*4
KEYPAD 8
~RSRC_LOAD("SYS\CUTOUT.RSC")
~RSRC_GADDR(0,tree00&,tree0_adr%)
~RSRC_GADDR(0,tree01&,tree1_adr%)
~RSRC_GADDR(0,tree02&,tree2_adr%)
~RSRC_GADDR(0,tree03&,tree3_adr%)
~RSRC_GADDR(0,tree04&,tree4_adr%)
~RSRC_GADDR(0,tree05&,tree5_adr%)
~RSRC_GADDR(0,tree06&,tree6_adr%)
~RSRC_GADDR(0,tree07&,tree7_adr%)
~RSRC_GADDR(0,tree08&,tree8_adr%)
~RSRC_GADDR(0,tree09&,tree9_adr%)
~RSRC_GADDR(0,tree10&,tree10_adr%)
~RSRC_GADDR(0,tree11&,tree11_adr%)
~RSRC_GADDR(0,tree12&,tree12_adr%)
~RSRC_GADDR(0,tree13&,tree13_adr%)
~RSRC_GADDR(0,tree14&,tree14_adr%)
~RSRC_GADDR(0,tree15&,tree15_adr%)
~RSRC_GADDR(0,tree16&,tree16_adr%)
~RSRC_GADDR(0,tree17&,tree17_adr%)
~RSRC_GADDR(0,tree18&,tree18_adr%)
~RSRC_GADDR(0,tree19&,tree19_adr%)
~RSRC_GADDR(0,tree20&,tree20_adr%)
~RSRC_GADDR(0,tree21&,tree21_adr%)
~RSRC_GADDR(0,tree22&,tree22_adr%)
~RSRC_GADDR(0,tree23&,tree23_adr%)
~RSRC_GADDR(0,tree24&,tree24_adr%)
~RSRC_GADDR(0,tree25&,tree25_adr%)
~RSRC_GADDR(0,tree26&,tree26_adr%)
~RSRC_GADDR(0,tree27&,tree27_adr%)
~RSRC_GADDR(0,tree28&,tree28_adr%)
~RSRC_GADDR(0,tree29&,tree29_adr%)
~RSRC_GADDR(0,tree30&,tree30_adr%)
~RSRC_GADDR(0,tree31&,tree31_adr%)
~RSRC_GADDR(0,tree32&,tree32_adr%)
~RSRC_GADDR(0,tree33&,tree33_adr%)
~RSRC_GADDR(0,tree34&,tree34_adr%)
~RSRC_GADDR(0,tree35&,tree35_adr%)
~RSRC_GADDR(0,tree36&,tree36_adr%)
~RSRC_GADDR(0,tree37&,tree37_adr%)
~RSRC_GADDR(0,tree38&,tree38_adr%)
~RSRC_GADDR(0,tree39&,tree39_adr%)
~RSRC_GADDR(0,tree40&,tree40_adr%)
~RSRC_GADDR(0,tree41&,tree41_adr%)
~FORM_CENTER(tree6_adr%)
~FORM_CENTER(tree7_adr%)
~FORM_CENTER(tree8_adr%)
~FORM_CENTER(tree10_adr%)
~FORM_CENTER(tree11_adr%)
~FORM_CENTER(tree12_adr%)
~FORM_CENTER(tree13_adr%)
~FORM_CENTER(tree14_adr%)
~FORM_CENTER(tree15_adr%)
~FORM_CENTER(tree16_adr%)
~FORM_CENTER(tree17_adr%)
~FORM_CENTER(tree18_adr%)
~FORM_CENTER(tree19_adr%)
~FORM_CENTER(tree20_adr%)
~FORM_CENTER(tree21_adr%)
~FORM_CENTER(tree22_adr%)
~FORM_CENTER(tree23_adr%)
~FORM_CENTER(tree24_adr%)
~FORM_CENTER(tree26_adr%)
~FORM_CENTER(tree27_adr%)
~FORM_CENTER(tree28_adr%)
~FORM_CENTER(tree29_adr%)
~FORM_CENTER(tree30_adr%)
~FORM_CENTER(tree31_adr%)
~FORM_CENTER(tree32_adr%)
~FORM_CENTER(tree33_adr%)
~FORM_CENTER(tree35_adr%)
~FORM_CENTER(tree36_adr%)
~FORM_CENTER(tree37_adr%)
~FORM_CENTER(tree38_adr%)
~FORM_CENTER(tree39_adr%)
~FORM_CENTER(tree40_adr%)
~FORM_CENTER(tree41_adr%)
xt6&=DPEEK(tree6_adr%+16)
yt6&=DPEEK(tree6_adr%+18)
bt6&=DPEEK(tree6_adr%+20)
ht6&=DPEEK(tree6_adr%+22)
xt7&=DPEEK(tree7_adr%+16)
yt7&=DPEEK(tree7_adr%+18)
bt7&=DPEEK(tree7_adr%+20)
ht7&=DPEEK(tree7_adr%+22)
xt8&=DPEEK(tree8_adr%+16)
yt8&=DPEEK(tree8_adr%+18)
bt8&=DPEEK(tree8_adr%+20)
ht8&=DPEEK(tree8_adr%+22)
xt10&=DPEEK(tree10_adr%+16)
yt10&=DPEEK(tree10_adr%+18)
bt10&=DPEEK(tree10_adr%+20)
ht10&=DPEEK(tree10_adr%+22)
xt11&=DPEEK(tree11_adr%+16)
yt11&=DPEEK(tree11_adr%+18)
bt11&=DPEEK(tree11_adr%+20)
ht11&=DPEEK(tree11_adr%+22)
xt12&=DPEEK(tree12_adr%+16)
yt12&=DPEEK(tree12_adr%+18)
bt12&=DPEEK(tree12_adr%+20)
ht12&=DPEEK(tree12_adr%+22)
xt13&=DPEEK(tree13_adr%+16)
yt13&=DPEEK(tree13_adr%+18)
bt13&=DPEEK(tree13_adr%+20)
ht13&=DPEEK(tree13_adr%+22)
xt14&=DPEEK(tree14_adr%+16)
yt14&=DPEEK(tree14_adr%+18)
bt14&=DPEEK(tree14_adr%+20)
ht14&=DPEEK(tree14_adr%+22)
xt15&=DPEEK(tree15_adr%+16)
yt15&=DPEEK(tree15_adr%+18)
bt15&=DPEEK(tree15_adr%+20)
ht15&=DPEEK(tree15_adr%+22)
xt16&=DPEEK(tree16_adr%+16)
yt16&=DPEEK(tree16_adr%+18)
bt16&=DPEEK(tree16_adr%+20)
ht16&=DPEEK(tree16_adr%+22)
xt17&=DPEEK(tree17_adr%+16)
yt17&=DPEEK(tree17_adr%+18)
bt17&=DPEEK(tree17_adr%+20)
ht17&=DPEEK(tree17_adr%+22)
xt18&=DPEEK(tree18_adr%+16)
yt18&=DPEEK(tree18_adr%+18)
bt18&=DPEEK(tree18_adr%+20)
ht18&=DPEEK(tree18_adr%+22)
xt19&=DPEEK(tree19_adr%+16)
yt19&=DPEEK(tree19_adr%+18)
bt19&=DPEEK(tree19_adr%+20)
ht19&=DPEEK(tree19_adr%+22)
xt20&=DPEEK(tree20_adr%+16)
yt20&=DPEEK(tree20_adr%+18)
bt20&=DPEEK(tree20_adr%+20)
ht20&=DPEEK(tree20_adr%+22)
xt21&=DPEEK(tree21_adr%+16)
yt21&=DPEEK(tree21_adr%+18)
bt21&=DPEEK(tree21_adr%+20)
ht21&=DPEEK(tree21_adr%+22)
xt22&=DPEEK(tree22_adr%+16)
yt22&=DPEEK(tree22_adr%+18)
bt22&=DPEEK(tree22_adr%+20)
ht22&=DPEEK(tree22_adr%+22)
xt23&=DPEEK(tree23_adr%+16)
yt23&=DPEEK(tree23_adr%+18)
bt23&=DPEEK(tree23_adr%+20)
ht23&=DPEEK(tree23_adr%+22)
DPOKE tree24_adr%+16,DPEEK(tree24_adr%+16)+200
xt24&=DPEEK(tree24_adr%+16)
yt24&=DPEEK(tree24_adr%+18)
bt24&=DPEEK(tree24_adr%+20)
ht24&=DPEEK(tree24_adr%+22)
xt26&=DPEEK(tree26_adr%+16)
yt26&=DPEEK(tree26_adr%+18)
bt26&=DPEEK(tree26_adr%+20)
ht26&=DPEEK(tree26_adr%+22)
xt27&=DPEEK(tree27_adr%+16)
yt27&=DPEEK(tree27_adr%+18)
bt27&=DPEEK(tree27_adr%+20)
ht27&=DPEEK(tree27_adr%+22)
xt28&=DPEEK(tree28_adr%+16)
yt28&=DPEEK(tree28_adr%+18)
bt28&=DPEEK(tree28_adr%+20)
ht28&=DPEEK(tree28_adr%+22)
xt29&=DPEEK(tree29_adr%+16)
yt29&=DPEEK(tree29_adr%+18)
bt29&=DPEEK(tree29_adr%+20)
ht29&=DPEEK(tree29_adr%+22)
xt30&=DPEEK(tree30_adr%+16)
yt30&=DPEEK(tree30_adr%+18)
bt30&=DPEEK(tree30_adr%+20)
ht30&=DPEEK(tree30_adr%+22)
xt31&=DPEEK(tree31_adr%+16)
yt31&=DPEEK(tree31_adr%+18)
bt31&=DPEEK(tree31_adr%+20)
ht31&=DPEEK(tree31_adr%+22)
xt32&=DPEEK(tree32_adr%+16)
yt32&=DPEEK(tree32_adr%+18)
bt32&=DPEEK(tree32_adr%+20)
ht32&=DPEEK(tree32_adr%+22)
xt35&=DPEEK(tree35_adr%+16)
yt35&=DPEEK(tree35_adr%+18)
bt35&=DPEEK(tree35_adr%+20)
ht35&=DPEEK(tree35_adr%+22)
xt33&=DPEEK(tree33_adr%+16)
yt33&=DPEEK(tree33_adr%+18)
bt33&=DPEEK(tree33_adr%+20)
ht33&=DPEEK(tree33_adr%+22)
xt36&=DPEEK(tree36_adr%+16)
yt36&=DPEEK(tree36_adr%+18)
bt36&=DPEEK(tree36_adr%+20)
ht36&=DPEEK(tree36_adr%+22)
xt37&=DPEEK(tree37_adr%+16)
yt37&=DPEEK(tree37_adr%+18)
bt37&=DPEEK(tree37_adr%+20)
ht37&=DPEEK(tree37_adr%+22)
xt38&=DPEEK(tree38_adr%+16)
yt38&=DPEEK(tree38_adr%+18)
bt38&=DPEEK(tree38_adr%+20)
ht38&=DPEEK(tree38_adr%+22)
xt39&=DPEEK(tree39_adr%+16)
yt39&=DPEEK(tree39_adr%+18)
bt39&=DPEEK(tree39_adr%+20)
ht39&=DPEEK(tree39_adr%+22)
xt40&=DPEEK(tree40_adr%+16)
yt40&=DPEEK(tree40_adr%+18)
bt40&=DPEEK(tree40_adr%+20)
ht40&=DPEEK(tree40_adr%+22)
xt41&=DPEEK(tree41_adr%+16)
yt41&=DPEEK(tree41_adr%+18)
bt41&=DPEEK(tree41_adr%+20)
ht41&=DPEEK(tree41_adr%+22)
bt_output&=OB_W(tree40_adr%,pl100&)
CHAR{{OB_SPEC(tree6_adr%,t_hoehe&)}}=STR$(INT(zeichen_hoehe%/100))
CHAR{{OB_SPEC(tree7_adr%,zabs&)}}=STR$(INT(zeilen_abstand_prozent%))
CHAR{{OB_SPEC(tree9_adr%,z_char&)}}=CHR$(z_ascii_old%+32)
CHAR{{OB_SPEC(tree8_adr%,string_text&)}}=abc$
CHAR{{OB_SPEC(tree12_adr%,bstep&)}}=STR$(b_vari/100)
CHAR{{OB_SPEC(tree13_adr%,punkte&)}}=STR$(pointer%)
CHAR{{OB_SPEC(tree13_adr%,rest&)}}=STR$(p_max%-pointer%)
CHAR{{OB_SPEC(tree13_adr%,version&)}}=revision$
CHAR{{OB_SPEC(tree14_adr%,rx1&)}}=STR$(folie_x%)
CHAR{{OB_SPEC(tree14_adr%,ry1&)}}=STR$(folie_y%)
CHAR{{OB_SPEC(tree14_adr%,rx2&)}}=STR$(folie_x2%)
CHAR{{OB_SPEC(tree14_adr%,ry2&)}}=STR$(folie_y2%)
CHAR{{OB_SPEC(tree14_adr%,rx3&)}}=STR$(folie_x3%)
CHAR{{OB_SPEC(tree14_adr%,ry3&)}}=STR$(folie_y3%)
CHAR{{OB_SPEC(tree15_adr%,p_init1&)}}=p_init1$
CHAR{{OB_SPEC(tree15_adr%,p_init2&)}}=p_init2$
CHAR{{OB_SPEC(tree15_adr%,overcut&)}}=STR$(overcut|/10)
CHAR{{OB_SPEC(tree15_adr%,ma&)}}=ma$
CHAR{{OB_SPEC(tree15_adr%,da&)}}=da$
CHAR{{OB_SPEC(tree17_adr%,outl&)}}="3.0"
CHAR{{OB_SPEC(tree18_adr%,schraffd&)}}=STR$(schraff_dist/100)
CHAR{{OB_SPEC(tree18_adr%,schraffi&)}}=STR$(schraff_inc/100)
CHAR{{OB_SPEC(tree18_adr%,schraffw&)}}=STR$(schraff_winkel)
CHAR{{OB_SPEC(tree18_adr%,schrafix&)}}=STR$(schraff_fix_abst)
CHAR{{OB_SPEC(tree21_adr%,t_step&)}}=STR$(bit_count_max|)
CHAR{{OB_SPEC(tree21_adr%,t_gerade&)}}=STR$(geraden_fehler|)
CHAR{{OB_SPEC(tree21_adr%,t_schmutz&)}}=STR$(schmutz_filter%)
CHAR{{OB_SPEC(tree21_adr%,bschwelle&)}}=STR$(lange_gerade%/100)
CHAR{{OB_SPEC(tree21_adr%,knickwinkel&)}}=STR$(CINT(DEG(knick_winkel_max)))
CHAR{{OB_SPEC(tree21_adr%,bogen_max&)}}=STR$(CINT(DEG(bogen_max*2)))
CHAR{{OB_SPEC(tree21_adr%,abweichung_gerade&)}}=STR$(abweichung_gerade%/100)
CHAR{{OB_SPEC(tree22_adr%,scann_x&)}}="1664"
CHAR{{OB_SPEC(tree22_adr%,scann_y&)}}="800"
CHAR{{OB_SPEC(tree23_adr%,radius&)}}="10"
CHAR{{OB_SPEC(tree27_adr%,calamus_nr&)}}=STR$(calamus_nr%)
CHAR{{OB_SPEC(tree29_adr%,kostfak&)}}=STR$(kostfak)
CHAR{{OB_SPEC(tree31_adr%,anz_rot&)}}="3"
CHAR{{OB_SPEC(tree31_adr%,phi_rot&)}}="90"
OB_STATE(tree15_adr%,rs232&)=state_rs232&+16
OB_STATE(tree15_adr%,cent&)=state_rs232& XOR 1+16
OB_STATE(tree15_adr%,hp&)=state_hp&+16
OB_STATE(tree15_adr%,gp&)=state_hp& XOR 1+16
OB_STATE(tree26_adr%,absolut&)=absolut!+18
OB_STATE(tree26_adr%,relativ&)=absolut!+17
OB_STATE(tree26_adr%,polar&)=absolut!+17
IF gdu=1
OB_STATE(tree15_adr%,gdu01&)=17
ELSE
IF gdu=2.5
OB_STATE(tree15_adr%,gdu025&)=17
ELSE
IF gdu=5
OB_STATE(tree15_adr%,gdu05&)=17
ELSE
OB_STATE(tree15_adr%,gdu1&)=17
ENDIF
ENDIF
ENDIF
OB_STATE(tree1_adr%,lock&)=1
IF mimaki!
OB_STATE(tree15_adr%,gdu05&)=17
OB_STATE(tree15_adr%,gdu01&)=8
OB_STATE(tree15_adr%,gdu025&)=8
OB_STATE(tree15_adr%,gdu1&)=8
OB_STATE(tree15_adr%,rs232&)=17
OB_STATE(tree15_adr%,mgl&)=17
OB_STATE(tree15_adr%,cent&)=16
OB_STATE(tree15_adr%,hp&)=16
OB_STATE(tree15_adr%,gp&)=16
ELSE
OB_STATE(tree15_adr%,mgl&)=8
ENDIF
~WIND_GET(0,4) ! get desk size
BMOVE GINTOUT+2,tree0_adr%+16,8 ! set into rsc
BMOVE GINTOUT+2,tree1_adr%+16,8 ! set into rsc
BMOVE GINTOUT+2,tree2_adr%+16,8 ! set into rsc
BMOVE GINTOUT+2,tree3_adr%+16,8 ! set into rsc
BMOVE GINTOUT+2,tree4_adr%+16,8 ! set into rsc
BMOVE GINTOUT+2,tree5_adr%+16,8 ! set into rsc
BMOVE GINTOUT+2,tree9_adr%+16,8 ! set into rsc
BMOVE GINTOUT+2,tree25_adr%+16,8 ! set into rsc
BMOVE GINTOUT+2,tree34_adr%+16,8 ! set into rsc
wind_newdesk(tree0_adr%,0) ! install Datei Baum
IF default_font$<>""
datei$=ein_space$
IF EXIST(pfad_fnt$+"\"+default_font$)
load_font(pfad_fnt$+"\"+default_font$)
programm_font$=LEFT$(default_font$,LEN(default_font$)-4)
ELSE
make_new_font(-1)
ENDIF
ELSE
make_new_font(-1)
ENDIF
m$(0)=""
m$(1)=" CUTOUT"
m$(2)="--------------------"
m$(3)=CHR$(2)
m$(4)=CHR$(3)
m$(5)=CHR$(4)
m$(6)=CHR$(5)
m$(7)=CHR$(6)
m$(8)=CHR$(7)
m$(9)=CHR$(8)
m$(10)=""
m$(11)=pd_menu$
m$(12)=pd_datei$
m$(13)=pd_editieren$
m$(14)=pd_fenster$
m$(15)=pd_schnittpunkt$
m$(16)=pd_bogen$
m$(17)="----------------------"
m$(18)=pd_text$
m$(19)=pd_zeicheneditor$
m$(20)=m$(17)
m$(21)=pd_extra$
m$(22)=m$(17)
m$(23)=pd_quit$
m$(24)=""
m$(25)=pd_optionen$
m$(26)=pd_marker_anzeigen$
m$(27)=pd_tangenten_anzeigen$
m$(28)=pd_fangradius_klein$
m$(29)=pd_polygon_modus$
m$(30)=pd_schnittpunkt_genau$
m$(31)=pd_koordinaten$
m$(32)=pd_element_selektieren$
m$(33)=pd_polygon_selektieren$
m$(34)=pd_warnmeldungen$
m$(35)="---------------------------"
m$(36)=pd_skaliere_alles$
m$(37)=m$(35)
m$(38)=pd_punkte_nivellieren$
m$(39)=pd_tangente$
m$(40)=m$(35)
m$(41)=pd_plotflaeche$
m$(42)=pd_bezier_step_aendern$
m$(43)=pd_plotter_einstellung$
m$(44)=pd_kosten_faktor$
m$(45)=pd_pfad_sichern$
m$(46)=""
m$(47)=pd_figur$
m$(48)=pd_rechteck$
m$(49)=pd_n_eck$
m$(50)=pd_polygon_outline$
m$(51)=pd_aequidistante$
m$(52)=pd_frame$
m$(53)="---------------------------"
m$(54)=pd_polygone_ausrichten$
m$(55)=pd_polygone_zentrieren$
m$(56)=pd_polygone_vereinen$
m$(57)=pd_polygone_fuellen$
m$(58)=m$(53)
m$(59)=pd_einzelne_punkte_loeschen$
m$(60)=""
m$(61)=pd_linie$
m$(62)=pd_bezier_vektor$
m$(63)=pd_bezier_einfuegen$
m$(64)=pd_tausche_bezier_vektor$
m$(65)=m$(53)
m$(66)=pd_knacken$
m$(67)=pd_trimmen$
m$(68)=pd_lot$
m$(69)=pd_verlaengern$
m$(70)=pd_teilen$
m$(71)=pd_messen$
m$(72)=m$(53)
m$(73)=pd_schnittp_2er$
m$(74)=pd_schnittp_n$
m$(75)=""
m$(76)=pd_effekt$
m$(77)=pd_parameter_schraffur$
m$(78)=pd_polygon_schraffieren$
m$(79)=pd_alles_schraffieren$
m$(80)="------------------------"
m$(81)=pd_schatten$
m$(82)=pd_einpassen$
m$(83)=m$(80)
m$(84)=pd_kugel$
m$(85)=""
m$(86)=""
MENU m$()
IF fangklein!
MENU 28,1
ENDIF
IF polygonmode!
MENU 29,1
ENDIF
IF warn!
MENU 34,1
ENDIF
CLIP 0,0,639,399 OFFSET 0,0
DEFTEXT 1,0,0,6
COLOR 1
TEXT 400,7,"Zoom X:"
TEXT 400,15,"Zoom Y:"
TEXT 540,7,"X:"
TEXT 540,15,"Y:"
DEFTEXT 1,0,0,4
TEXT 624,7,"mm"
TEXT 624,15,"mm"
LINE 536,0,536,20
LINE 396,0,396,20
'
~FORM_DIAL(3,0,0,0,0,0,0,desk_breite&,desk_hoehe&) !redraw all
'
layer!=FALSE
zoom=1
x_layer%=folie_x%
y_layer%=folie_y%
x_layero%=x_layer%
y_layero%=y_layer%
res_x%=x_layer%
res_y%=y_layer%
x_offset&=0
y_offset&=0
res_x_old%=x_layer%
res_y_old%=y_layer%
x_offset_old&=0
y_offset_old&=0
pointer%=0
get_desktop
scrb_old&=scrb&
scrh_old&=scrh&
CLOSEW 1
programm$=noname$
INT{WINDTAB+2}=&X111111000000
INT{WINDTAB+4}=scrx&
INT{WINDTAB+6}=scry&
INT{WINDTAB+8}=scrb&
INT{WINDTAB+10}=scrh&
help_titel
OPENW 1
calc_slid
~WIND_GET(1,4,x_win&,y_win&,b_window&,h_window&)
neues_polygon!=TRUE
do_redraw
DEFMOUSE 3
p_zoom(zoom*100,zoom*100)
CHAR{{OB_SPEC(tree14_adr%,rx1&)}}=STR$(x_layer%)
CHAR{{OB_SPEC(tree14_adr%,ry1&)}}=STR$(y_layer%)
' test_vollbild
'
~OBJC_OFFSET(tree28_adr%,gtprewin&,gtxv&,gtyv&)
gtxv&=gtxv&-x_win&+1
gtyv&=gtyv&-y_win&+1
'
ON MENU MESSAGE GOSUB message
ON MENU BUTTON 1,1,1 GOSUB button
ON MENU GOSUB menu
ON MENU KEY GOSUB key
' ON ERROR GOSUB fehler
'
'
REPEAT
ON MENU
UNTIL end!
'
IF modified!
IF pointer%>0
ALERT 3,"| "+sichere$+daten$,1,ja_nein$,i%
IF i%=1
@save_vektor
ENDIF
ENDIF
ENDIF
'
' Bei fertigen Programmen hier nur QUIT
'
reset
~WIND_GET(0,10)
IF DPEEK(GINTOUT+2)
ALERT 1,"Accessories",1,"Close|Quit",i%
IF i%=2
QUIT
ENDIF
REPEAT
~WIND_GET(0,10)
UNTIL DPEEK(GINTOUT+2)=0
ENDIF
RESERVE ! XBIOS(2)-HIMEM+FRE(0)-16384
'
PROCEDURE fehler
ALERT 1,fehler$,1,leider$,i%
' RESUME NEXT
RETURN
'
'
PROCEDURE get_undo
LOCAL dp%
dp%=daten_ptr%
IF (pointer%*9+1<work_space%) AND (NOT layer_geladen!)
LONG{dp%}=pointer%
ADD dp%,4
undo!=TRUE
BMOVE VARPTR(punkte_x%(0)),dp%,pointer%*4
ADD dp%,pointer%*4
BMOVE VARPTR(punkte_y%(0)),dp%,pointer%*4
ADD dp%,pointer%*4
BMOVE VARPTR(punkte_def|(0)),dp%,pointer%
undo!=TRUE
ELSE
undo!=FALSE
ENDIF
RETURN
'
PROCEDURE put_undo
LOCAL dp%
IF undo!
dp%=daten_ptr%
pointer%=LONG{dp%}
ADD dp%,4
BMOVE dp%,VARPTR(punkte_x%(0)),pointer%*4
ADD dp%,pointer%*4
BMOVE dp%,VARPTR(punkte_y%(0)),pointer%*4
ADD dp%,pointer%*4
BMOVE dp%,VARPTR(punkte_def|(0)),pointer%
undo!=FALSE
do_redraw
ENDIF
RETURN
'
PROCEDURE output_drucker
LOCAL handle&,x_resi&,y_resi&,z_old
IF GDOS?
ERASE work%()
IF FRE(0)>250000
RESERVE -250000
handle&=V_OPNWK(21)
IF handle&<>0
V~H=handle&
x_resi&=INTOUT(0)
y_resi&=INTOUT(1)
~V_CLRWK()
z_old=zoom
zoom=4
redraw_ohne(0)
~V_UPDWK()
~V_CLSWK()
zoom=z_old
ELSE
ENDIF
RESERVE
ELSE
ENDIF
DIM work%((FRE(0)-80*1024)/4)
daten_ptr%=V:work%(0)
work_space%=DIM?(work%())*4
ELSE
ENDIF
RETURN
'
'
PROCEDURE scan_a1
ALERT 3,"| SCAN Hochformat: ",1,"A3|A2|A1",i%
SELECT i%
CASE 1
scann_x%=INT(17*400/8) !17
scann_y%=INT(12*400) !12
CASE 2
scann_x%=INT(25*400/8)
scann_y%=INT(17*400)
CASE 3
scann_x%=INT(34*400/8)
scann_y%=INT(25*400)
ENDSELECT
scan_graphtec(3,400,0,0,scann_x%,scann_y%)
RETURN
'
PROCEDURE scan_graphtec(device&,dpi&,x_0%,y_0%,bytes_x%,lines_y%)
LOCAL command_bytes&,bytes_to_transfer%,transfer_dir&
LOCAL y_offset%,block&,command_bytes&,bytes_to_transfer%
' IF FN test_unit_ready(device&)=0
set_graphtec_window(device&,dpi&,x_0%,y_0%,bytes_x%,lines_y%)
command_bytes&=10
block&=&HFFFF DIV bytes_x% DIV 3
bytes_to_transfer%=bytes_x%*block&*3
transfer_dir&=0 ! LESEN
command|(0)=&H28
command|(1)=0
command|(2)=0
command|(3)=0
command|(4)=0
command|(5)=0
command|(6)=0
command|(7)=0
command|(8)=0
command|(9)=0
WORD{V:command|(7)}=block&
'
anzahl&=lines_y% DIV block&
rest&=lines_y% MOD block&
y_offset%=0
FOR i%=1 TO anzahl&
$c+
fehler%=C:scsi%(device&,command_bytes&,bytes_to_transfer%,transfer_dir&,L:V:command|(0),L:daten_ptr%+y_offset%)
$c-
ADD y_offset%,block&*bytes_x%
NEXT i%
IF rest&<>0
bytes_to_transfer%=bytes_x%*rest&*3
WORD{V:command|(7)}=rest&
$c+
fehler%=C:scsi%(device&,command_bytes&,bytes_to_transfer%,transfer_dir&,L:V:command|(0),L:daten_ptr%+y_offset%)
$c-
ENDIF
' status&=AND(CARD(fehler%),&X11110)
' message&=CARD(SWAP(fehler%))
layer!=TRUE
layer_geladen!=TRUE
voll_bild!=TRUE
outlined!=FALSE
do_change_aufloesung(bytes_x%*8,lines_y%,1)
init_bit_blit
p_zoom(zoom*100,zoom*100)
do_redraw
' ENDIF
RETURN
'
PROCEDURE set_graphtec_window(device&,dpi&,x_0%,y_0%,bytes_x%,lines_y%)
LOCAL command_bytes&,bytes_to_transfer%,transfer_dir&
command_bytes&=10
bytes_to_transfer%=53
transfer_dir&=1 ! LESEN (1=SCHREIBEN)
command|(0)=&H24
command|(1)=0
command|(2)=0
command|(3)=0
command|(4)=0
command|(5)=0
command|(6)=0
command|(7)=0
command|(8)=bytes_to_transfer%
command|(9)=0
FOR i%=0 TO 6
buffer|(i%)=0
NEXT i%
FOR i%=38 TO 47
buffer|(i%)=0
NEXT i%
buffer|(7)=45 ! Window Descriptor Block Length
buffer|(8)=0 ! Window ID
buffer|(9)=0 ! reserved
WORD{V:buffer|(10)}=dpi& ! X resolution
WORD{V:buffer|(12)}=dpi& ! Y resolution
LONG{V:buffer|(14)}=x_0%*24 ! X Upper Left
LONG{V:buffer|(18)}=y_0%*3 ! Y Upper Left
LONG{V:buffer|(22)}=bytes_x%*24 ! Width
LONG{V:buffer|(26)}=lines_y%*3 ! Length
buffer|(30)=0 ! reserved
buffer|(31)=0 ! Kontrast
buffer|(32)=0 ! reserved
buffer|(33)=0 ! Image composition
buffer|(34)=1 ! Bits per Pixel
buffer|(35)=0 ! reserved
buffer|(36)=0 ! reserved
buffer|(37)=0 ! Reverse Image
buffer|(48)=2 ! Cell length
buffer|(49)=5 ! Function Code
buffer|(50)=1 ! Fine Line
buffer|(51)=2 ! Cell length
buffer|(52)=6 ! Function Code
buffer|(53)=1 ! Scann Speed
$c+
fehler%=C:scsi%(device&,command_bytes&,bytes_to_transfer%,transfer_dir&,L:V:command|(0),L:V:buffer|(0))
$c-
RETURN
'
FUNCTION test_unit_ready(device&)
command_bytes&=6
bytes_to_transfer%=1
transfer_dir&=0 ! LESEN (1=SCHREIBEN)
command|(0)=0
command|(1)=0
command|(2)=0
command|(3)=0
command|(4)=bytes_to_transfer%
command|(5)=0
'
$c+
fehler%=C:scsi%(device&,command_bytes&,L:bytes_to_transfer%,transfer_dir&,L:V:command|(0),L:V:buffer|(0))
$c-
status&=AND(CARD(fehler%),&X11110)
message&=CARD(SWAP(fehler%))
'
RETURN status&
ENDFUNC
'
'
PROCEDURE gt_info(i$)
CHAR{{OB_SPEC(tree28_adr%,gtstate&)}}=i$
~OBJC_DRAW(tree28_adr%,gtstate&,8,xt28&,yt28&,bt28&,ht28&)
RETURN
'
PROCEDURE dpi_change(prex0&,prey0&,prex0_min&,prey0_min&)
CHAR{{OB_SPEC(tree28_adr%,gtdpi&)}}=STR$(gtdpiv&)
~OBJC_DRAW(tree28_adr%,gtdpi&,8,xt28&,yt28&,bt28&,ht28&)
CHAR{{OB_SPEC(tree28_adr%,gtb&)}}=STR$(AND(INT(gtbv&/25.4*gtdpiv&),&HFFF8))
CHAR{{OB_SPEC(tree28_adr%,gth&)}}=STR$(AND(INT(gthv&/25.4*gtdpiv&),&HFFF8))
~OBJC_DRAW(tree28_adr%,gtb&,8,xt28&,yt28&,bt28&,ht28&)
~OBJC_DRAW(tree28_adr%,gth&,8,xt28&,yt28&,bt28&,ht28&)
CHAR{{OB_SPEC(tree28_adr%,gtx&)}}=STR$(AND(INT((prex0&-prex0_min&)/25.4*gtdpiv&),&HFFF8))
CHAR{{OB_SPEC(tree28_adr%,gty&)}}=STR$(AND(INT((prey0&-prey0_min&)/25.4*gtdpiv&),&HFFF8))
~OBJC_DRAW(tree28_adr%,gtx&,8,xt28&,yt28&,bt28&,ht28&)
~OBJC_DRAW(tree28_adr%,gty&,8,xt28&,yt28&,bt28&,ht28&)
RETURN
'
PROCEDURE gt_6000
LOCAL prex0&,prey0&,prex0_min&,prey0_min&,x_changed&,y_changed&
LOCAL prex&,prey&,gthalbton&
DEFMOUSE 0
SETMOUSE xt28&+240,yt28&+310,0
CLIP 0,0,desk_breite&,desk_hoehe& OFFSET x_win&,y_win&
~OBJC_OFFSET(tree28_adr%,gtprewin&,prex&,prey&)
gthalbton&=1
prex0&=prex&-x_win&+1
prey0&=prey&-y_win&+1
prex0_min&=prex0&
prey0_min&=prey0&
prex0_max&=prex0&+217
prey0_max&=prey0&+297
prex0&=gtxv&
prey0&=gtyv&
'
CHAR{{OB_SPEC(tree28_adr%,gtx&)}}=STR$(AND(INT((prex0&-prex0_min&)/25.4*gtdpiv&),&HFFF8))
CHAR{{OB_SPEC(tree28_adr%,gty&)}}=STR$(AND(INT((prey0&-prey0_min&)/25.4*gtdpiv&),&HFFF8))
CHAR{{OB_SPEC(tree28_adr%,gtb&)}}=STR$(AND(INT(gtbv&/25.4*gtdpiv&),&HFFF8))
CHAR{{OB_SPEC(tree28_adr%,gth&)}}=STR$(AND(INT(gthv&/25.4*gtdpiv&),&HFFF8))
CHAR{{OB_SPEC(tree28_adr%,gtdpi&)}}=STR$(gtdpiv&)
CHAR{{OB_SPEC(tree28_adr%,gtstate&)}}=waehle$
GET xt28&-4,yt28&-4,xt28&+bt28&+4,yt28&+ht28&+4,rette$
~OBJC_DRAW(tree28_adr%,0,8,xt28&,yt28&,bt28&,ht28&)
smfdb%(0)=V:prebuf$
smfdb%(1)=208
smfdb%(2)=292
smfdb%(3)=smfdb%(1)/16
smfdb%(5)=1
dmfdb%(0)=XBIOS(3)
dmfdb%(1)=desk_breite&
dmfdb%(2)=desk_hoehe&
dmfdb%(3)=dmfdb%(1)/16
dmfdb%(5)=1
p%(0)=0
p%(1)=0
p%(2)=207
p%(3)=291
p%(4)=prex&+1
p%(5)=prey&+1
p%(6)=p%(4)+207
p%(7)=p%(5)+291
p%(8)=3
BITBLT smfdb%(),dmfdb%(),p%()
DEFFILL 1,1,1
GRAPHMODE 3
BOX prex0&,prey0&,prex0&+gtbv&,prey0&+gthv&
PBOX prex0&+gtbv&-8,prey0&+gthv&-8,prex0&+gtbv&,prey0&+gthv&
REPEAT
DO
~FORM_DO(tree28_adr%,0)
IF INT{GINTOUT}>0 AND INT{GINTOUT}<100
exit_button&=DPEEK(GINTOUT)
OB_STATE(tree28_adr%,exit_button&)=0
IF exit_button&<>gtprewin&
~OBJC_DRAW(tree28_adr%,exit_button&,8,xt28&,yt28&,bt28&,ht28&)
ENDIF
ENDIF
SELECT exit_button&
CASE gtdpimin&
IF gtdpiv&>100
IF gtdpiv&=480
gtdpiv&=400
ELSE
IF gtdpiv&=600
gtdpiv&=480
ELSE
SUB gtdpiv&,100
ENDIF
ENDIF
dpi_change(prex0&,prey0&,prex0_min&,prey0_min&)
ENDIF
CASE gtdpiplu&
IF gtdpiv&<600
IF gtdpiv&=400
gtdpiv&=480
ELSE
IF gtdpiv&=480
gtdpiv&=600
ELSE
ADD gtdpiv&,100
ENDIF
ENDIF
dpi_change(prex0&,prey0&,prex0_min&,prey0_min&)
ENDIF
CASE gtprewin&
MOUSE x_mouse%,y_mouse%,taste|
IF x_mouse%>prex0&+gtbv&-8 AND x_mouse%<prex0&+gtbv& AND y_mouse%>prey0&+gthv&-8 AND y_mouse%<prey0&+gthv&
DEFMOUSE 3
REPEAT
MOUSE x_mouse%,y_mouse%,taste|
IF x_mouse%<>x_mouse_old% OR y_mouse%<>y_mouse_old%
BOX prex0&,prey0&,prex0&+gtbv&,prey0&+gthv&
PBOX prex0&+gtbv&-8,prey0&+gthv&-8,prex0&+gtbv&,prey0&+gthv&
IF x_mouse%-prex0_min&<217 AND x_mouse%-prex0&>16
gtbv&=x_mouse%-prex0&
i%=AND(INT(gtbv&/25.4*gtdpiv&),&HFFF0)
gtbv&=CINT(i%*25.4/gtdpiv&)
ENDIF
IF y_mouse%-prey0_min&<298 AND y_mouse%-prey0&>16
gthv&=y_mouse%-prey0&
ENDIF
BOX prex0&,prey0&,prex0&+gtbv&,prey0&+gthv&
PBOX prex0&+gtbv&-8,prey0&+gthv&-8,prex0&+gtbv&,prey0&+gthv&
SHOWM
x_mouse_old%=x_mouse%
y_mouse_old%=y_mouse%
CHAR{{OB_SPEC(tree28_adr%,gtb&)}}=STR$(AND(INT(gtbv&/25.4*gtdpiv&),&HFFF0))
CHAR{{OB_SPEC(tree28_adr%,gth&)}}=STR$(INT(gthv&/25.4*gtdpiv&))
~OBJC_DRAW(tree28_adr%,gtb&,8,xt28&,yt28&,bt28&,ht28&)
~OBJC_DRAW(tree28_adr%,gth&,8,xt28&,yt28&,bt28&,ht28&)
ENDIF
UNTIL taste|=0
DEFMOUSE 0
ELSE
IF x_mouse%>prex0& AND x_mouse%<prex0&+gtbv& AND y_mouse%>prey0& AND y_mouse%<prey0&+gthv&
x_mouse_old%=x_mouse%
y_mouse_old%=y_mouse%
DEFMOUSE 3
REPEAT
MOUSE x_mouse%,y_mouse%,taste|
IF x_mouse%<>x_mouse_old% OR y_mouse%<>y_mouse_old%
x_changed&=x_mouse%-x_mouse_old%
y_changed&=y_mouse%-y_mouse_old%
BOX prex0&,prey0&,prex0&+gtbv&,prey0&+gthv&
PBOX prex0&+gtbv&-8,prey0&+gthv&-8,prex0&+gtbv&,prey0&+gthv&
IF prex0&+x_changed&>=prex0_min& AND prex0&+x_changed&+gtbv&<prex0_max&
ADD prex0&,x_changed&
ENDIF
IF prey0&+y_changed&>=prey0_min& AND prey0&+y_changed&+gthv&<prey0_max&
ADD prey0&,y_changed&
ENDIF
BOX prex0&,prey0&,prex0&+gtbv&,prey0&+gthv&
PBOX prex0&+gtbv&-8,prey0&+gthv&-8,prex0&+gtbv&,prey0&+gthv&
SHOWM
x_mouse_old%=x_mouse%
y_mouse_old%=y_mouse%
CHAR{{OB_SPEC(tree28_adr%,gtx&)}}=STR$(AND(INT((prex0&-prex0_min&)/25.4*gtdpiv&),&HFFF8))
CHAR{{OB_SPEC(tree28_adr%,gty&)}}=STR$(AND(INT((prey0&-prey0_min&)/25.4*gtdpiv&),&HFFF8))
~OBJC_DRAW(tree28_adr%,gtx&,8,xt28&,yt28&,bt28&,ht28&)
~OBJC_DRAW(tree28_adr%,gty&,8,xt28&,yt28&,bt28&,ht28&)
ENDIF
UNTIL taste|=0
DEFMOUSE 0
ENDIF
ENDIF
CASE gtpresca&
gt_info(scannen$+pre_view$)
HIDEM
gt6000%=VARPTR(gt6000$)
$C+
VOID C:gt6000%(1,50,3,3,gthalbton&,0,0,26,292,L:V:prebuf$,L:V:prebuf$+8000)
$C-
OUT (2),13
trigger_0
DEFMOUSE 3
SHOWM
BOX prex0&,prey0&,prex0&+gtbv&,prey0&+gthv&
PBOX prex0&+gtbv&-8,prey0&+gthv&-8,prex0&+gtbv&,prey0&+gthv&
smfdb%(0)=V:prebuf$
BITBLT smfdb%(),dmfdb%(),p%()
BOX prex0&,prey0&,prex0&+gtbv&,prey0&+gthv&
PBOX prex0&+gtbv&-8,prey0&+gthv&-8,prex0&+gtbv&,prey0&+gthv&
gt_info(waehle$)
ENDSELECT
EXIT IF exit_button&=gtcancel&
EXIT IF exit_button&=gtscan&
LOOP
IF exit_button&=gtcancel&
PUT xt28&-4,yt28&-4,rette$
ok!=TRUE
ENDIF
IF exit_button&=gtscan&
IF OB_STATE(tree28_adr%,gthart&)=1
gthalbton&=0
ELSE
IF OB_STATE(tree28_adr%,gtweich&)=1
gthalbton&=16
ELSE
IF OB_STATE(tree28_adr%,gtraster&)=1
gthalbton&=32
ELSE
gthalbton&=1
ENDIF
ENDIF
ENDIF
IF OB_STATE(tree28_adr%,gtrot&)=1
gtfarbev&=0
ELSE
IF OB_STATE(tree28_adr%,gtgruen&)=1
gtfarbev&=1
ELSE
IF OB_STATE(tree28_adr%,gtblau&)=1
gtfarbev&=2
ELSE
gtfarbev&=3
ENDIF
ENDIF
ENDIF
IF OB_STATE(tree28_adr%,k0&)=1
gtkontrav&=0
ELSE
IF OB_STATE(tree28_adr%,k1&)=1
gtkontrav&=1
ELSE
IF OB_STATE(tree28_adr%,k2&)=1
gtkontrav&=2
ELSE
IF OB_STATE(tree28_adr%,k3&)=1
gtkontrav&=3
ELSE
IF OB_STATE(tree28_adr%,k4&)=1
gtkontrav&=4
ELSE
IF OB_STATE(tree28_adr%,k5&)=1
gtkontrav&=5
ELSE
gtkontrav&=6
ENDIF
ENDIF
ENDIF
ENDIF
ENDIF
ENDIF
gt_info(scannen$+bereich$)
gtxorig&=CINT(AND(INT((prex0&+2-prex0_min&)/25.4*gtdpiv&),&HFFF8)/8)
gtyorig&=CINT((prey0&+2-prey0_min&)/25.4*gtdpiv&)
gtxbytes&=CINT(AND(INT(gtbv&/25.4*gtdpiv&),&HFFF0)/8)
gtyzeilen&=CINT(gthv&/25.4*gtdpiv&)
IF gtxbytes&*(gtyzeilen&+1)<work_space%
HIDEM
gt6000%=VARPTR(gt6000$)
$C+
i%=C:gt6000%(0,gtdpiv&,gtfarbev&,gtkontrav&,gthalbton&,gtxorig&,gtyorig&,gtxbytes&,gtyzeilen&,L:daten_ptr%,L:daten_ptr%+work_space%)
$C-
OUT (2),13
trigger_0
DEFMOUSE 3
SHOWM
ELSE
i%=-1
ENDIF
IF i%>=0
gt_info(waehle$)
PUT xt28&-4,yt28&-4,rette$
layer!=TRUE
layer_geladen!=TRUE
voll_bild!=TRUE
outlined!=FALSE
do_change_aufloesung(AND(INT(gtbv&/25.4*gtdpiv&),&HFFF0),INT(gthv&/25.4*gtdpiv&),1)
init_bit_blit
p_zoom(zoom*100,zoom*100)
do_redraw
ok!=TRUE
ELSE
FOR i%=1 TO 5
gt_info(fehler$)
PAUSE 15
gt_info(" ")
PAUSE 15
NEXT i%
gt_info(waehle$)
ok!=FALSE
ENDIF
ENDIF
UNTIL ok!
gtxv&=prex0&
gtyv&=prey0&
~WIND_GET(1,4)
clip(x_window&,y_window&,b_window&,h_window&,INT{GINTOUT+2},INT{GINTOUT+4})
set_clip_offset
GRAPHMODE 1
DEFFILL 0,0
DEFMOUSE 3
init_bit_blit
RETURN
'
PROCEDURE set_clip_offset
INT{WINDTAB+64}=INT{WINDTAB+64}-x_offset&
INT{WINDTAB+66}=INT{WINDTAB+66}-y_offset&
RETURN
'
PROCEDURE helpo(help$)
TITLEW #1,ein_space$+help$+ein_space$
set_clip_offset
RETURN
'
PROCEDURE help(help$)
TITLEW #1,ein_space$+waehle$+help$+ein_space$
set_clip_offset
RETURN
'
PROCEDURE help_titel
TITLEW #1,ein_space$+pfad_vek$+"\"+programm$+".VEK "
set_clip_offset
DEFMOUSE 3
DEFLINE 1
COLOR 1
GRAPHMODE 1
p_xy_info("X:","Y:",0)
SHOWM
trigger_0
zeit%=TIMER
RETURN
'
PROCEDURE polygon_fill
REPEAT
DEFMOUSE 0
GET xt20&-4,yt20&-4,xt20&+bt20&+4,yt20&+ht20&+4,rette$
SETMOUSE xt20&+bt20&/2,yt20&+160,0
~OBJC_DRAW(tree20_adr%,0,8,xt20&,yt20&,bt20&,ht20&)
~FORM_DO(tree20_adr%,0)
exit_button&=DPEEK(GINTOUT)
OB_STATE(tree20_adr%,exit_button&)=0
PUT xt20&-4,yt20&-4,rette$
IF OB_STATE(tree20_adr%,fill1&)=1
DEFFILL 1,2,1
ELSE IF OB_STATE(tree20_adr%,fill2&)=1
DEFFILL 1,2,2
ELSE IF OB_STATE(tree20_adr%,fill3&)=1
DEFFILL 1,2,3
ELSE IF OB_STATE(tree20_adr%,fill4&)=1
DEFFILL 1,2,4
ELSE IF OB_STATE(tree20_adr%,fill5&)=1
DEFFILL 1,2,5
ELSE IF OB_STATE(tree20_adr%,fill6&)=1
DEFFILL 1,2,6
ELSE IF OB_STATE(tree20_adr%,fill7&)=1
DEFFILL 1,2,8
ENDIF
DEFMOUSE mdaten$
help(help_polygon$)
IF exit_button&<>fillcancel&
REPEAT
trigger_0
wait_taste
IF taste|<>2
FILL x_mouse%,y_mouse%
ENDIF
UNTIL taste|=2
ENDIF
UNTIL exit_button&=fillcancel&
~FRE(0)
DEFFILL 1,1
help_titel
RETURN
'
' *****************************************************************************
' * TANGENTE NIVELLIEREN *
' * *
' * VERÄNDERT VAR: Punkte_X%(), Punkte_Y%() *
' * *
' *****************************************************************************
'
PROCEDURE do_niv_tangente(found_quelle%,von%,bis%,dreh_x%,dreh_y%)
LOCAL phi,strecke
dx=SUB(dreh_x%,punkte_x%(found%))
dy=SUB(dreh_y%,punkte_y%(found%))
strecke=SQR(dx*dx+dy*dy)
get_phi(dreh_x%,dreh_y%,punkte_x%(found_quelle%),punkte_y%(found_quelle%),phi)
redraw_von_bis(von%,bis%,0)
punkte_x%(found%)=CINT(dreh_x%-strecke*COS(phi))
punkte_y%(found%)=CINT(dreh_y%-strecke*SIN(phi))
redraw_von_bis(von%,bis%,1)
RETURN
'
PROCEDURE tangente_nivellieren
LOCAL found_quelle%,quelle_def|
LOCAL von%,bis%,f%,dreh_x%,dreh_y%
IF pointer%>1
show_cursor_fang
REPEAT
trigger_0
GRAPHMODE 1
REPEAT
wait_taste
EXIT IF taste|=2
find(x_mouse%*100/zoom,y_mouse%*100/zoom)
quelle_def|=punkte_def|(found%)
UNTIL (quelle_def|>da| AND quelle_def|<b3|)
IF taste|<>2
found_quelle%=found%
IF quelle_def|=b1|
IF punkte_def|(found_quelle%-1)=b3|
found%=found_quelle%-2
von%=found_quelle%-4
bis%=von%+3
dreh_x%=punkte_x%(found_quelle%-1)
dreh_y%=punkte_y%(found_quelle%-1)
do_niv_tangente(found_quelle%,von%,bis%,dreh_x%,dreh_y%)
ELSE
IF punkte_def|(found_quelle%-1)=da|
found%=found_quelle%
found_quelle%=found%-2
von%=found%-1
bis%=von%+3
dreh_x%=punkte_x%(found%-1)
dreh_y%=punkte_y%(found%-1)
do_niv_tangente(found_quelle%,von%,bis%,dreh_x%,dreh_y%)
ELSE
IF punkte_def|(found_quelle%-1)=ma|
found%=found_quelle%
REPEAT
INC found%
UNTIL punkte_def|(found%)=ma|
DEC found%
IF punkte_def|(found%)=b3|
DEC found%
von%=found%-2
bis%=von%+3
dreh_x%=punkte_x%(found_quelle%-1)
dreh_y%=punkte_y%(found_quelle%-1)
do_niv_tangente(found_quelle%,von%,bis%,dreh_x%,dreh_y%)
ELSE
IF punkte_def|(found%)=da|
f%=found_quelle%
found_quelle%=found%-1
found%=f%
von%=found%-1
bis%=von%+3
dreh_x%=punkte_x%(found_quelle%+1)
dreh_y%=punkte_y%(found_quelle%+1)
do_niv_tangente(found_quelle%,von%,bis%,dreh_x%,dreh_y%)
ENDIF
ENDIF
ENDIF
ENDIF
ENDIF
ELSE
IF quelle_def|=b2|
IF punkte_def|(found_quelle%+2)=b1|
found%=found_quelle%+2
von%=found_quelle%+1
bis%=von%+3
dreh_x%=punkte_x%(found_quelle%+1)
dreh_y%=punkte_y%(found_quelle%+1)
do_niv_tangente(found_quelle%,von%,bis%,dreh_x%,dreh_y%)
ELSE
IF punkte_def|(found_quelle%+2)=da|
found%=found_quelle%
found_quelle%=found%+2
von%=found%-2
bis%=von%+3
dreh_x%=punkte_x%(found%+1)
dreh_y%=punkte_y%(found%+1)
do_niv_tangente(found_quelle%,von%,bis%,dreh_x%,dreh_y%)
ELSE
IF punkte_def|(found_quelle%+2)=ma|
found%=found_quelle%
REPEAT
DEC found%
UNTIL punkte_def|(found%)=ma|
INC found%
IF punkte_def|(found%)=b1|
von%=found%-1
bis%=von%+3
dreh_x%=punkte_x%(found_quelle%+1)
dreh_y%=punkte_y%(found_quelle%+1)
do_niv_tangente(found_quelle%,von%,bis%,dreh_x%,dreh_y%)
ELSE
IF punkte_def|(found%)=da|
f%=found_quelle%
found_quelle%=found%
found%=f%
von%=found%-2
bis%=von%+3
dreh_x%=punkte_x%(found_quelle%-1)
dreh_y%=punkte_y%(found_quelle%-1)
do_niv_tangente(found_quelle%,von%,bis%,dreh_x%,dreh_y%)
ENDIF
ENDIF
ENDIF
ENDIF
ENDIF
ENDIF
ENDIF
ENDIF
UNTIL taste|=2
DEFMOUSE 3
ENDIF
RETURN
'
' *****************************************************************************
' * ASCII Editor *
' * *
' * *
' * ' ******************************************************************************
' * *
' * CUTOUT *
' * *
' * 27.02.1992 *
' * *
' ******************************************************************************
'
'
$B+
$I-
INLINE scsi%,933
DIM buffer|(512*2)
DIM command|(12)
' VAR:
' apl_id&=APPL_INIT()
magic%=14031952
'
' serien_nummer$="REGIST00"
' serien_nummer_vergleich$="REGIST11"
serien_nummer$=MKD$(101)
serien_nummer_vergleich$=MKD$(101 XOR magic%)
'
fang_schnittpunkt|=4
buffer%=0
buffer_max%=0
poly_len%=0
bits%=0
punkt_eintrag&=0
x_start&=0
y_start&=0
edi_max&=0
m=0
m_neu=0
bit_count|=0
pixel!=FALSE
'
regist_nr%=0
revision$="1.59"
zeit%=TIMER
calamus_nr%=0
ortho|=45
ortho=RAD(ortho|)
ortho2=ortho/2
x_win&=0 ! Window X pos aktuell
y_win&=0 ! Window Y pos aktuell
x_window&=0 ! Window X pos aktuell
y_window&=0 ! Window Y pos aktuell
b_window&=0 ! Window Breite aktuell
h_window&=0 ! Window Höhe aktuell
~WIND_GET(0,4,scrx&,scry&,scrb&,scrh&) ! maximaler Desktop
wmx%=scrb&-62
wmy%=scrh&-57+scry&
desk_breite&=scrb&
desk_hoehe&=scrh&+scry&
gross_bildschirm!=FALSE
IF desk_breite&>640 OR desk_hoehe&>400
gross_bildschirm!=TRUE
ENDIF
ADD scrx&,42 ! Position Window X+Menuleiste
SUB scrb&,42 ! Breite Window
scrb_old&=scrb&
scrh_old&=scrh&
res_x%=0 ! Auflösung x in mm
res_y%=0 ! Auflösung y in mm
res_x_old%=0
res_y_old%=0
x_layer%=0
y_layer%=0
x_layero%=0
y_layero%=0
x_offset&=0 ! Nullpunkt x im Fenster
y_offset&=0 ! Nullpunkt y im Fenster
x_offset_old&=0
y_offset_old&=0
x_mouse%=0
y_mouse%=0
x_mouse_old%=0
y_mouse_old%=0
x_mouse_0%=0
y_mouse_0%=0
objectbox_x0%=0
objectbox_y0%=0
objectbox_x1%=0
objectbox_y1%=0
grid%=10 ! raster mm
schraff_dist=201
schraff_inc=0
schraff_fix_abst=0
schraff_winkel=0
schraff_start%=0
schraff_y_min%=0
bit_count_max|=6
geraden_fehler|=1
lange_gerade%=4000
schmutz_filter%=20
knick_winkel_max=RAD(140)
bogen_max=PI/2/2
abweichung_gerade%=0.5*100
last_poly_s%=-1
last_poly_e%=-1
taste|=0
zoom=1
zoom_old=1
zoom_100=1
pointer%=0 ! Zeiger auf Punkteliste
found%=0 ! gefundener Punkt bei SNAP
found_t%=0 ! gefundener Kurvenparameter
schnittpunkt_genau%=16 ! Zerlegung Bezier in Teile
anz_schnittpunkte%=0 ! Anzahl Schnittpunkte
b_vari=100
i%=0 ! allgemeiner Schleifenzähler
ii%=0
iii%=0
d0%=0
dx%=0
dy%=0
dx=0
dy=0
schnitt_laenge=0
kostfak=1
gkosten=0
px0%=0
py0%=0
px1%=0
py1%=0
px2%=0
py2%=0
px3%=0
py3%=0
m_square_breite&=&H3000
m_square_hoehe&=&H3000
kerning_256|=m_square_breite& DIV 256
len_pair_daten&=0
z_hoehe_def%=16384 ! Höhe des definierten Zsatzes
z_breite_def%=16384 ! Breite "
zeichen_hoehe%=3000 ! gewünschte Höhe in 1/100 mm
versal_def%=0 ! Versal Höhe in 1/100 mm
z_ascii_scale=zeichen_hoehe%/z_hoehe_def% ! Scaling
z_ascii_scale_old=z_ascii_scale ! save Scaling
global_kerning%=1280 ! globales Kerning
zeilen_abstand_prozent%=125 ! relativer Zeilen Abstand
zeilen_abstand%=zeichen_hoehe%*zeilen_abstand_prozent%/100-zeichen_hoehe%
z_cursor_x_spalte%=0 ! Start String
z_cursor_x%=0 ! ASCII Zeichen Cursor X
z_cursor_y%=0 ! ASCII Zeichen Cursor y
z_cursor_x_old%=0 ! letztes Zeichen Cursor X
z_cursor_y_old%=0 ! letztes Zeichen Cursor y
z_ascii_old%=0 ! letztes Zeichen ASCII+32
z_satz_pointer%=0 ! Pointer auf Zeichensatz
state_rs232&=0 ! Centronics aktiv
state_hp&=0 ! HPGL aktiv
folie_x%=1188 ! Folien Grö₧e
folie_y%=840
plotter_x_min%=0
plotter_y_min%=0
gdu=0 ! 100*Plottereinheit
sel_start%=0
sel_end%=0
gtxv&=0
gtyv&=0
gtbv&=216
gthv&=297
gtdpiv&=300
gtfarbev&=3
gtkontrav&=3
exit_button&=0
cursor_x&=0
cursor_y&=0
ofn_ver|=0
overcut|=0
geschlossen%=0
'
phi_x_3d=0
phi_y_3d=0
a2_3d=0
'
daten_ptr%=0
work_space%=0
'
' CONST:
'
IF FRE(0)>4000000
p_max%=99999
ELSE
p_max%=60000
ENDIF
ma|=0
da|=1
b1|=2
b2|=3
b3|=4
ein_drittel=1/3
fmin=2.225073858507E-307
fmin1=0.005
max1=0.995
pimal2=PI*2
pihalbe=PI/2
pidrittel=PI/3
fang_rad%=8*100 ! FANGRADIUS
p_at%=XBIOS(3)+76 ! PRINT AT FÜR X,Y
p_at_zoom%=p_at%-12 ! PRINT AT FÜR ZOOM
x_bytes%=(scrb&+42)/8 ! BYTES IN X RICHTUNG DESKTOP
'
' CONST: Menuleiste
'
tree00&=0
tree0_adr%=0
datei&=3
eintrag&=4
mfenster&=10
mtext&=5
mzedi&=6
spezial&=7
all_clear&=8
bbogen&=9
mschnitt&=11
'
tree01&=1
tree1_adr%=0
back_main&=3
fwd_main&=4
gerade&=5
kurve&=6
schliess&=7
verrunde&=8
loeschen&=9
lock&=10
snap&=11
bild&=12
zircel&=13
bezier4&=14
schere&=15
' fenster&=15
'
tree02&=2
tree2_adr%=0
back_datei&=3
fwd_datei&=4
l_vek&=5
l_merge&=6
r_macro&=7
r_cvg&=8
l_img&=9
l_pic&=10
ordner&=11
s_vek&=12
s_plt&=13
a_plotter&=14
'
tree03&=3
tree3_adr%=0
back_fenster&=3
fwd_fenster&=4
fmove&=5
blitz&=6
fcopy&=7
fzoom&=8
fzoomp&=9
fdreh&=10
fspiegel&=11
fkursiv&=12
dreh3d&=13
drehxp&=14
drehxm&=15
drehym&=16
drehyp&=17
floesch&=18
fzoom1&=19
'
tree04&=4
tree4_adr%=0
back_spezial&=3
gtepson&=4
handy&=5
kontour&=6
filter&=7
trace&=8
smooth&=9
simag&=10
'
tree05&=5
tree5_adr%=0
back_text&=3
fwd_text&=4
z_edit&=5
z_editor&=6
z_string&=7
z_t_hoehe&=8
z_t_abstand&=9
z_g_kerning&=10
z_read_ascii&=11
l_font&=12
s_font&=14
c_font&=13
'
tree06&=6
tree6_adr%=0
t_hoehe&=1
'
tree07&=7
tree7_adr%=0
zabs&=1
'
tree08&=8 ! String Text
tree8_adr%=0
string_text&=1
breite&=3
string_breite&=4
versal&=5
string_versal&=6
pfad&=7
do_kerning&=8
string_kreis&=9
string_kreis_von&=10
string_kreis_bis&=11
fontname&=13
c_text&=14
icon_pair&=15
icon_trep&=16
'
tree09&=9 ! Zeichen Editor
tree9_adr%=0
back_editor&=3
m_matrix&=4
z_matrix&=5
move_matrix&=6
kerning_links&=7
kerning_rechts&=8
kerning_auto&=9
z_get&=10
z_muell&=11
z_up&=13
z_down&=14
z_char&=15
'
tree10&=10
tree10_adr%=0
b_kerning&=2
g_kerning&=3
'
tree11&=11 ! Optimier
tree11_adr%=0
del_ma&=4
del_ge&=6
del_el&=8
'
tree12&=12
tree12_adr%=0
bstep&=1
'
tree13&=13 ! Info
tree13_adr%=0
vernr&=7
version&=4
firma&=4
strasse&=7
stadt&=10
punkte&=15
rest&=17
'
tree14&=14 ! Auflösung
tree14_adr%=0
rx1&=8
ry1&=10
rx2&=12
ry2&=13
rx3&=16
ry3&=17
get_pf&=19
r1&=4
r2&=5
r3&=6
'
tree15&=15 ! Plotter INIT
tree15_adr%=0
p_init1&=3
p_init2&=4
gdu01&=9
gdu025&=10
gdu05&=11
gdu1&=12
overcut&=16
cent&=18
rs232&=20
hp&=23
gp&=24
mgl&=25
ma&=29
da&=30
'
tree16&=16 ! Pfade und Parameter
tree16_adr%=0
pv&=5
pp&=7
pfi&=9
pg&=11
pf&=13
df&=15
p1&=17
p2&=19
schnitt&=21
gdu&=23
foliex&=25
foliey&=27
warn&=29
cancel&=31
'
tree17&=17
tree17_adr%=0
outl&=1
outl_anz&=2
'
tree18&=18
tree18_adr%=0
schraffd&=1
schraffi&=2
schrafix&=3
schraffw&=4
schraffa&=7
schrafff&=8
'
tree19&=19
tree19_adr%=0
necka&=1
neckp&=2
'
tree20&=20 ! Füll
tree20_adr%=0
fill1&=3
fill2&=5
fill3&=7
fill4&=9
fill5&=11
fill6&=13
fill7&=15
fillcancel&=17
'
tree21&=21 ! Trace
tree21_adr%=0
t_step&=7
t_gerade&=8
t_schmutz&=9
bschwelle&=21
knickwinkel&=22
bogen_max&=23
abweichung_gerade&=24
nur_gerade&=13
trace_cancel&=14
gerade_bezier&=30
'
tree22&=22
tree22_adr%=0
scann_x&=1
scann_y&=2
'
tree23&=23
tree23_adr%=0
radius&=1
'
tree24&=24
tree24_adr%=0
grau&=6
stark&=7
selgrau0&=4
selgrau&=5
sellinie&=8
alle&=9
auswahl&=10
'
tree25&=25 ! Bogen
tree25_adr%=0
backboge&=3
vkreis&=4
kreis3&=5
kreisbog&=6
bogen3&=7
bogen2&=8
ellipse&=9
elbogen&=10
eckrund&=11
'
tree26&=26 ! Koordinaten
tree26_adr%=0
absolut&=2
relativ&=3
polar&=4
'
tree27&=27 ! Calamus Versions Nr.
tree27_adr%=0
calamus_nr&=1
'
tree28&=28 ! GT 6000
tree28_adr%=0
gtscan&=47
gtx&=38
gty&=44
gtb&=42
gth&=43
gtcancel&=46
gtpresca&=45
gtdpi&=35
gtdpimin&=33
gtdpiplu&=34
gtprewin&=1
gtstate&=5
gtkeiner&=9
gtraster&=10
gtweich&=11
gthart&=12
gtkeine&=15
gtrot&=18
gtgruen&=17
gtblau&=16
k0&=22
k1&=23
k2&=24
k3&=25
k4&=26
k5&=27
k6&=28
'
tree29&=29 ! Kosten
tree29_adr%=0
kostfak&=1
sl&=2
gkosten&=4
'
tree30&=30 ! Select Filter
tree30_adr%=0
abs_filter&=1
'
tree31&=31 ! Select Fenster
tree31_adr%=0
ohnecopy&=1
mitcopy&=6
anz_rot&=3
phi_rot&=4
numohne&=5
ausricht_vector&=7
'
tree32&=32 ! Select Spiegel
tree32_adr%=0
anbox&=2
anachse&=1
'
tree33&=33
tree33_adr%=0
teil&=1
'
tree34&=34 ! Schnittpunkt
tree34_adr%=0
backschn&=3
fwdschn&=4
trimm&=5
knack&=6
lot&=7
teilen&=8
lang&=9
schnitt2&=10
schnittn&=11
delseg&=12
delel&=13
schmelz&=14
'
tree35&=35 ! Select Copy
tree35_adr%=0
copysing&=1
copymul&=2
cx&=4
cy&=5
canz&=6
cdist&=7
'
tree36&=36 ! Ausrichten
tree36_adr%=0
a_olinks&=1
a_oben&=2
a_orechts&=3
a_links&=4
a_mitte&=5
a_rechts&=6
a_ulinks&=7
a_unten&=8
a_urechts&=9
'
tree37&=37 ! Scalieren
tree37_adr%=0
scale_interactiv&=1
scale_numerisch&=2
scale_breite&=4
scale_hoehe&=5
'
tree38&=38 ! Ordner
tree38_adr%=0
ordnert&=1
ordnerok&=2
ordnerca&=3
'
tree39&=39 ! Kerning
tree39_adr%=0
kerning_box&=1
kerning_minus&=3
kerning_plus&=4
kerning_last&=2
kerning_next&=5
kerning_exit&=6
kerning_minus2&=9
kerning_plus2&=10
kerning_last2&=8
kerning_next2&=11
kerning_clear&=7
kerning_info&=13
kerning_pair&=15
'
tree40&=40 ! Plotter OUTPUT
tree40_adr%=0
pl100&=3
plschieber&=4
plschere&=7
plschereauf&=5
plscherezu&=6
plschere&=7
'
tree41&=41 ! Select Neigen
tree41_adr%=0
neige_grad&=2
neige_vertical&=3
neige_horizontal&=4
neige_interaktiv&=5
'
' FLAG:
'
undo!=FALSE
geschlossen!=FALSE
ok!=FALSE ! allgemein
layer_geladen!=FALSE ! ist Layer geladen
layer!=FALSE ! soll Layer gezeigt werden
window_fulled!=TRUE ! ist Fenster schon gro₧
voll_bild!=FALSE ! ist Fenster komplett auf Crt
eintragen!=FALSE ! ist eintragen aktiv
bogen!=FALSE
mtext!=FALSE
meditor!=FALSE
datei!=FALSE
fenster!=FALSE
schnittpunktm!=FALSE
loeschen!=FALSE ! ist loeschen aktiv
neues_polygon!=TRUE ! erster Punkt im Polygon
found!=FALSE ! gefunden bei Fangradius
marker!=FALSE ! sollen Marker gezeigt werden
marker_select!=FALSE ! soll Marker selectiert
modified!=FALSE ! wurde Vektorbild geändert
font_geladen!=FALSE ! ist ein Font geladen
outlined!=FALSE ! wurde Bitmap schon outlined
auto_schraff!=TRUE
schraff_fix_abst!=FALSE
einpassen!=FALSE
tangente!=FALSE
tangenten_lock!=TRUE
warn!=FALSE
gp_gl!=FALSE ! HPGL oder GPGL
tasten_rep!=FALSE
absolut!=TRUE
relativ!=FALSE
polar!=FALSE
absolut_old!=FALSE
polar_old!=FALSE
fangklein!=FALSE ! Fangradius gro₧
fadenkreuz!=FALSE
polygonmode!=TRUE ! Polygonmodus
ortho!=FALSE
grid!=FALSE
scrolled!=FALSE
move!=FALSE
drei_d!=FALSE
status_wechsel!=FALSE
grid_wechsel!=FALSE
swap!=FALSE
'
' ARRAY:
'
DIM smfdb%(8),dmfdb%(8),p%(8)
DIM z_smfdb%(8),z_dmfdb%(8),z_p%(8),q_dmfdb%(8)
DIM punkte_x%(p_max%),punkte_y%(p_max%),punkte_def|(p_max%),buffer%(p_max%/2)
DIM x_meta%(127),y_meta%(127),punkte_def1|(32)
ARRAYFILL punkte_def1|(),1
DIM bezier_x&(33),bezier_y&(33)
DIM m$(87)
DIM mk%(60,2)
DIM m_square%(5)
DIM z_editor%(32)
DIM z_ascii%(224),z_kerning&(224*16),z_daten&(224*280),z_pair&(224),z_pair|(224),z_pair_daten|(2000)
DIM sx1%(9),sy1%(9),sx2%(9),sy2%(9),sp1(9),sp2(9)
DIM zeilen_buffer$(60)
rette$=SPACE$(32000)
pfad$=SPACE$(80)
kerning_string$=SPACE$(60)
pfad_pic$=SPACE$(80)
pfad_img$=SPACE$(80)
pfad_vek$=SPACE$(80)
pfad_vek_root$=SPACE$(80)
pfad_cvg$=SPACE$(80)
pfad_fnt$=SPACE$(80)
pfad_cfn$=SPACE$(80)
default_font$=SPACE$(10)
programm$=SPACE$(10)
programm_font$=SPACE$(10)
test_datei$=SPACE$(10)
object$=SPACE$(80)
p_init1$=SPACE$(40)
p_init2$=SPACE$(40)
abc$="CutOut Test"
ma$="M"
da$="D"
cutout_font$="CUTOUTOFN"
calamus_font_grafik$=MKI$(159)+MKI$(15)+MKI$(1)+SPACE$(320)
ok$="OK"
ein_space$=" "
x_y$="X|Y"
erster$="1. "
zweiter$="2. "
help_on$="ON "
help_off$="OFF"
vek$="VEK"
cvg$="CVG"
img$="IMG"
plt$="PLT"
calamus$="CALAMUS"
cutout$="CutOut"
' ****************************************************************************
OPEN "I",#1,"SYS\LANGUAGE.DRV"
LINE INPUT #1,pd_menu$
LINE INPUT #1,pd_datei$
LINE INPUT #1,pd_editieren$
LINE INPUT #1,pd_fenster$
LINE INPUT #1,pd_schnittpunkt$
LINE INPUT #1,pd_bogen$
LINE INPUT #1,pd_text$
LINE INPUT #1,pd_zeicheneditor$
LINE INPUT #1,pd_extra$
LINE INPUT #1,pd_quit$
'
LINE INPUT #1,pd_optionen$
LINE INPUT #1,pd_marker_anzeigen$
LINE INPUT #1,pd_tangenten_anzeigen$
LINE INPUT #1,pd_fangradius_klein$
LINE INPUT #1,pd_polygon_modus$
LINE INPUT #1,pd_schnittpunkt_genau$
LINE INPUT #1,pd_koordinaten$
LINE INPUT #1,pd_element_selektieren$
LINE INPUT #1,pd_polygon_selektieren$
LINE INPUT #1,pd_warnmeldungen$
LINE INPUT #1,pd_skaliere_alles$
LINE INPUT #1,pd_punkte_nivellieren$
LINE INPUT #1,pd_tangente$
LINE INPUT #1,pd_plotflaeche$
LINE INPUT #1,pd_bezier_step_aendern$
LINE INPUT #1,pd_plotter_einstellung$
LINE INPUT #1,pd_kosten_faktor$
LINE INPUT #1,pd_pfad_sichern$
'
LINE INPUT #1,pd_figur$
LINE INPUT #1,pd_rechteck$
LINE INPUT #1,pd_n_eck$
LINE INPUT #1,pd_polygon_outline$
LINE INPUT #1,pd_aequidistante$
LINE INPUT #1,pd_frame$
LINE INPUT #1,pd_polygone_ausrichten$
LINE INPUT #1,pd_polygone_zentrieren$
LINE INPUT #1,pd_polygone_vereinen$
LINE INPUT #1,pd_polygone_fuellen$
LINE INPUT #1,pd_einzelne_punkte_loeschen$
'
LINE INPUT #1,pd_linie$
LINE INPUT #1,pd_bezier_vektor$
LINE INPUT #1,pd_bezier_einfuegen$
LINE INPUT #1,pd_tausche_bezier_vektor$
LINE INPUT #1,pd_knacken$
LINE INPUT #1,pd_trimmen$
LINE INPUT #1,pd_lot$
LINE INPUT #1,pd_verlaengern$
LINE INPUT #1,pd_teilen$
LINE INPUT #1,pd_messen$
LINE INPUT #1,pd_schnittp_2er$
LINE INPUT #1,pd_schnittp_n$
'
LINE INPUT #1,pd_effekt$
LINE INPUT #1,pd_parameter_schraffur$
LINE INPUT #1,pd_polygon_schraffieren$
LINE INPUT #1,pd_alles_schraffieren$
LINE INPUT #1,pd_schatten$
LINE INPUT #1,pd_einpassen$
LINE INPUT #1,pd_kugel$
'
LINE INPUT #1,lade$
LINE INPUT #1,sichere$
LINE INPUT #1,fuege_ein$
LINE INPUT #1,vektor$
LINE INPUT #1,macro$
LINE INPUT #1,daten$
LINE INPUT #1,zeichensatz$
LINE INPUT #1,kein$
LINE INPUT #1,keine$
LINE INPUT #1,ja_nein$
LINE INPUT #1,waehle$
LINE INPUT #1,fehler$
LINE INPUT #1,scannen$
LINE INPUT #1,pre_view$
LINE INPUT #1,ascii_importieren$
LINE INPUT #1,ascii_exportieren$
LINE INPUT #1,schriftblock$
LINE INPUT #1,radius_zu$
LINE INPUT #1,winkel_zu$
LINE INPUT #1,leider$
LINE INPUT #1,winkel_einstellen$
LINE INPUT #1,spiegelachse$
LINE INPUT #1,lupe_mal$
LINE INPUT #1,fensterbereich$
LINE INPUT #1,drehzentrum$
LINE INPUT #1,ordner_exist$
LINE INPUT #1,kein_leer$
LINE INPUT #1,suche_schnittpunkte$
LINE INPUT #1,gleiches_polygon$
LINE INPUT #1,bezugs$
LINE INPUT #1,zentriere$
LINE INPUT #1,huellkurve$
LINE INPUT #1,huellkurve1$
LINE INPUT #1,berechne$
LINE INPUT #1,rechte_taste$
LINE INPUT #1,endpunkt$
LINE INPUT #1,lot_an$
LINE INPUT #1,noname$
LINE INPUT #1,symbol$
LINE INPUT #1,orginal_fenster$
LINE INPUT #1,dmc_font$
LINE INPUT #1,bild_datei_zu$
LINE INPUT #1,stad_laden$
LINE INPUT #1,plotter_ist_off$
LINE INPUT #1,plot_datei$
LINE INPUT #1,kein_treiber$
LINE INPUT #1,schnittstelle_auf$
LINE INPUT #1,polygone_vereinen$
LINE INPUT #1,loesche_einzelne$
LINE INPUT #1,quelle$
LINE INPUT #1,ziel$
LINE INPUT #1,nivelliere$
LINE INPUT #1,alle_daten_l$
LINE INPUT #1,ganzer_zeichensatz$
LINE INPUT #1,font_daten_loeschen$
LINE INPUT #1,zeichen_matrix$
LINE INPUT #1,datei_existiert$
LINE INPUT #1,datei_ueberschreiben$
LINE INPUT #1,glaetten_mit$
LINE INPUT #1,gerade_bezier$
LINE INPUT #1,glaetten$
LINE INPUT #1,bereich$
LINE INPUT #1,path$
LINE INPUT #1,help_mittelpunkt$
LINE INPUT #1,help_radius$
LINE INPUT #1,help_position$
LINE INPUT #1,help_startwinkel$
LINE INPUT #1,help_endwinkel$
LINE INPUT #1,help_polygon$
LINE INPUT #1,help_punkt$
LINE INPUT #1,help_linie$
LINE INPUT #1,help_element$
LINE INPUT #1,help_verrund$
LINE INPUT #1,help_loesche$
LINE INPUT #1,help_trenn$
LINE INPUT #1,help_move$
LINE INPUT #1,help_sel$
LINE INPUT #1,help_move_window$
LINE INPUT #1,help_rahmen$
LINE INPUT #1,help_edit$
LINE INPUT #1,help_bezier$
LINE INPUT #1,help_status$
LINE INPUT #1,help_ortho$
LINE INPUT #1,help_grid$
LINE INPUT #1,help_free$
LINE INPUT #1,help_snap$
LINE INPUT #1,help_editor$
LINE INPUT #1,help_pfad$
CLOSE #1
' ****************************************************************************
integer%=VARPTR(punkte_x%(1))-VARPTR(punkte_x%(0)) ! Länge in Bytes Integer
'
z_editor%(0)=2048 ! Top Line Y
z_editor%(1)=3072 ! Ascent Line Y
z_editor%(2)=6144 ! Half Line Y
z_editor%(3)=11264 ! Base Line Y
z_editor%(4)=13952 ! Descent Line Y
z_editor%(5)=14336 ! Bottom Line Y
'
z_editor%(6)=0 ! Matrix links X
z_editor%(7)=16384 ! Matrix rechts X
z_editor%(8)=1280 ! Kerning links X
z_editor%(9)=1280 ! Kerning links X
z_editor%(10)=1280 ! Kerning links X
z_editor%(11)=1280 ! Kerning links X
z_editor%(12)=1280 ! Kerning links X
z_editor%(13)=1280 ! Kerning links X
z_editor%(14)=1280 ! Kerning links X
z_editor%(15)=1280 ! Kerning links X
z_editor%(16)=15104 ! Kerning rechts X
z_editor%(17)=15104 ! Kerning rechts X
z_editor%(18)=15104 ! Kerning rechts X
z_editor%(19)=15104 ! Kerning rechts X
z_editor%(20)=15104 ! Kerning rechts X
z_editor%(21)=15104 ! Kerning rechts X
z_editor%(22)=15104 ! Kerning rechts X
z_editor%(23)=15104 ! Kerning rechts X
z_editor%(24)=z_editor%(0) ! Kerning Y
z_editor%(25)=(z_editor%(5)-z_editor%(0))/8 ! Kerning Y
z_editor%(26)=z_editor%(24)+z_editor%(25) ! Kerning Y
z_editor%(27)=z_editor%(26)+z_editor%(25) ! Kerning Y
z_editor%(28)=z_editor%(27)+z_editor%(25) ! Kerning Y
z_editor%(29)=z_editor%(28)+z_editor%(25) ! Kerning Y
z_editor%(30)=z_editor%(29)+z_editor%(25) ! Kerning Y
z_editor%(31)=z_editor%(30)+z_editor%(25) ! Kerning Y
z_editor%(32)=0 ! Matrix oben Y
'
' ******************************************************************************
' * *
' * MENU INITIALISIERUNG *
' * *
' ******************************************************************************
'
BMOVE V:serien_nummer$,V:serien_nummer,8
BMOVE V:serien_nummer_vergleich$,V:serien_nummer_vergleich,8
regist_nr%=serien_nummer_vergleich
IF serien_nummer<>(serien_nummer_vergleich XOR magic%)
PRINT "SORRY HACKER"
PAUSE 300
SYSTEM
ENDIF
INLINE zasm_ptr%,4136
INLINE pack_img%,958
INLINE calc_bezier%,1050
INLINE p_num%,360
INLINE find_line%,356
INLINE kontour%,216
INLINE staddec%,184
INLINE imgdec%,228
INLINE findexcept%,52
INLINE findpointexcept%,70
mfang$=MKI$(7)+MKI$(7)+MKI$(1)+MKI$(0)+MKI$(1)
mfang$=mfang$+MKI$(&X1111111111111110)
mfang$=mfang$+MKI$(&X1111111111111110)
mfang$=mfang$+MKI$(&X1100001110000110)
mfang$=mfang$+MKI$(&X1100001110000110)
mfang$=mfang$+MKI$(&X1100001110000110)
mfang$=mfang$+MKI$(&X1100001110000110)
mfang$=mfang$+MKI$(&X1111110001111110)
mfang$=mfang$+MKI$(&X1111110001111110)
mfang$=mfang$+MKI$(&X1111110001111110)
mfang$=mfang$+MKI$(&X1100001110000110)
mfang$=mfang$+MKI$(&X1100001110000110)
mfang$=mfang$+MKI$(&X1100001110000110)
mfang$=mfang$+MKI$(&X1100001110000110)
mfang$=mfang$+MKI$(&X1111111111111110)
mfang$=mfang$+MKI$(&X1111111111111110)
mfang$=mfang$+MKI$(&X0)
'
mfang$=mfang$+MKI$(&X1111111111111110)
mfang$=mfang$+MKI$(&X1000000100000010)
mfang$=mfang$+MKI$(&X1000000100000010)
mfang$=mfang$+MKI$(&X1000000100000010)
mfang$=mfang$+MKI$(&X1000000100000010)
mfang$=mfang$+MKI$(&X1000000100000010)
mfang$=mfang$+MKI$(&X1000000000000010)
mfang$=mfang$+MKI$(&X1111110001111110)
mfang$=mfang$+MKI$(&X1000000000000010)
mfang$=mfang$+MKI$(&X1000000100000010)
mfang$=mfang$+MKI$(&X1000000100000010)
mfang$=mfang$+MKI$(&X1000000100000010)
mfang$=mfang$+MKI$(&X1000000100000010)
mfang$=mfang$+MKI$(&X1000000100000010)
mfang$=mfang$+MKI$(&X1111111111111110)
mfang$=mfang$+MKI$(&X0)
'
mfang_klein$=MKI$(7)+MKI$(7)+MKI$(1)+MKI$(0)+MKI$(1)
mfang_klein$=mfang_klein$+MKI$(&X0)
mfang_klein$=mfang_klein$+MKI$(&X0)
mfang_klein$=mfang_klein$+MKI$(&X11111111111000)
mfang_klein$=mfang_klein$+MKI$(&X11111111111000)
mfang_klein$=mfang_klein$+MKI$(&X11001110011000)
mfang_klein$=mfang_klein$+MKI$(&X11001110011000)
mfang_klein$=mfang_klein$+MKI$(&X11110001111000)
mfang_klein$=mfang_klein$+MKI$(&X11110001111000)
mfang_klein$=mfang_klein$+MKI$(&X11110001111000)
mfang_klein$=mfang_klein$+MKI$(&X11001110011000)
mfang_klein$=mfang_klein$+MKI$(&X11001110011000)
mfang_klein$=mfang_klein$+MKI$(&X11111111111000)
mfang_klein$=mfang_klein$+MKI$(&X11111111111000)
mfang_klein$=mfang_klein$+MKI$(&X0)
mfang_klein$=mfang_klein$+MKI$(&X0)
mfang_klein$=mfang_klein$+MKI$(&X0)
'
mfang_klein$=mfang_klein$+MKI$(&X0)
mfang_klein$=mfang_klein$+MKI$(&X0)
mfang_klein$=mfang_klein$+MKI$(&X0)
mfang_klein$=mfang_klein$+MKI$(&X1111111110000)
mfang_klein$=mfang_klein$+MKI$(&X1000100010000)
mfang_klein$=mfang_klein$+MKI$(&X1000100010000)
mfang_klein$=mfang_klein$+MKI$(&X1000000010000)
mfang_klein$=mfang_klein$+MKI$(&X1110001110000)
mfang_klein$=mfang_klein$+MKI$(&X1000000010000)
mfang_klein$=mfang_klein$+MKI$(&X1000100010000)
mfang_klein$=mfang_klein$+MKI$(&X1000100010000)
mfang_klein$=mfang_klein$+MKI$(&X1111111110000)
mfang_klein$=mfang_klein$+MKI$(&X0)
mfang_klein$=mfang_klein$+MKI$(&X0)
mfang_klein$=mfang_klein$+MKI$(&X0)
mfang_klein$=mfang_klein$+MKI$(&X0)
'
mdaten$=MKI$(7)+MKI$(7)+MKI$(1)+MKI$(0)+MKI$(1)
mdaten$=mdaten$+MKI$(&X1110000000)
mdaten$=mdaten$+MKI$(&X1110000000)
mdaten$=mdaten$+MKI$(&X1110000000)
mdaten$=mdaten$+MKI$(&X1110000000)
mdaten$=mdaten$+MKI$(&X1110000000)
mdaten$=mdaten$+MKI$(&X1110000000)
mdaten$=mdaten$+MKI$(&X1111110001111110)
mdaten$=mdaten$+MKI$(&X1111110001111110)
mdaten$=mdaten$+MKI$(&X1111110001111110)
mdaten$=mdaten$+MKI$(&X1110000000)
mdaten$=mdaten$+MKI$(&X1110000000)
mdaten$=mdaten$+MKI$(&X1110000000)
mdaten$=mdaten$+MKI$(&X1110000000)
mdaten$=mdaten$+MKI$(&X1110000000)
mdaten$=mdaten$+MKI$(&X1110000000)
mdaten$=mdaten$+MKI$(&X0)
'
mdaten$=mdaten$+MKI$(&X100000000)
mdaten$=mdaten$+MKI$(&X100000000)
mdaten$=mdaten$+MKI$(&X100000000)
mdaten$=mdaten$+MKI$(&X100000000)
mdaten$=mdaten$+MKI$(&X100000000)
mdaten$=mdaten$+MKI$(&X100000000)
mdaten$=mdaten$+MKI$(&X0)
mdaten$=mdaten$+MKI$(&X1111110001111110)
mdaten$=mdaten$+MKI$(&X0)
mdaten$=mdaten$+MKI$(&X100000000)
mdaten$=mdaten$+MKI$(&X100000000)
mdaten$=mdaten$+MKI$(&X100000000)
mdaten$=mdaten$+MKI$(&X100000000)
mdaten$=mdaten$+MKI$(&X100000000)
mdaten$=mdaten$+MKI$(&X100000000)
mdaten$=mdaten$+MKI$(&X0)
'
schwer$=MKI$(7)+MKI$(7)+MKI$(-1)+MKI$(0)+MKI$(1)
schwer$=schwer$+MKI$(&X0) !
schwer$=schwer$+MKI$(&X0)
schwer$=schwer$+MKI$(&X11111000000) !
schwer$=schwer$+MKI$(&X11111000000)
schwer$=schwer$+MKI$(&X1100111110000) !
schwer$=schwer$+MKI$(&X1100111110000)
schwer$=schwer$+MKI$(&X10000111111000) !
schwer$=schwer$+MKI$(&X10000111111000)
schwer$=schwer$+MKI$(&X10000111111000) !
schwer$=schwer$+MKI$(&X10000111111000)
schwer$=schwer$+MKI$(&X100000111111100) !
schwer$=schwer$+MKI$(&X100000111111100)
schwer$=schwer$+MKI$(&X100000111111100) !
schwer$=schwer$+MKI$(&X100000111111100)
schwer$=schwer$+MKI$(&X111111011111100) !!
schwer$=schwer$+MKI$(&X111111011111100)
schwer$=schwer$+MKI$(&X111111100000100) !
schwer$=schwer$+MKI$(&X111111100000100)
schwer$=schwer$+MKI$(&X111111100000100) !
schwer$=schwer$+MKI$(&X111111100000100)
schwer$=schwer$+MKI$(&X11111100001000) !
schwer$=schwer$+MKI$(&X11111100001000)
schwer$=schwer$+MKI$(&X11111100001000) !
schwer$=schwer$+MKI$(&X11111100001000)
schwer$=schwer$+MKI$(&X1111100110000) !
schwer$=schwer$+MKI$(&X1111100110000)
schwer$=schwer$+MKI$(&X11111000000) !
schwer$=schwer$+MKI$(&X11111000000)
schwer$=schwer$+MKI$(&X0) !
schwer$=schwer$+MKI$(&X0)
schwer$=schwer$+MKI$(&X0) !
schwer$=schwer$+MKI$(&X0)
pfad_read
reset
RESERVE -64*1024
DIM work%((FRE(0)-80*1024)/4)
daten_ptr%=V:work%(0)
work_space%=DIM?(work%())*4
KEYPAD 8
~RSRC_LOAD("SYS\CUTOUT.RSC")
~RSRC_GADDR(0,tree00&,tree0_adr%)
~RSRC_GADDR(0,tree01&,tree1_adr%)
~RSRC_GADDR(0,tree02&,tree2_adr%)
~RSRC_GADDR(0,tree03&,tree3_adr%)
~RSRC_GADDR(0,tree04&,tree4_adr%)
~RSRC_GADDR(0,tree05&,tree5_adr%)
~RSRC_GADDR(0,tree06&,tree6_adr%)
~RSRC_GADDR(0,tree07&,tree7_adr%)
~RSRC_GADDR(0,tree08&,tree8_adr%)
~RSRC_GADDR(0,tree09&,tree9_adr%)
~RSRC_GADDR(0,tree10&,tree10_adr%)
~RSRC_GADDR(0,tree11&,tree11_adr%)
~RSRC_GADDR(0,tree12&,tree12_adr%)
~RSRC_GADDR(0,tree13&,tree13_adr%)
~RSRC_GADDR(0,tree14&,tree14_adr%)
~RSRC_GADDR(0,tree15&,tree15_adr%)
~RSRC_GADDR(0,tree16&,tree16_adr%)
~RSRC_GADDR(0,tree17&,tree17_adr%)
~RSRC_GADDR(0,tree18&,tree18_adr%)
~RSRC_GADDR(0,tree19&,tree19_adr%)
~RSRC_GADDR(0,tree20&,tree20_adr%)
~RSRC_GADDR(0,tree21&,tree21_adr%)
~RSRC_GADDR(0,tree22&,tree22_adr%)
~RSRC_GADDR(0,tree23&,tree23_adr%)
~RSRC_GADDR(0,tree24&,tree24_adr%)
~RSRC_GADDR(0,tree25&,tree25_adr%)
~RSRC_GADDR(0,tree26&,tree26_adr%)
~RSRC_GADDR(0,tree27&,tree27_adr%)
~RSRC_GADDR(0,tree28&,tree28_adr%)
~RSRC_GADDR(0,tree29&,tree29_adr%)
~RSRC_GADDR(0,tree30&,tree30_adr%)
~RSRC_GADDR(0,tree31&,tree31_adr%)
~RSRC_GADDR(0,tree32&,tree32_adr%)
~RSRC_GADDR(0,tree33&,tree33_adr%)
~RSRC_GADDR(0,tree34&,tree34_adr%)
~RSRC_GADDR(0,tree35&,tree35_adr%)
~RSRC_GADDR(0,tree36&,tree36_adr%)
~RSRC_GADDR(0,tree37&,tree37_adr%)
~RSRC_GADDR(0,tree38&,tree38_adr%)
~RSRC_GADDR(0,tree39&,tree39_adr%)
~RSRC_GADDR(0,tree40&,tree40_adr%)
~RSRC_GADDR(0,tree41&,tree41_adr%)
~FORM_CENTER(tree6_adr%)
~FORM_CENTER(tree7_adr%)
~FORM_CENTER(tree8_adr%)
~FORM_CENTER(tree10_adr%)
~FORM_CENTER(tree11_adr%)
~FORM_CENTER(tree12_adr%)
~FORM_CENTER(tree13_adr%)
~FORM_CENTER(tree14_adr%)
~FORM_CENTER(tree15_adr%)
~FORM_CENTER(tree16_adr%)
~FORM_CENTER(tree17_adr%)
~FORM_CENTER(tree18_adr%)
~FORM_CENTER(tree19_adr%)
~FORM_CENTER(tree20_adr%)
~FORM_CENTER(tree21_adr%)
~FORM_CENTER(tree22_adr%)
~FORM_CENTER(tree23_adr%)
~FORM_CENTER(tree24_adr%)
~FORM_CENTER(tree26_adr%)
~FORM_CENTER(tree27_adr%)
~FORM_CENTER(tree28_adr%)
~FORM_CENTER(tree29_adr%)
~FORM_CENTER(tree30_adr%)
~FORM_CENTER(tree31_adr%)
~FORM_CENTER(tree32_adr%)
~FORM_CENTER(tree33_adr%)
~FORM_CENTER(tree35_adr%)
~FORM_CENTER(tree36_adr%)
~FORM_CENTER(tree37_adr%)
~FORM_CENTER(tree38_adr%)
~FORM_CENTER(tree39_adr%)
~FORM_CENTER(tree40_adr%)
~FORM_CENTER(tree41_adr%)
xt6&=DPEEK(tree6_adr%+16)
yt6&=DPEEK(tree6_adr%+18)
bt6&=DPEEK(tree6_adr%+20)
ht6&=DPEEK(tree6_adr%+22)
xt7&=DPEEK(tree7_adr%+16)
yt7&=DPEEK(tree7_adr%+18)
bt7&=DPEEK(tree7_adr%+20)
ht7&=DPEEK(tree7_adr%+22)
xt8&=DPEEK(tree8_adr%+16)
yt8&=DPEEK(tree8_adr%+18)
bt8&=DPEEK(tree8_adr%+20)
ht8&=DPEEK(tree8_adr%+22)
xt10&=DPEEK(tree10_adr%+16)
yt10&=DPEEK(tree10_adr%+18)
bt10&=DPEEK(tree10_adr%+20)
ht10&=DPEEK(tree10_adr%+22)
xt11&=DPEEK(tree11_adr%+16)
yt11&=DPEEK(tree11_adr%+18)
bt11&=DPEEK(tree11_adr%+20)
ht11&=DPEEK(tree11_adr%+22)
xt12&=DPEEK(tree12_adr%+16)
yt12&=DPEEK(tree12_adr%+18)
bt12&=DPEEK(tree12_adr%+20)
ht12&=DPEEK(tree12_adr%+22)
xt13&=DPEEK(tree13_adr%+16)
yt13&=DPEEK(tree13_adr%+18)
bt13&=DPEEK(tree13_adr%+20)
ht13&=DPEEK(tree13_adr%+22)
xt14&=DPEEK(tree14_adr%+16)
yt14&=DPEEK(tree14_adr%+18)
bt14&=DPEEK(tree14_adr%+20)
ht14&=DPEEK(tree14_adr%+22)
xt15&=DPEEK(tree15_adr%+16)
yt15&=DPEEK(tree15_adr%+18)
bt15&=DPEEK(tree15_adr%+20)
ht15&=DPEEK(tree15_adr%+22)
xt16&=DPEEK(tree16_adr%+16)
yt16&=DPEEK(tree16_adr%+18)
bt16&=DPEEK(tree16_adr%+20)
ht16&=DPEEK(tree16_adr%+22)
xt17&=DPEEK(tree17_adr%+16)
yt17&=DPEEK(tree17_adr%+18)
bt17&=DPEEK(tree17_adr%+20)
ht17&=DPEEK(tree17_adr%+22)
xt18&=DPEEK(tree18_adr%+16)
yt18&=DPEEK(tree18_adr%+18)
bt18&=DPEEK(tree18_adr%+20)
ht18&=DPEEK(tree18_adr%+22)
xt19&=DPEEK(tree19_adr%+16)
yt19&=DPEEK(tree19_adr%+18)
bt19&=DPEEK(tree19_adr%+20)
ht19&=DPEEK(tree19_adr%+22)
xt20&=DPEEK(tree20_adr%+16)
yt20&=DPEEK(tree20_adr%+18)
bt20&=DPEEK(tree20_adr%+20)
ht20&=DPEEK(tree20_adr%+22)
xt21&=DPEEK(tree21_adr%+16)
yt21&=DPEEK(tree21_adr%+18)
bt21&=DPEEK(tree21_adr%+20)
ht21&=DPEEK(tree21_adr%+22)
xt22&=DPEEK(tree22_adr%+16)
yt22&=DPEEK(tree22_adr%+18)
bt22&=DPEEK(tree22_adr%+20)
ht22&=DPEEK(tree22_adr%+22)
xt23&=DPEEK(tree23_adr%+16)
yt23&=DPEEK(tree23_adr%+18)
bt23&=DPEEK(tree23_adr%+20)
ht23&=DPEEK(tree23_adr%+22)
DPOKE tree24_adr%+16,DPEEK(tree24_adr%+16)+200
xt24&=DPEEK(tree24_adr%+16)
yt24&=DPEEK(tree24_adr%+18)
bt24&=DPEEK(tree24_adr%+20)
ht24&=DPEEK(tree24_adr%+22)
xt26&=DPEEK(tree26_adr%+16)
yt26&=DPEEK(tree26_adr%+18)
bt26&=DPEEK(tree26_adr%+20)
ht26&=DPEEK(tree26_adr%+22)
xt27&=DPEEK(tree27_adr%+16)
yt27&=DPEEK(tree27_adr%+18)
bt27&=DPEEK(tree27_adr%+20)
ht27&=DPEEK(tree27_adr%+22)
xt28&=DPEEK(tree28_adr%+16)
yt28&=DPEEK(tree28_adr%+18)
bt28&=DPEEK(tree28_adr%+20)
ht28&=DPEEK(tree28_adr%+22)
xt29&=DPEEK(tree29_adr%+16)
yt29&=DPEEK(tree29_adr%+18)
bt29&=DPEEK(tree29_adr%+20)
ht29&=DPEEK(tree29_adr%+22)
xt30&=DPEEK(tree30_adr%+16)
yt30&=DPEEK(tree30_adr%+18)
bt30&=DPEEK(tree30_adr%+20)
ht30&=DPEEK(tree30_adr%+22)
xt31&=DPEEK(tree31_adr%+16)
yt31&=DPEEK(tree31_adr%+18)
bt31&=DPEEK(tree31_adr%+20)
ht31&=DPEEK(tree31_adr%+22)
xt32&=DPEEK(tree32_adr%+16)
yt32&=DPEEK(tree32_adr%+18)
bt32&=DPEEK(tree32_adr%+20)
ht32&=DPEEK(tree32_adr%+22)
xt35&=DPEEK(tree35_adr%+16)
yt35&=DPEEK(tree35_adr%+18)
bt35&=DPEEK(tree35_adr%+20)
ht35&=DPEEK(tree35_adr%+22)
xt33&=DPEEK(tree33_adr%+16)
yt33&=DPEEK(tree33_adr%+18)
bt33&=DPEEK(tree33_adr%+20)
ht33&=DPEEK(tree33_adr%+22)
xt36&=DPEEK(tree36_adr%+16)
yt36&=DPEEK(tree36_adr%+18)
bt36&=DPEEK(tree36_adr%+20)
ht36&=DPEEK(tree36_adr%+22)
xt37&=DPEEK(tree37_adr%+16)
yt37&=DPEEK(tree37_adr%+18)
bt37&=DPEEK(tree37_adr%+20)
ht37&=DPEEK(tree37_adr%+22)
xt38&=DPEEK(tree38_adr%+16)
yt38&=DPEEK(tree38_adr%+18)
bt38&=DPEEK(tree38_adr%+20)
ht38&=DPEEK(tree38_adr%+22)
xt39&=DPEEK(tree39_adr%+16)
yt39&=DPEEK(tree39_adr%+18)
bt39&=DPEEK(tree39_adr%+20)
ht39&=DPEEK(tree39_adr%+22)
xt40&=DPEEK(tree40_adr%+16)
yt40&=DPEEK(tree40_adr%+18)
bt40&=DPEEK(tree40_adr%+20)
ht40&=DPEEK(tree40_adr%+22)
xt41&=DPEEK(tree41_adr%+16)
yt41&=DPEEK(tree41_adr%+18)
bt41&=DPEEK(tree41_adr%+20)
ht41&=DPEEK(tree41_adr%+22)
bt_output&=OB_W(tree40_adr%,pl100&)
CHAR{{OB_SPEC(tree6_adr%,t_hoehe&)}}=STR$(INT(zeichen_hoehe%/100))
CHAR{{OB_SPEC(tree7_adr%,zabs&)}}=STR$(INT(zeilen_abstand_prozent%))
CHAR{{OB_SPEC(tree9_adr%,z_char&)}}=CHR$(z_ascii_old%+32)
CHAR{{OB_SPEC(tree8_adr%,string_text&)}}=abc$
CHAR{{OB_SPEC(tree12_adr%,bstep&)}}=STR$(b_vari/100)
CHAR{{OB_SPEC(tree13_adr%,punkte&)}}=STR$(pointer%)
CHAR{{OB_SPEC(tree13_adr%,rest&)}}=STR$(p_max%-pointer%)
CHAR{{OB_SPEC(tree13_adr%,version&)}}=revision$
CHAR{{OB_SPEC(tree14_adr%,rx1&)}}=STR$(folie_x%)
CHAR{{OB_SPEC(tree14_adr%,ry1&)}}=STR$(folie_y%)
CHAR{{OB_SPEC(tree14_adr%,rx2&)}}=STR$(folie_x2%)
CHAR{{OB_SPEC(tree14_adr%,ry2&)}}=STR$(folie_y2%)
CHAR{{OB_SPEC(tree14_adr%,rx3&)}}=STR$(folie_x3%)
CHAR{{OB_SPEC(tree14_adr%,ry3&)}}=STR$(folie_y3%)
CHAR{{OB_SPEC(tree15_adr%,p_init1&)}}=p_init1$
CHAR{{OB_SPEC(tree15_adr%,p_init2&)}}=p_init2$
CHAR{{OB_SPEC(tree15_adr%,overcut&)}}=STR$(overcut|/10)
CHAR{{OB_SPEC(tree15_adr%,ma&)}}=ma$
CHAR{{OB_SPEC(tree15_adr%,da&)}}=da$
CHAR{{OB_SPEC(tree17_adr%,outl&)}}="3.0"
CHAR{{OB_SPEC(tree18_adr%,schraffd&)}}=STR$(schraff_dist/100)
CHAR{{OB_SPEC(tree18_adr%,schraffi&)}}=STR$(schraff_inc/100)
CHAR{{OB_SPEC(tree18_adr%,schraffw&)}}=STR$(schraff_winkel)
CHAR{{OB_SPEC(tree18_adr%,schrafix&)}}=STR$(schraff_fix_abst)
CHAR{{OB_SPEC(tree21_adr%,t_step&)}}=STR$(bit_count_max|)
CHAR{{OB_SPEC(tree21_adr%,t_gerade&)}}=STR$(geraden_fehler|)
CHAR{{OB_SPEC(tree21_adr%,t_schmutz&)}}=STR$(schmutz_filter%)
CHAR{{OB_SPEC(tree21_adr%,bschwelle&)}}=STR$(lange_gerade%/100)
CHAR{{OB_SPEC(tree21_adr%,knickwinkel&)}}=STR$(CINT(DEG(knick_winkel_max)))
CHAR{{OB_SPEC(tree21_adr%,bogen_max&)}}=STR$(CINT(DEG(bogen_max*2)))
CHAR{{OB_SPEC(tree21_adr%,abweichung_gerade&)}}=STR$(abweichung_gerade%/100)
CHAR{{OB_SPEC(tree22_adr%,scann_x&)}}="1664"
CHAR{{OB_SPEC(tree22_adr%,scann_y&)}}="800"
CHAR{{OB_SPEC(tree23_adr%,radius&)}}="10"
CHAR{{OB_SPEC(tree27_adr%,calamus_nr&)}}=STR$(calamus_nr%)
CHAR{{OB_SPEC(tree29_adr%,kostfak&)}}=STR$(kostfak)
CHAR{{OB_SPEC(tree31_adr%,anz_rot&)}}="3"
CHAR{{OB_SPEC(tree31_adr%,phi_rot&)}}="90"
OB_STATE(tree15_adr%,rs232&)=state_rs232&+16
OB_STATE(tree15_adr%,cent&)=state_rs232& XOR 1+16
OB_STATE(tree15_adr%,hp&)=state_hp&+16
OB_STATE(tree15_adr%,gp&)=state_hp& XOR 1+16
OB_STATE(tree26_adr%,absolut&)=absolut!+18
OB_STATE(tree26_adr%,relativ&)=absolut!+17
OB_STATE(tree26_adr%,polar&)=absolut!+17
IF gdu=1
OB_STATE(tree15_adr%,gdu01&)=17
ELSE
IF gdu=2.5
OB_STATE(tree15_adr%,gdu025&)=17
ELSE
IF gdu=5
OB_STATE(tree15_adr%,gdu05&)=17
ELSE
OB_STATE(tree15_adr%,gdu1&)=17
ENDIF
ENDIF
ENDIF
OB_STATE(tree1_adr%,lock&)=1
IF mimaki!
OB_STATE(tree15_adr%,gdu05&)=17
OB_STATE(tree15_adr%,gdu01&)=8
OB_STATE(tree15_adr%,gdu025&)=8
OB_STATE(tree15_adr%,gdu1&)=8
OB_STATE(tree15_adr%,rs232&)=17
OB_STATE(tree15_adr%,mgl&)=17
OB_STATE(tree15_adr%,cent&)=16
OB_STATE(tree15_adr%,hp&)=16
OB_STATE(tree15_adr%,gp&)=16
ELSE
OB_STATE(tree15_adr%,mgl&)=8
ENDIF
~WIND_GET(0,4) ! get desk size
BMOVE GINTOUT+2,tree0_adr%+16,8 ! set into rsc
BMOVE GINTOUT+2,tree1_adr%+16,8 ! set into rsc
BMOVE GINTOUT+2,tree2_adr%+16,8 ! set into rsc
BMOVE GINTOUT+2,tree3_adr%+16,8 ! set into rsc
BMOVE GINTOUT+2,tree4_adr%+16,8 ! set into rsc
BMOVE GINTOUT+2,tree5_adr%+16,8 ! set into rsc
BMOVE GINTOUT+2,tree9_adr%+16,8 ! set into rsc
BMOVE GINTOUT+2,tree25_adr%+16,8 ! set into rsc
BMOVE GINTOUT+2,tree34_adr%+16,8 ! set into rsc
wind_newdesk(tree0_adr%,0) ! install Datei Baum
IF default_font$<>""
datei$=ein_space$
IF EXIST(pfad_fnt$+"\"+default_font$)
load_font(pfad_fnt$+"\"+default_font$)
programm_font$=LEFT$(default_font$,LEN(default_font$)-4)
ELSE
make_new_font(-1)
ENDIF
ELSE
make_new_font(-1)
ENDIF
m$(0)=""
m$(1)=" CUTOUT"
m$(2)="--------------------"
m$(3)=CHR$(2)
m$(4)=CHR$(3)
m$(5)=CHR$(4)
m$(6)=CHR$(5)
m$(7)=CHR$(6)
m$(8)=CHR$(7)
m$(9)=CHR$(8)
m$(10)=""
m$(11)=pd_menu$
m$(12)=pd_datei$
m$(13)=pd_editieren$
m$(14)=pd_fenster$
m$(15)=pd_schnittpunkt$
m$(16)=pd_bogen$
m$(17)="----------------------"
m$(18)=pd_text$
m$(19)=pd_zeicheneditor$
m$(20)=m$(17)
m$(21)=pd_extra$
m$(22)=m$(17)
m$(23)=pd_quit$
m$(24)=""
m$(25)=pd_optionen$
m$(26)=pd_marker_anzeigen$
m$(27)=pd_tangenten_anzeigen$
m$(28)=pd_fangradius_klein$
m$(29)=pd_polygon_modus$
m$(30)=pd_schnittpunkt_genau$
m$(31)=pd_koordinaten$
m$(32)=pd_element_selektieren$
m$(33)=pd_polygon_selektieren$
m$(34)=pd_warnmeldungen$
m$(35)="---------------------------"
m$(36)=pd_skaliere_alles$
m$(37)=m$(35)
m$(38)=pd_punkte_nivellieren$
m$(39)=pd_tangente$
m$(40)=m$(35)
m$(41)=pd_plotflaeche$
m$(42)=pd_bezier_step_aendern$
m$(43)=pd_plotter_einstellung$
m$(44)=pd_kosten_faktor$
m$(45)=pd_pfad_sichern$
m$(46)=""
m$(47)=pd_figur$
m$(48)=pd_rechteck$
m$(49)=pd_n_eck$
m$(50)=pd_polygon_outline$
m$(51)=pd_aequidistante$
m$(52)=pd_frame$
m$(53)="---------------------------"
m$(54)=pd_polygone_ausrichten$
m$(55)=pd_polygone_zentrieren$
m$(56)=pd_polygone_vereinen$
m$(57)=pd_polygone_fuellen$
m$(58)=m$(53)
m$(59)=pd_einzelne_punkte_loeschen$
m$(60)=""
m$(61)=pd_linie$
m$(62)=pd_bezier_vektor$
m$(63)=pd_bezier_einfuegen$
m$(64)=pd_tausche_bezier_vektor$
m$(65)=m$(53)
m$(66)=pd_knacken$
m$(67)=pd_trimmen$
m$(68)=pd_lot$
m$(69)=pd_verlaengern$
m$(70)=pd_teilen$
m$(71)=pd_messen$
m$(72)=m$(53)
m$(73)=pd_schnittp_2er$
m$(74)=pd_schnittp_n$
m$(75)=""
m$(76)=pd_effekt$
m$(77)=pd_parameter_schraffur$
m$(78)=pd_polygon_schraffieren$
m$(79)=pd_alles_schraffieren$
m$(80)="------------------------"
m$(81)=pd_schatten$
m$(82)=pd_einpassen$
m$(83)=m$(80)
m$(84)=pd_kugel$
m$(85)=""
m$(86)=""
MENU m$()
IF fangklein!
MENU 28,1
ENDIF
IF polygonmode!
MENU 29,1
ENDIF
IF warn!
MENU 34,1
ENDIF
CLIP 0,0,639,399 OFFSET 0,0
DEFTEXT 1,0,0,6
COLOR 1
TEXT 400,7,"Zoom X:"
TEXT 400,15,"Zoom Y:"
TEXT 540,7,"X:"
TEXT 540,15,"Y:"
DEFTEXT 1,0,0,4
TEXT 624,7,"mm"
TEXT 624,15,"mm"
LINE 536,0,536,20
LINE 396,0,396,20
'
~FORM_DIAL(3,0,0,0,0,0,0,desk_breite&,desk_hoehe&) !redraw all
'
layer!=FALSE
zoom=1
x_layer%=folie_x%
y_layer%=folie_y%
x_layero%=x_layer%
y_layero%=y_layer%
res_x%=x_layer%
res_y%=y_layer%
x_offset&=0
y_offset&=0
res_x_old%=x_layer%
res_y_old%=y_layer%
x_offset_old&=0
y_offset_old&=0
pointer%=0
get_desktop
scrb_old&=scrb&
scrh_old&=scrh&
CLOSEW 1
programm$=noname$
INT{WINDTAB+2}=&X111111000000
INT{WINDTAB+4}=scrx&
INT{WINDTAB+6}=scry&
INT{WINDTAB+8}=scrb&
INT{WINDTAB+10}=scrh&
help_titel
OPENW 1
calc_slid
~WIND_GET(1,4,x_win&,y_win&,b_window&,h_window&)
neues_polygon!=TRUE
do_redraw
DEFMOUSE 3
p_zoom(zoom*100,zoom*100)
CHAR{{OB_SPEC(tree14_adr%,rx1&)}}=STR$(x_layer%)
CHAR{{OB_SPEC(tree14_adr%,ry1&)}}=STR$(y_layer%)
' test_vollbild
'
~OBJC_OFFSET(tree28_adr%,gtprewin&,gtxv&,gtyv&)
gtxv&=gtxv&-x_win&+1
gtyv&=gtyv&-y_win&+1
'
ON MENU MESSAGE GOSUB message
ON MENU BUTTON 1,1,1 GOSUB button
ON MENU GOSUB menu
ON MENU KEY GOSUB key
' ON ERROR GOSUB fehler
'
'
REPEAT
ON MENU
UNTIL end!
'
IF modified!
IF pointer%>0
ALERT 3,"| "+sichere$+daten$,1,ja_nein$,i%
IF i%=1
@save_vektor
ENDIF
ENDIF
ENDIF
'
' Bei fertigen Programmen hier nur QUIT
'
reset
~WIND_GET(0,10)
IF DPEEK(GINTOUT+2)
ALERT 1,"Accessories",1,"Close|Quit",i%
IF i%=2
QUIT
ENDIF
REPEAT
~WIND_GET(0,10)
UNTIL DPEEK(GINTOUT+2)=0
ENDIF
RESERVE ! XBIOS(2)-HIMEM+FRE(0)-16384
'
PROCEDURE fehler
ALERT 1,fehler$,1,leider$,i%
' RESUME NEXT
RETURN
'
'
PROCEDURE get_undo
LOCAL dp%
dp%=daten_ptr%
IF (pointer%*9+1<work_space%) AND (NOT layer_geladen!)
LONG{dp%}=pointer%
ADD dp%,4
undo!=TRUE
BMOVE VARPTR(punkte_x%(0)),dp%,pointer%*4
ADD dp%,pointer%*4
BMOVE VARPTR(punkte_y%(0)),dp%,pointer%*4
ADD dp%,pointer%*4
BMOVE VARPTR(punkte_def|(0)),dp%,pointer%
undo!=TRUE
ELSE
undo!=FALSE
ENDIF
RETURN
'
PROCEDURE put_undo
LOCAL dp%
IF undo!
dp%=daten_ptr%
pointer%=LONG{dp%}
ADD dp%,4
BMOVE dp%,VARPTR(punkte_x%(0)),pointer%*4
ADD dp%,pointer%*4
BMOVE dp%,VARPTR(punkte_y%(0)),pointer%*4
ADD dp%,pointer%*4
BMOVE dp%,VARPTR(punkte_def|(0)),pointer%
undo!=FALSE
do_redraw
ENDIF
RETURN
'
PROCEDURE output_drucker
LOCAL handle&,x_resi&,y_resi&,z_old
IF GDOS?
ERASE work%()
IF FRE(0)>250000
RESERVE -250000
handle&=V_OPNWK(21)
IF handle&<>0
V~H=handle&
x_resi&=INTOUT(0)
y_resi&=INTOUT(1)
~V_CLRWK()
z_old=zoom
zoom=4
redraw_ohne(0)
~V_UPDWK()
~V_CLSWK()
zoom=z_old
ELSE
ENDIF
RESERVE
ELSE
ENDIF
DIM work%((FRE(0)-80*1024)/4)
daten_ptr%=V:work%(0)
work_space%=DIM?(work%())*4
ELSE
ENDIF
RETURN
'
'
PROCEDURE scan_a1
ALERT 3,"| SCAN Hochformat: ",1,"A3|A2|A1",i%
SELECT i%
CASE 1
scann_x%=INT(17*400/8) !17
scann_y%=INT(12*400) !12
CASE 2
scann_x%=INT(25*400/8)
scann_y%=INT(17*400)
CASE 3
scann_x%=INT(34*400/8)
scann_y%=INT(25*400)
ENDSELECT
scan_graphtec(3,400,0,0,scann_x%,scann_y%)
RETURN
'
PROCEDURE scan_graphtec(device&,dpi&,x_0%,y_0%,bytes_x%,lines_y%)
LOCAL command_bytes&,bytes_to_transfer%,transfer_dir&
LOCAL y_offset%,block&,command_bytes&,bytes_to_transfer%
' IF FN test_unit_ready(device&)=0
set_graphtec_window(device&,dpi&,x_0%,y_0%,bytes_x%,lines_y%)
command_bytes&=10
block&=&HFFFF DIV bytes_x% DIV 3
bytes_to_transfer%=bytes_x%*block&*3
transfer_dir&=0 ! LESEN
command|(0)=&H28
command|(1)=0
command|(2)=0
command|(3)=0
command|(4)=0
command|(5)=0
command|(6)=0
command|(7)=0
command|(8)=0
command|(9)=0
WORD{V:command|(7)}=block&
'
anzahl&=lines_y% DIV block&
rest&=lines_y% MOD block&
y_offset%=0
FOR i%=1 TO anzahl&
$c+
fehler%=C:scsi%(device&,command_bytes&,bytes_to_transfer%,transfer_dir&,L:V:command|(0),L:daten_ptr%+y_offset%)
$c-
ADD y_offset%,block&*bytes_x%
NEXT i%
IF rest&<>0
bytes_to_transfer%=bytes_x%*rest&*3
WORD{V:command|(7)}=rest&
$c+
fehler%=C:scsi%(device&,command_bytes&,bytes_to_transfer%,transfer_dir&,L:V:command|(0),L:daten_ptr%+y_offset%)
$c-
ENDIF
' status&=AND(CARD(fehler%),&X11110)
' message&=CARD(SWAP(fehler%))
layer!=TRUE
layer_geladen!=TRUE
voll_bild!=TRUE
outlined!=FALSE
do_change_aufloesung(bytes_x%*8,lines_y%,1)
init_bit_blit
p_zoom(zoom*100,zoom*100)
do_redraw
' ENDIF
RETURN
'
PROCEDURE set_graphtec_window(device&,dpi&,x_0%,y_0%,bytes_x%,lines_y%)
LOCAL command_bytes&,bytes_to_transfer%,transfer_dir&
command_bytes&=10
bytes_to_transfer%=53
transfer_dir&=1 ! LESEN (1=SCHREIBEN)
command|(0)=&H24
command|(1)=0
command|(2)=0
command|(3)=0
command|(4)=0
command|(5)=0
command|(6)=0
command|(7)=0
command|(8)=bytes_to_transfer%
command|(9)=0
FOR i%=0 TO 6
buffer|(i%)=0
NEXT i%
FOR i%=38 TO 47
buffer|(i%)=0
NEXT i%
buffer|(7)=45 ! Window Descriptor Block Length
buffer|(8)=0 ! Window ID
buffer|(9)=0 ! reserved
WORD{V:buffer|(10)}=dpi& ! X resolution
WORD{V:buffer|(12)}=dpi& ! Y resolution
LONG{V:buffer|(14)}=x_0%*24 ! X Upper Left
LONG{V:buffer|(18)}=y_0%*3 ! Y Upper Left
LONG{V:buffer|(22)}=bytes_x%*24 ! Width
LONG{V:buffer|(26)}=lines_y%*3 ! Length
buffer|(30)=0 ! reserved
buffer|(31)=0 ! Kontrast
buffer|(32)=0 ! reserved
buffer|(33)=0 ! Image composition
buffer|(34)=1 ! Bits per Pixel
buffer|(35)=0 ! reserved
buffer|(36)=0 ! reserved
buffer|(37)=0 ! Reverse Image
buffer|(48)=2 ! Cell length
buffer|(49)=5 ! Function Code
buffer|(50)=1 ! Fine Line
buffer|(51)=2 ! Cell length
buffer|(52)=6 ! Function Code
buffer|(53)=1 ! Scann Speed
$c+
fehler%=C:scsi%(device&,command_bytes&,bytes_to_transfer%,transfer_dir&,L:V:command|(0),L:V:buffer|(0))
$c-
RETURN
'
FUNCTION test_unit_ready(device&)
command_bytes&=6
bytes_to_transfer%=1
transfer_dir&=0 ! LESEN (1=SCHREIBEN)
command|(0)=0
command|(1)=0
command|(2)=0
command|(3)=0
command|(4)=bytes_to_transfer%
command|(5)=0
'
$c+
fehler%=C:scsi%(device&,command_bytes&,L:bytes_to_transfer%,transfer_dir&,L:V:command|(0),L:V:buffer|(0))
$c-
status&=AND(CARD(fehler%),&X11110)
message&=CARD(SWAP(fehler%))
'
RETURN status&
ENDFUNC
'
'
PROCEDURE gt_info(i$)
CHAR{{OB_SPEC(tree28_adr%,gtstate&)}}=i$
~OBJC_DRAW(tree28_adr%,gtstate&,8,xt28&,yt28&,bt28&,ht28&)
RETURN
'
PROCEDURE dpi_change(prex0&,prey0&,prex0_min&,prey0_min&)
CHAR{{OB_SPEC(tree28_adr%,gtdpi&)}}=STR$(gtdpiv&)
~OBJC_DRAW(tree28_adr%,gtdpi&,8,xt28&,yt28&,bt28&,ht28&)
CHAR{{OB_SPEC(tree28_adr%,gtb&)}}=STR$(AND(INT(gtbv&/25.4*gtdpiv&),&HFFF8))
CHAR{{OB_SPEC(tree28_adr%,gth&)}}=STR$(AND(INT(gthv&/25.4*gtdpiv&),&HFFF8))
~OBJC_DRAW(tree28_adr%,gtb&,8,xt28&,yt28&,bt28&,ht28&)
~OBJC_DRAW(tree28_adr%,gth&,8,xt28&,yt28&,bt28&,ht28&)
CHAR{{OB_SPEC(tree28_adr%,gtx&)}}=STR$(AND(INT((prex0&-prex0_min&)/25.4*gtdpiv&),&HFFF8))
CHAR{{OB_SPEC(tree28_adr%,gty&)}}=STR$(AND(INT((prey0&-prey0_min&)/25.4*gtdpiv&),&HFFF8))
~OBJC_DRAW(tree28_adr%,gtx&,8,xt28&,yt28&,bt28&,ht28&)
~OBJC_DRAW(tree28_adr%,gty&,8,xt28&,yt28&,bt28&,ht28&)
RETURN
'
PROCEDURE gt_6000
LOCAL prex0&,prey0&,prex0_min&,prey0_min&,x_changed&,y_changed&
LOCAL prex&,prey&,gthalbton&
DEFMOUSE 0
SETMOUSE xt28&+240,yt28&+310,0
CLIP 0,0,desk_breite&,desk_hoehe& OFFSET x_win&,y_win&
~OBJC_OFFSET(tree28_adr%,gtprewin&,prex&,prey&)
gthalbton&=1
prex0&=prex&-x_win&+1
prey0&=prey&-y_win&+1
prex0_min&=prex0&
prey0_min&=prey0&
prex0_max&=prex0&+217
prey0_max&=prey0&+297
prex0&=gtxv&
prey0&=gtyv&
'
CHAR{{OB_SPEC(tree28_adr%,gtx&)}}=STR$(AND(INT((prex0&-prex0_min&)/25.4*gtdpiv&),&HFFF8))
CHAR{{OB_SPEC(tree28_adr%,gty&)}}=STR$(AND(INT((prey0&-prey0_min&)/25.4*gtdpiv&),&HFFF8))
CHAR{{OB_SPEC(tree28_adr%,gtb&)}}=STR$(AND(INT(gtbv&/25.4*gtdpiv&),&HFFF8))
CHAR{{OB_SPEC(tree28_adr%,gth&)}}=STR$(AND(INT(gthv&/25.4*gtdpiv&),&HFFF8))
CHAR{{OB_SPEC(tree28_adr%,gtdpi&)}}=STR$(gtdpiv&)
CHAR{{OB_SPEC(tree28_adr%,gtstate&)}}=waehle$
GET xt28&-4,yt28&-4,xt28&+bt28&+4,yt28&+ht28&+4,rette$
~OBJC_DRAW(tree28_adr%,0,8,xt28&,yt28&,bt28&,ht28&)
smfdb%(0)=V:prebuf$
smfdb%(1)=208
smfdb%(2)=292
smfdb%(3)=smfdb%(1)/16
smfdb%(5)=1
dmfdb%(0)=XBIOS(3)
dmfdb%(1)=desk_breite&
dmfdb%(2)=desk_hoehe&
dmfdb%(3)=dmfdb%(1)/16
dmfdb%(5)=1
p%(0)=0
p%(1)=0
p%(2)=207
p%(3)=291
p%(4)=prex&+1
p%(5)=prey&+1
p%(6)=p%(4)+207
p%(7)=p%(5)+291
p%(8)=3
BITBLT smfdb%(),dmfdb%(),p%()
DEFFILL 1,1,1
GRAPHMODE 3
BOX prex0&,prey0&,prex0&+gtbv&,prey0&+gthv&
PBOX prex0&+gtbv&-8,prey0&+gthv&-8,prex0&+gtbv&,prey0&+gthv&
REPEAT
DO
~FORM_DO(tree28_adr%,0)
IF INT{GINTOUT}>0 AND INT{GINTOUT}<100
exit_button&=DPEEK(GINTOUT)
OB_STATE(tree28_adr%,exit_button&)=0
IF exit_button&<>gtprewin&
~OBJC_DRAW(tree28_adr%,exit_button&,8,xt28&,yt28&,bt28&,ht28&)
ENDIF
ENDIF
SELECT exit_button&
CASE gtdpimin&
IF gtdpiv&>100
IF gtdpiv&=480
gtdpiv&=400
ELSE
IF gtdpiv&=600
gtdpiv&=480
ELSE
SUB gtdpiv&,100
ENDIF
ENDIF
dpi_change(prex0&,prey0&,prex0_min&,prey0_min&)
ENDIF
CASE gtdpiplu&
IF gtdpiv&<600
IF gtdpiv&=400
gtdpiv&=480
ELSE
IF gtdpiv&=480
gtdpiv&=600
ELSE
ADD gtdpiv&,100
ENDIF
ENDIF
dpi_change(prex0&,prey0&,prex0_min&,prey0_min&)
ENDIF
CASE gtprewin&
MOUSE x_mouse%,y_mouse%,taste|
IF x_mouse%>prex0&+gtbv&-8 AND x_mouse%<prex0&+gtbv& AND y_mouse%>prey0&+gthv&-8 AND y_mouse%<prey0&+gthv&
DEFMOUSE 3
REPEAT
MOUSE x_mouse%,y_mouse%,taste|
IF x_mouse%<>x_mouse_old% OR y_mouse%<>y_mouse_old%
BOX prex0&,prey0&,prex0&+gtbv&,prey0&+gthv&
PBOX prex0&+gtbv&-8,prey0&+gthv&-8,prex0&+gtbv&,prey0&+gthv&
IF x_mouse%-prex0_min&<217 AND x_mouse%-prex0&>16
gtbv&=x_mouse%-prex0&
i%=AND(INT(gtbv&/25.4*gtdpiv&),&HFFF0)
gtbv&=CINT(i%*25.4/gtdpiv&)
ENDIF
IF y_mouse%-prey0_min&<298 AND y_mouse%-prey0&>16
gthv&=y_mouse%-prey0&
ENDIF
BOX prex0&,prey0&,prex0&+gtbv&,prey0&+gthv&
PBOX prex0&+gtbv&-8,prey0&+gthv&-8,prex0&+gtbv&,prey0&+gthv&
SHOWM
x_mouse_old%=x_mouse%
y_mouse_old%=y_mouse%
CHAR{{OB_SPEC(tree28_adr%,gtb&)}}=STR$(AND(INT(gtbv&/25.4*gtdpiv&),&HFFF0))
CHAR{{OB_SPEC(tree28_adr%,gth&)}}=STR$(INT(gthv&/25.4*gtdpiv&))
~OBJC_DRAW(tree28_adr%,gtb&,8,xt28&,yt28&,bt28&,ht28&)
~OBJC_DRAW(tree28_adr%,gth&,8,xt28&,yt28&,bt28&,ht28&)
ENDIF
UNTIL taste|=0
DEFMOUSE 0
ELSE
IF x_mouse%>prex0& AND x_mouse%<prex0&+gtbv& AND y_mouse%>prey0& AND y_mouse%<prey0&+gthv&
x_mouse_old%=x_mouse%
y_mouse_old%=y_mouse%
DEFMOUSE 3
REPEAT
MOUSE x_mouse%,y_mouse%,taste|
IF x_mouse%<>x_mouse_old% OR y_mouse%<>y_mouse_old%
x_changed&=x_mouse%-x_mouse_old%
y_changed&=y_mouse%-y_mouse_old%
BOX prex0&,prey0&,prex0&+gtbv&,prey0&+gthv&
PBOX prex0&+gtbv&-8,prey0&+gthv&-8,prex0&+gtbv&,prey0&+gthv&
IF prex0&+x_changed&>=prex0_min& AND prex0&+x_changed&+gtbv&<prex0_max&
ADD prex0&,x_changed&
ENDIF
IF prey0&+y_changed&>=prey0_min& AND prey0&+y_changed&+gthv&<prey0_max&
ADD prey0&,y_changed&
ENDIF
BOX prex0&,prey0&,prex0&+gtbv&,prey0&+gthv&
PBOX prex0&+gtbv&-8,prey0&+gthv&-8,prex0&+gtbv&,prey0&+gthv&
SHOWM
x_mouse_old%=x_mouse%
y_mouse_old%=y_mouse%
CHAR{{OB_SPEC(tree28_adr%,gtx&)}}=STR$(AND(INT((prex0&-prex0_min&)/25.4*gtdpiv&),&HFFF8))
CHAR{{OB_SPEC(tree28_adr%,gty&)}}=STR$(AND(INT((prey0&-prey0_min&)/25.4*gtdpiv&),&HFFF8))
~OBJC_DRAW(tree28_adr%,gtx&,8,xt28&,yt28&,bt28&,ht28&)
~OBJC_DRAW(tree28_adr%,gty&,8,xt28&,yt28&,bt28&,ht28&)
ENDIF
UNTIL taste|=0
DEFMOUSE 0
ENDIF
ENDIF
CASE gtpresca&
gt_info(scannen$+pre_view$)
HIDEM
gt6000%=VARPTR(gt6000$)
$C+
VOID C:gt6000%(1,50,3,3,gthalbton&,0,0,26,292,L:V:prebuf$,L:V:prebuf$+8000)
$C-
OUT (2),13
trigger_0
DEFMOUSE 3
SHOWM
BOX prex0&,prey0&,prex0&+gtbv&,prey0&+gthv&
PBOX prex0&+gtbv&-8,prey0&+gthv&-8,prex0&+gtbv&,prey0&+gthv&
smfdb%(0)=V:prebuf$
BITBLT smfdb%(),dmfdb%(),p%()
BOX prex0&,prey0&,prex0&+gtbv&,prey0&+gthv&
PBOX prex0&+gtbv&-8,prey0&+gthv&-8,prex0&+gtbv&,prey0&+gthv&
gt_info(waehle$)
ENDSELECT
EXIT IF exit_button&=gtcancel&
EXIT IF exit_button&=gtscan&
LOOP
IF exit_button&=gtcancel&
PUT xt28&-4,yt28&-4,rette$
ok!=TRUE
ENDIF
IF exit_button&=gtscan&
IF OB_STATE(tree28_adr%,gthart&)=1
gthalbton&=0
ELSE
IF OB_STATE(tree28_adr%,gtweich&)=1
gthalbton&=16
ELSE
IF OB_STATE(tree28_adr%,gtraster&)=1
gthalbton&=32
ELSE
gthalbton&=1
ENDIF
ENDIF
ENDIF
IF OB_STATE(tree28_adr%,gtrot&)=1
gtfarbev&=0
ELSE
IF OB_STATE(tree28_adr%,gtgruen&)=1
gtfarbev&=1
ELSE
IF OB_STATE(tree28_adr%,gtblau&)=1
gtfarbev&=2
ELSE
gtfarbev&=3
ENDIF
ENDIF
ENDIF
IF OB_STATE(tree28_adr%,k0&)=1
gtkontrav&=0
ELSE
IF OB_STATE(tree28_adr%,k1&)=1
gtkontrav&=1
ELSE
IF OB_STATE(tree28_adr%,k2&)=1
gtkontrav&=2
ELSE
IF OB_STATE(tree28_adr%,k3&)=1
gtkontrav&=3
ELSE
IF OB_STATE(tree28_adr%,k4&)=1
gtkontrav&=4
ELSE
IF OB_STATE(tree28_adr%,k5&)=1
gtkontrav&=5
ELSE
gtkontrav&=6
ENDIF
ENDIF
ENDIF
ENDIF
ENDIF
ENDIF
gt_info(scannen$+bereich$)
gtxorig&=CINT(AND(INT((prex0&+2-prex0_min&)/25.4*gtdpiv&),&HFFF8)/8)
gtyorig&=CINT((prey0&+2-prey0_min&)/25.4*gtdpiv&)
gtxbytes&=CINT(AND(INT(gtbv&/25.4*gtdpiv&),&HFFF0)/8)
gtyzeilen&=CINT(gthv&/25.4*gtdpiv&)
IF gtxbytes&*(gtyzeilen&+1)<work_space%
HIDEM
gt6000%=VARPTR(gt6000$)
$C+
i%=C:gt6000%(0,gtdpiv&,gtfarbev&,gtkontrav&,gthalbton&,gtxorig&,gtyorig&,gtxbytes&,gtyzeilen&,L:daten_ptr%,L:daten_ptr%+work_space%)
$C-
OUT (2),13
trigger_0
DEFMOUSE 3
SHOWM
ELSE
i%=-1
ENDIF
IF i%>=0
gt_info(waehle$)
PUT xt28&-4,yt28&-4,rette$
layer!=TRUE
layer_geladen!=TRUE
voll_bild!=TRUE
outlined!=FALSE
do_change_aufloesung(AND(INT(gtbv&/25.4*gtdpiv&),&HFFF0),INT(gthv&/25.4*gtdpiv&),1)
init_bit_blit
p_zoom(zoom*100,zoom*100)
do_redraw
ok!=TRUE
ELSE
FOR i%=1 TO 5
gt_info(fehler$)
PAUSE 15
gt_info(" ")
PAUSE 15
NEXT i%
gt_info(waehle$)
ok!=FALSE
ENDIF
ENDIF
UNTIL ok!
gtxv&=prex0&
gtyv&=prey0&
~WIND_GET(1,4)
clip(x_window&,y_window&,b_window&,h_window&,INT{GINTOUT+2},INT{GINTOUT+4})
set_clip_offset
GRAPHMODE 1
DEFFILL 0,0
DEFMOUSE 3
init_bit_blit
RETURN
'
PROCEDURE set_clip_offset
INT{WINDTAB+64}=INT{WINDTAB+64}-x_offset&
INT{WINDTAB+66}=INT{WINDTAB+66}-y_offset&
RETURN
'
PROCEDURE helpo(help$)
TITLEW #1,ein_space$+help$+ein_space$
set_clip_offset
RETURN
'
PROCEDURE help(help$)
TITLEW #1,ein_space$+waehle$+help$+ein_space$
set_clip_offset
RETURN
'
PROCEDURE help_titel
TITLEW #1,ein_space$+pfad_vek$+"\"+programm$+".VEK "
set_clip_offset
DEFMOUSE 3
DEFLINE 1
COLOR 1
GRAPHMODE 1
p_xy_info("X:","Y:",0)
SHOWM
trigger_0
zeit%=TIMER
RETURN
'
PROCEDURE polygon_fill
REPEAT
DEFMOUSE 0
GET xt20&-4,yt20&-4,xt20&+bt20&+4,yt20&+ht20&+4,rette$
SETMOUSE xt20&+bt20&/2,yt20&+160,0
~OBJC_DRAW(tree20_adr%,0,8,xt20&,yt20&,bt20&,ht20&)
~FORM_DO(tree20_adr%,0)
exit_button&=DPEEK(GINTOUT)
OB_STATE(tree20_adr%,exit_button&)=0
PUT xt20&-4,yt20&-4,rette$
IF OB_STATE(tree20_adr%,fill1&)=1
DEFFILL 1,2,1
ELSE IF OB_STATE(tree20_adr%,fill2&)=1
DEFFILL 1,2,2
ELSE IF OB_STATE(tree20_adr%,fill3&)=1
DEFFILL 1,2,3
ELSE IF OB_STATE(tree20_adr%,fill4&)=1
DEFFILL 1,2,4
ELSE IF OB_STATE(tree20_adr%,fill5&)=1
DEFFILL 1,2,5
ELSE IF OB_STATE(tree20_adr%,fill6&)=1
DEFFILL 1,2,6
ELSE IF OB_STATE(tree20_adr%,fill7&)=1
DEFFILL 1,2,8
ENDIF
DEFMOUSE mdaten$
help(help_polygon$)
IF exit_button&<>fillcancel&
REPEAT
trigger_0
wait_taste
IF taste|<>2
FILL x_mouse%,y_mouse%
ENDIF
UNTIL taste|=2
ENDIF
UNTIL exit_button&=fillcancel&
~FRE(0)
DEFFILL 1,1
help_titel
RETURN
'
' *****************************************************************************
' * TANGENTE NIVELLIEREN *
' * *
' * VERÄNDERT VAR: Punkte_X%(), Punkte_Y%() *
' * *
' *****************************************************************************
'
PROCEDURE do_niv_tangente(found_quelle%,von%,bis%,dreh_x%,dreh_y%)
LOCAL phi,strecke
dx=SUB(dreh_x%,punkte_x%(found%))
dy=SUB(dreh_y%,punkte_y%(found%))
strecke=SQR(dx*dx+dy*dy)
get_phi(dreh_x%,dreh_y%,punkte_x%(found_quelle%),punkte_y%(found_quelle%),phi)
redraw_von_bis(von%,bis%,0)
punkte_x%(found%)=CINT(dreh_x%-strecke*COS(phi))
punkte_y%(found%)=CINT(dreh_y%-strecke*SIN(phi))
redraw_von_bis(von%,bis%,1)
RETURN
'
PROCEDURE tangente_nivellieren
LOCAL found_quelle%,quelle_def|
LOCAL von%,bis%,f%,dreh_x%,dreh_y%
IF pointer%>1
show_cursor_fang
REPEAT
trigger_0
GRAPHMODE 1
REPEAT
wait_taste
EXIT IF taste|=2
find(x_mouse%*100/zoom,y_mouse%*100/zoom)
quelle_def|=punkte_def|(found%)
UNTIL (quelle_def|>da| AND quelle_def|<b3|)
IF taste|<>2
found_quelle%=found%
IF quelle_def|=b1|
IF punkte_def|(found_quelle%-1)=b3|
found%=found_quelle%-2
von%=found_quelle%-4
bis%=von%+3
dreh_x%=punkte_x%(found_quelle%-1)
dreh_y%=punkte_y%(found_quelle%-1)
do_niv_tangente(found_quelle%,von%,bis%,dreh_x%,dreh_y%)
ELSE
IF punkte_def|(found_quelle%-1)=da|
found%=found_quelle%
found_quelle%=found%-2
von%=found%-1
bis%=von%+3
dreh_x%=punkte_x%(found%-1)
dreh_y%=punkte_y%(found%-1)
do_niv_tangente(found_quelle%,von%,bis%,dreh_x%,dreh_y%)
ELSE
IF punkte_def|(found_quelle%-1)=ma|
found%=found_quelle%
REPEAT
INC found%
UNTIL punkte_def|(found%)=ma|
DEC found%
IF punkte_def|(found%)=b3|
DEC found%
von%=found%-2
bis%=von%+3
dreh_x%=punkte_x%(found_quelle%-1)
dreh_y%=punkte_y%(found_quelle%-1)
do_niv_tangente(found_quelle%,von%,bis%,dreh_x%,dreh_y%)
ELSE
IF punkte_def|(found%)=da|
f%=found_quelle%
found_quelle%=found%-1
found%=f%
von%=found%-1
bis%=von%+3
dreh_x%=punkte_x%(found_quelle%+1)
dreh_y%=punkte_y%(found_quelle%+1)
do_niv_tangente(found_quelle%,von%,bis%,dreh_x%,dreh_y%)
ENDIF
ENDIF
ENDIF
ENDIF
ENDIF
ELSE
IF quelle_def|=b2|
IF punkte_def|(found_quelle%+2)=b1|
found%=found_quelle%+2
von%=found_quelle%+1
bis%=von%+3
dreh_x%=punkte_x%(found_quelle%+1)
dreh_y%=punkte_y%(found_quelle%+1)
do_niv_tangente(found_quelle%,von%,bis%,dreh_x%,dreh_y%)
ELSE
IF punkte_def|(found_quelle%+2)=da|
found%=found_quelle%
found_quelle%=found%+2
von%=found%-2
bis%=von%+3
dreh_x%=punkte_x%(found%+1)
dreh_y%=punkte_y%(found%+1)
do_niv_tangente(found_quelle%,von%,bis%,dreh_x%,dreh_y%)
ELSE
IF punkte_def|(found_quelle%+2)=ma|
found%=found_quelle%
REPEAT
DEC found%
UNTIL punkte_def|(found%)=ma|
INC found%
IF punkte_def|(found%)=b1|
von%=found%-1
bis%=von%+3
dreh_x%=punkte_x%(found_quelle%+1)
dreh_y%=punkte_y%(found_quelle%+1)
do_niv_tangente(found_quelle%,von%,bis%,dreh_x%,dreh_y%)
ELSE
IF punkte_def|(found%)=da|
f%=found_quelle%
found_quelle%=found%
found%=f%
von%=found%-2
bis%=von%+3
dreh_x%=punkte_x%(found_quelle%-1)
dreh_y%=punkte_y%(found_quelle%-1)
do_niv_tangente(found_quelle%,von%,bis%,dreh_x%,dreh_y%)
ENDIF
ENDIF
ENDIF
ENDIF
ENDIF
ENDIF
ENDIF
ENDIF
UNTIL taste|=2
DEFMOUSE 3
ENDIF
RETURN
'
' *****************************************************************************
' * ASCII Editor *
' * *
' * *
' * ' ******************************************************************************
' * *
' * CUTOUT *
' * *
' * 27.02.1992 *
' * *
' ******************************************************************************
'
'
$B+
$I-
INLINE scsi%,933
DIM buffer|(512*2)
DIM command|(12)
' VAR:
' apl_id&=APPL_INIT()
magic%=14031952
'
' serien_nummer$="REGIST00"
' serien_nummer_vergleich$="REGIST11"
serien_nummer$=MKD$(101)
serien_nummer_vergleich$=MKD$(101 XOR magic%)
'
fang_schnittpunkt|=4
buffer%=0
buffer_max%=0
poly_len%=0
bits%=0
punkt_eintrag&=0
x_start&=0
y_start&=0
edi_max&=0
m=0
m_neu=0
bit_count|=0
pixel!=FALSE
'
regist_nr%=0
revision$="1.59"
zeit%=TIMER
calamus_nr%=0
ortho|=45
ortho=RAD(ortho|)
ortho2=ortho/2
x_win&=0 ! Window X pos aktuell
y_win&=0 ! Window Y pos aktuell
x_window&=0 ! Window X pos aktuell
y_window&=0 ! Window Y pos aktuell
b_window&=0 ! Window Breite aktuell
h_window&=0 ! Window Höhe aktuell
~WIND_GET(0,4,scrx&,scry&,scrb&,scrh&) ! maximaler Desktop
wmx%=scrb&-62
wmy%=scrh&-57+scry&
desk_breite&=scrb&
desk_hoehe&=scrh&+scry&
gross_bildschirm!=FALSE
IF desk_breite&>640 OR desk_hoehe&>400
gross_bildschirm!=TRUE
ENDIF
ADD scrx&,42 ! Position Window X+Menuleiste
SUB scrb&,42 ! Breite Window
scrb_old&=scrb&
scrh_old&=scrh&
res_x%=0 ! Auflösung x in mm
res_y%=0 ! Auflösung y in mm
res_x_old%=0
res_y_old%=0
x_layer%=0
y_layer%=0
x_layero%=0
y_layero%=0
x_offset&=0 ! Nullpunkt x im Fenster
y_offset&=0 ! Nullpunkt y im Fenster
x_offset_old&=0
y_offset_old&=0
x_mouse%=0
y_mouse%=0
x_mouse_old%=0
y_mouse_old%=0
x_mouse_0%=0
y_mouse_0%=0
objectbox_x0%=0
objectbox_y0%=0
objectbox_x1%=0
objectbox_y1%=0
grid%=10 ! raster mm
schraff_dist=201
schraff_inc=0
schraff_fix_abst=0
schraff_winkel=0
schraff_start%=0
schraff_y_min%=0
bit_count_max|=6
geraden_fehler|=1
lange_gerade%=4000
schmutz_filter%=20
knick_winkel_max=RAD(140)
bogen_max=PI/2/2
abweichung_gerade%=0.5*100
last_poly_s%=-1
last_poly_e%=-1
taste|=0
zoom=1
zoom_old=1
zoom_100=1
pointer%=0 ! Zeiger auf Punkteliste
found%=0 ! gefundener Punkt bei SNAP
found_t%=0 ! gefundener Kurvenparameter
schnittpunkt_genau%=16 ! Zerlegung Bezier in Teile
anz_schnittpunkte%=0 ! Anzahl Schnittpunkte
b_vari=100
i%=0 ! allgemeiner Schleifenzähler
ii%=0
iii%=0
d0%=0
dx%=0
dy%=0
dx=0
dy=0
schnitt_laenge=0
kostfak=1
gkosten=0
px0%=0
py0%=0
px1%=0
py1%=0
px2%=0
py2%=0
px3%=0
py3%=0
m_square_breite&=&H3000
m_square_hoehe&=&H3000
kerning_256|=m_square_breite& DIV 256
len_pair_daten&=0
z_hoehe_def%=16384 ! Höhe des definierten Zsatzes
z_breite_def%=16384 ! Breite "
zeichen_hoehe%=3000 ! gewünschte Höhe in 1/100 mm
versal_def%=0 ! Versal Höhe in 1/100 mm
z_ascii_scale=zeichen_hoehe%/z_hoehe_def% ! Scaling
z_ascii_scale_old=z_ascii_scale ! save Scaling
global_kerning%=1280 ! globales Kerning
zeilen_abstand_prozent%=125 ! relativer Zeilen Abstand
zeilen_abstand%=zeichen_hoehe%*zeilen_abstand_prozent%/100-zeichen_hoehe%
z_cursor_x_spalte%=0 ! Start String
z_cursor_x%=0 ! ASCII Zeichen Cursor X
z_cursor_y%=0 ! ASCII Zeichen Cursor y
z_cursor_x_old%=0 ! letztes Zeichen Cursor X
z_cursor_y_old%=0 ! letztes Zeichen Cursor y
z_ascii_old%=0 ! letztes Zeichen ASCII+32
z_satz_pointer%=0 ! Pointer auf Zeichensatz
state_rs232&=0 ! Centronics aktiv
state_hp&=0 ! HPGL aktiv
folie_x%=1188 ! Folien Grö₧e
folie_y%=840
plotter_x_min%=0
plotter_y_min%=0
gdu=0 ! 100*Plottereinheit
sel_start%=0
sel_end%=0
gtxv&=0
gtyv&=0
gtbv&=216
gthv&=297
gtdpiv&=300
gtfarbev&=3
gtkontrav&=3
exit_button&=0
cursor_x&=0
cursor_y&=0
ofn_ver|=0
overcut|=0
geschlossen%=0
'
phi_x_3d=0
phi_y_3d=0
a2_3d=0
'
daten_ptr%=0
work_space%=0
'
' CONST:
'
IF FRE(0)>4000000
p_max%=99999
ELSE
p_max%=60000
ENDIF
ma|=0
da|=1
b1|=2
b2|=3
b3|=4
ein_drittel=1/3
fmin=2.225073858507E-307
fmin1=0.005
max1=0.995
pimal2=PI*2
pihalbe=PI/2
pidrittel=PI/3
fang_rad%=8*100 ! FANGRADIUS
p_at%=XBIOS(3)+76 ! PRINT AT FÜR X,Y
p_at_zoom%=p_at%-12 ! PRINT AT FÜR ZOOM
x_bytes%=(scrb&+42)/8 ! BYTES IN X RICHTUNG DESKTOP
'
' CONST: Menuleiste
'
tree00&=0
tree0_adr%=0
datei&=3
eintrag&=4
mfenster&=10
mtext&=5
mzedi&=6
spezial&=7
all_clear&=8
bbogen&=9
mschnitt&=11
'
tree01&=1
tree1_adr%=0
back_main&=3
fwd_main&=4
gerade&=5
kurve&=6
schliess&=7
verrunde&=8
loeschen&=9
lock&=10
snap&=11
bild&=12
zircel&=13
bezier4&=14
schere&=15
' fenster&=15
'
tree02&=2
tree2_adr%=0
back_datei&=3
fwd_datei&=4
l_vek&=5
l_merge&=6
r_macro&=7
r_cvg&=8
l_img&=9
l_pic&=10
ordner&=11
s_vek&=12
s_plt&=13
a_plotter&=14
'
tree03&=3
tree3_adr%=0
back_fenster&=3
fwd_fenster&=4
fmove&=5
blitz&=6
fcopy&=7
fzoom&=8
fzoomp&=9
fdreh&=10
fspiegel&=11
fkursiv&=12
dreh3d&=13
drehxp&=14
drehxm&=15
drehym&=16
drehyp&=17
floesch&=18
fzoom1&=19
'
tree04&=4
tree4_adr%=0
back_spezial&=3
gtepson&=4
handy&=5
kontour&=6
filter&=7
trace&=8
smooth&=9
simag&=10
'
tree05&=5
tree5_adr%=0
back_text&=3
fwd_text&=4
z_edit&=5
z_editor&=6
z_string&=7
z_t_hoehe&=8
z_t_abstand&=9
z_g_kerning&=10
z_read_ascii&=11
l_font&=12
s_font&=14
c_font&=13
'
tree06&=6
tree6_adr%=0
t_hoehe&=1
'
tree07&=7
tree7_adr%=0
zabs&=1
'
tree08&=8 ! String Text
tree8_adr%=0
string_text&=1
breite&=3
string_breite&=4
versal&=5
string_versal&=6
pfad&=7
do_kerning&=8
string_kreis&=9
string_kreis_von&=10
string_kreis_bis&=11
fontname&=13
c_text&=14
icon_pair&=15
icon_trep&=16
'
tree09&=9 ! Zeichen Editor
tree9_adr%=0
back_editor&=3
m_matrix&=4
z_matrix&=5
move_matrix&=6
kerning_links&=7
kerning_rechts&=8
kerning_auto&=9
z_get&=10
z_muell&=11
z_up&=13
z_down&=14
z_char&=15
'
tree10&=10
tree10_adr%=0
b_kerning&=2
g_kerning&=3
'
tree11&=11 ! Optimier
tree11_adr%=0
del_ma&=4
del_ge&=6
del_el&=8
'
tree12&=12
tree12_adr%=0
bstep&=1
'
tree13&=13 ! Info
tree13_adr%=0
vernr&=7
version&=4
firma&=4
strasse&=7
stadt&=10
punkte&=15
rest&=17
'
tree14&=14 ! Auflösung
tree14_adr%=0
rx1&=8
ry1&=10
rx2&=12
ry2&=13
rx3&=16
ry3&=17
get_pf&=19
r1&=4
r2&=5
r3&=6
'
tree15&=15 ! Plotter INIT
tree15_adr%=0
p_init1&=3
p_init2&=4
gdu01&=9
gdu025&=10
gdu05&=11
gdu1&=12
overcut&=16
cent&=18
rs232&=20
hp&=23
gp&=24
mgl&=25
ma&=29
da&=30
'
tree16&=16 ! Pfade und Parameter
tree16_adr%=0
pv&=5
pp&=7
pfi&=9
pg&=11
pf&=13
df&=15
p1&=17
p2&=19
schnitt&=21
gdu&=23
foliex&=25
foliey&=27
warn&=29
cancel&=31
'
tree17&=17
tree17_adr%=0
outl&=1
outl_anz&=2
'
tree18&=18
tree18_adr%=0
schraffd&=1
schraffi&=2
schrafix&=3
schraffw&=4
schraffa&=7
schrafff&=8
'
tree19&=19
tree19_adr%=0
necka&=1
neckp&=2
'
tree20&=20 ! Füll
tree20_adr%=0
fill1&=3
fill2&=5
fill3&=7
fill4&=9
fill5&=11
fill6&=13
fill7&=15
fillcancel&=17
'
tree21&=21 ! Trace
tree21_adr%=0
t_step&=7
t_gerade&=8
t_schmutz&=9
bschwelle&=21
knickwinkel&=22
bogen_max&=23
abweichung_gerade&=24
nur_gerade&=13
trace_cancel&=14
gerade_bezier&=30
'
tree22&=22
tree22_adr%=0
scann_x&=1
scann_y&=2
'
tree23&=23
tree23_adr%=0
radius&=1
'
tree24&=24
tree24_adr%=0
grau&=6
stark&=7
selgrau0&=4
selgrau&=5
sellinie&=8
alle&=9
auswahl&=10
'
tree25&=25 ! Bogen
tree25_adr%=0
backboge&=3
vkreis&=4
kreis3&=5
kreisbog&=6
bogen3&=7
bogen2&=8
ellipse&=9
elbogen&=10
eckrund&=11
'
tree26&=26 ! Koordinaten
tree26_adr%=0
absolut&=2
relativ&=3
polar&=4
'
tree27&=27 ! Calamus Versions Nr.
tree27_adr%=0
calamus_nr&=1
'
tree28&=28 ! GT 6000
tree28_adr%=0
gtscan&=47
gtx&=38
gty&=44
gtb&=42
gth&=43
gtcancel&=46
gtpresca&=45
gtdpi&=35
gtdpimin&=33
gtdpiplu&=34
gtprewin&=1
gtstate&=5
gtkeiner&=9
gtraster&=10
gtweich&=11
gthart&=12
gtkeine&=15
gtrot&=18
gtgruen&=17
gtblau&=16
k0&=22
k1&=23
k2&=24
k3&=25
k4&=26
k5&=27
k6&=28
'
tree29&=29 ! Kosten
tree29_adr%=0
kostfak&=1
sl&=2
gkosten&=4
'
tree30&=30 ! Select Filter
tree30_adr%=0
abs_filter&=1
'
tree31&=31 ! Select Fenster
tree31_adr%=0
ohnecopy&=1
mitcopy&=6
anz_rot&=3
phi_rot&=4
numohne&=5
ausricht_vector&=7
'
tree32&=32 ! Select Spiegel
tree32_adr%=0
anbox&=2
anachse&=1
'
tree33&=33
tree33_adr%=0
teil&=1
'
tree34&=34 ! Schnittpunkt
tree34_adr%=0
backschn&=3
fwdschn&=4
trimm&=5
knack&=6
lot&=7
teilen&=8
lang&=9
schnitt2&=10
schnittn&=11
delseg&=12
delel&=13
schmelz&=14
'
tree35&=35 ! Select Copy
tree35_adr%=0
copysing&=1
copymul&=2
cx&=4
cy&=5
canz&=6
cdist&=7
'
tree36&=36 ! Ausrichten
tree36_adr%=0
a_olinks&=1
a_oben&=2
a_orechts&=3
a_links&=4
a_mitte&=5
a_rechts&=6
a_ulinks&=7
a_unten&=8
a_urechts&=9
'
tree37&=37 ! Scalieren
tree37_adr%=0
scale_interactiv&=1
scale_numerisch&=2
scale_breite&=4
scale_hoehe&=5
'
tree38&=38 ! Ordner
tree38_adr%=0
ordnert&=1
ordnerok&=2
ordnerca&=3
'
tree39&=39 ! Kerning
tree39_adr%=0
kerning_box&=1
kerning_minus&=3
kerning_plus&=4
kerning_last&=2
kerning_next&=5
kerning_exit&=6
kerning_minus2&=9
kerning_plus2&=10
kerning_last2&=8
kerning_next2&=11
kerning_clear&=7
kerning_info&=13
kerning_pair&=15
'
tree40&=40 ! Plotter OUTPUT
tree40_adr%=0
pl100&=3
plschieber&=4
plschere&=7
plschereauf&=5
plscherezu&=6
plschere&=7
'
tree41&=41 ! Select Neigen
tree41_adr%=0
neige_grad&=2
neige_vertical&=3
neige_horizontal&=4
neige_interaktiv&=5
'
' FLAG:
'
undo!=FALSE
geschlossen!=FALSE
ok!=FALSE ! allgemein
layer_geladen!=FALSE ! ist Layer geladen
layer!=FALSE ! soll Layer gezeigt werden
window_fulled!=TRUE ! ist Fenster schon gro₧
voll_bild!=FALSE ! ist Fenster komplett auf Crt
eintragen!=FALSE ! ist eintragen aktiv
bogen!=FALSE
mtext!=FALSE
meditor!=FALSE
datei!=FALSE
fenster!=FALSE
schnittpunktm!=FALSE
loeschen!=FALSE ! ist loeschen aktiv
neues_polygon!=TRUE ! erster Punkt im Polygon
found!=FALSE ! gefunden bei Fangradius
marker!=FALSE ! sollen Marker gezeigt werden
marker_select!=FALSE ! soll Marker selectiert
modified!=FALSE ! wurde Vektorbild geändert
font_geladen!=FALSE ! ist ein Font geladen
outlined!=FALSE ! wurde Bitmap schon outlined
auto_schraff!=TRUE
schraff_fix_abst!=FALSE
einpassen!=FALSE
tangente!=FALSE
tangenten_lock!=TRUE
warn!=FALSE
gp_gl!=FALSE ! HPGL oder GPGL
tasten_rep!=FALSE
absolut!=TRUE
relativ!=FALSE
polar!=FALSE
absolut_old!=FALSE
polar_old!=FALSE
fangklein!=FALSE ! Fangradius gro₧
fadenkreuz!=FALSE
polygonmode!=TRUE ! Polygonmodus
ortho!=FALSE
grid!=FALSE
scrolled!=FALSE
move!=FALSE
drei_d!=FALSE
status_wechsel!=FALSE
grid_wechsel!=FALSE
swap!=FALSE
'
' ARRAY:
'
DIM smfdb%(8),dmfdb%(8),p%(8)
DIM z_smfdb%(8),z_dmfdb%(8),z_p%(8),q_dmfdb%(8)
DIM punkte_x%(p_max%),punkte_y%(p_max%),punkte_def|(p_max%),buffer%(p_max%/2)
DIM x_meta%(127),y_meta%(127),punkte_def1|(32)
ARRAYFILL punkte_def1|(),1
DIM bezier_x&(33),bezier_y&(33)
DIM m$(87)
DIM mk%(60,2)
DIM m_square%(5)
DIM z_editor%(32)
DIM z_ascii%(224),z_kerning&(224*16),z_daten&(224*280),z_pair&(224),z_pair|(224),z_pair_daten|(2000)
DIM sx1%(9),sy1%(9),sx2%(9),sy2%(9),sp1(9),sp2(9)
DIM zeilen_buffer$(60)
rette$=SPACE$(32000)
pfad$=SPACE$(80)
kerning_string$=SPACE$(60)
pfad_pic$=SPACE$(80)
pfad_img$=SPACE$(80)
pfad_vek$=SPACE$(80)
pfad_vek_root$=SPACE$(80)
pfad_cvg$=SPACE$(80)
pfad_fnt$=SPACE$(80)
pfad_cfn$=SPACE$(80)
default_font$=SPACE$(10)
programm$=SPACE$(10)
programm_font$=SPACE$(10)
test_datei$=SPACE$(10)
object$=SPACE$(80)
p_init1$=SPACE$(40)
p_init2$=SPACE$(40)
abc$="CutOut Test"
ma$="M"
da$="D"
cutout_font$="CUTOUTOFN"
calamus_font_grafik$=MKI$(159)+MKI$(15)+MKI$(1)+SPACE$(320)
ok$="OK"
ein_space$=" "
x_y$="X|Y"
erster$="1. "
zweiter$="2. "
help_on$="ON "
help_off$="OFF"
vek$="VEK"
cvg$="CVG"
img$="IMG"
plt$="PLT"
calamus$="CALAMUS"
cutout$="CutOut"
' ****************************************************************************
OPEN "I",#1,"SYS\LANGUAGE.DRV"
LINE INPUT #1,pd_menu$
LINE INPUT #1,pd_datei$
LINE INPUT #1,pd_editieren$
LINE INPUT #1,pd_fenster$
LINE INPUT #1,pd_schnittpunkt$
LINE INPUT #1,pd_bogen$
LINE INPUT #1,pd_text$
LINE INPUT #1,pd_zeicheneditor$
LINE INPUT #1,pd_extra$
LINE INPUT #1,pd_quit$
'
LINE INPUT #1,pd_optionen$
LINE INPUT #1,pd_marker_anzeigen$
LINE INPUT #1,pd_tangenten_anzeigen$
LINE INPUT #1,pd_fangradius_klein$
LINE INPUT #1,pd_polygon_modus$
LINE INPUT #1,pd_schnittpunkt_genau$
LINE INPUT #1,pd_koordinaten$
LINE INPUT #1,pd_element_selektieren$
LINE INPUT #1,pd_polygon_selektieren$
LINE INPUT #1,pd_warnmeldungen$
LINE INPUT #1,pd_skaliere_alles$
LINE INPUT #1,pd_punkte_nivellieren$
LINE INPUT #1,pd_tangente$
LINE INPUT #1,pd_plotflaeche$
LINE INPUT #1,pd_bezier_step_aendern$
LINE INPUT #1,pd_plotter_einstellung$
LINE INPUT #1,pd_kosten_faktor$
LINE INPUT #1,pd_pfad_sichern$
'
LINE INPUT #1,pd_figur$
LINE INPUT #1,pd_rechteck$
LINE INPUT #1,pd_n_eck$
LINE INPUT #1,pd_polygon_outline$
LINE INPUT #1,pd_aequidistante$
LINE INPUT #1,pd_frame$
LINE INPUT #1,pd_polygone_ausrichten$
LINE INPUT #1,pd_polygone_zentrieren$
LINE INPUT #1,pd_polygone_vereinen$
LINE INPUT #1,pd_polygone_fuellen$
LINE INPUT #1,pd_einzelne_punkte_loeschen$
'
LINE INPUT #1,pd_linie$
LINE INPUT #1,pd_bezier_vektor$
LINE INPUT #1,pd_bezier_einfuegen$
LINE INPUT #1,pd_tausche_bezier_vektor$
LINE INPUT #1,pd_knacken$
LINE INPUT #1,pd_trimmen$
LINE INPUT #1,pd_lot$
LINE INPUT #1,pd_verlaengern$
LINE INPUT #1,pd_teilen$
LINE INPUT #1,pd_messen$
LINE INPUT #1,pd_schnittp_2er$
LINE INPUT #1,pd_schnittp_n$
'
LINE INPUT #1,pd_effekt$
LINE INPUT #1,pd_parameter_schraffur$
LINE INPUT #1,pd_polygon_schraffieren$
LINE INPUT #1,pd_alles_schraffieren$
LINE INPUT #1,pd_schatten$
LINE INPUT #1,pd_einpassen$
LINE INPUT #1,pd_kugel$
'
LINE INPUT #1,lade$
LINE INPUT #1,sichere$
LINE INPUT #1,fuege_ein$
LINE INPUT #1,vektor$
LINE INPUT #1,macro$
LINE INPUT #1,daten$
LINE INPUT #1,zeichensatz$
LINE INPUT #1,kein$
LINE INPUT #1,keine$
LINE INPUT #1,ja_nein$
LINE INPUT #1,waehle$
LINE INPUT #1,fehler$
LINE INPUT #1,scannen$
LINE INPUT #1,pre_view$
LINE INPUT #1,ascii_importieren$
LINE INPUT #1,ascii_exportieren$
LINE INPUT #1,schriftblock$
LINE INPUT #1,radius_zu$
LINE INPUT #1,winkel_zu$
LINE INPUT #1,leider$
LINE INPUT #1,winkel_einstellen$
LINE INPUT #1,spiegelachse$
LINE INPUT #1,lupe_mal$
LINE INPUT #1,fensterbereich$
LINE INPUT #1,drehzentrum$
LINE INPUT #1,ordner_exist$
LINE INPUT #1,kein_leer$
LINE INPUT #1,suche_schnittpunkte$
LINE INPUT #1,gleiches_polygon$
LINE INPUT #1,bezugs$
LINE INPUT #1,zentriere$
LINE INPUT #1,huellkurve$
LINE INPUT #1,huellkurve1$
LINE INPUT #1,berechne$
LINE INPUT #1,rechte_taste$
LINE INPUT #1,endpunkt$
LINE INPUT #1,lot_an$
LINE INPUT #1,noname$
LINE INPUT #1,symbol$
LINE INPUT #1,orginal_fenster$
LINE INPUT #1,dmc_font$
LINE INPUT #1,bild_datei_zu$
LINE INPUT #1,stad_laden$
LINE INPUT #1,plotter_ist_off$
LINE INPUT #1,plot_datei$
LINE INPUT #1,kein_treiber$
LINE INPUT #1,schnittstelle_auf$
LINE INPUT #1,polygone_vereinen$
LINE INPUT #1,loesche_einzelne$
LINE INPUT #1,quelle$
LINE INPUT #1,ziel$
LINE INPUT #1,nivelliere$
LINE INPUT #1,alle_daten_l$
LINE INPUT #1,ganzer_zeichensatz$
LINE INPUT #1,font_daten_loeschen$
LINE INPUT #1,zeichen_matrix$
LINE INPUT #1,datei_existiert$
LINE INPUT #1,datei_ueberschreiben$
LINE INPUT #1,glaetten_mit$
LINE INPUT #1,gerade_bezier$
LINE INPUT #1,glaetten$
LINE INPUT #1,bereich$
LINE INPUT #1,path$
LINE INPUT #1,help_mittelpunkt$
LINE INPUT #1,help_radius$
LINE INPUT #1,help_position$
LINE INPUT #1,help_startwinkel$
LINE INPUT #1,help_endwinkel$
LINE INPUT #1,help_polygon$
LINE INPUT #1,help_punkt$
LINE INPUT #1,help_linie$
LINE INPUT #1,help_element$
LINE INPUT #1,help_verrund$
LINE INPUT #1,help_loesche$
LINE INPUT #1,help_trenn$
LINE INPUT #1,help_move$
LINE INPUT #1,help_sel$
LINE INPUT #1,help_move_window$
LINE INPUT #1,help_rahmen$
LINE INPUT #1,help_edit$
LINE INPUT #1,help_bezier$
LINE INPUT #1,help_status$
LINE INPUT #1,help_ortho$
LINE INPUT #1,help_grid$
LINE INPUT #1,help_free$
LINE INPUT #1,help_snap$
LINE INPUT #1,help_editor$
LINE INPUT #1,help_pfad$
CLOSE #1
' ****************************************************************************
integer%=VARPTR(punkte_x%(1))-VARPTR(punkte_x%(0)) ! Länge in Bytes Integer
'
z_editor%(0)=2048 ! Top Line Y
z_editor%(1)=3072 ! Ascent Line Y
z_editor%(2)=6144 ! Half Line Y
z_editor%(3)=11264 ! Base Line Y
z_editor%(4)=13952 ! Descent Line Y
z_editor%(5)=14336 ! Bottom Line Y
'
z_editor%(6)=0 ! Matrix links X
z_editor%(7)=16384 ! Matrix rechts X
z_editor%(8)=1280 ! Kerning links X
z_editor%(9)=1280 ! Kerning links X
z_editor%(10)=1280 ! Kerning links X
z_editor%(11)=1280 ! Kerning links X
z_editor%(12)=1280 ! Kerning links X
z_editor%(13)=1280 ! Kerning links X
z_editor%(14)=1280 ! Kerning links X
z_editor%(15)=1280 ! Kerning links X
z_editor%(16)=15104 ! Kerning rechts X
z_editor%(17)=15104 ! Kerning rechts X
z_editor%(18)=15104 ! Kerning rechts X
z_editor%(19)=15104 ! Kerning rechts X
z_editor%(20)=15104 ! Kerning rechts X
z_editor%(21)=15104 ! Kerning rechts X
z_editor%(22)=15104 ! Kerning rechts X
z_editor%(23)=15104 ! Kerning rechts X
z_editor%(24)=z_editor%(0) ! Kerning Y
z_editor%(25)=(z_editor%(5)-z_editor%(0))/8 ! Kerning Y
z_editor%(26)=z_editor%(24)+z_editor%(25) ! Kerning Y
z_editor%(27)=z_editor%(26)+z_editor%(25) ! Kerning Y
z_editor%(28)=z_editor%(27)+z_editor%(25) ! Kerning Y
z_editor%(29)=z_editor%(28)+z_editor%(25) ! Kerning Y
z_editor%(30)=z_editor%(29)+z_editor%(25) ! Kerning Y
z_editor%(31)=z_editor%(30)+z_editor%(25) ! Kerning Y
z_editor%(32)=0 ! Matrix oben Y
'
' ******************************************************************************
' * *
' * MENU INITIALISIERUNG *
' * *
' ******************************************************************************
'
BMOVE V:serien_nummer$,V:serien_nummer,8
BMOVE V:serien_nummer_vergleich$,V:serien_nummer_vergleich,8
regist_nr%=serien_nummer_vergleich
IF serien_nummer<>(serien_nummer_vergleich XOR magic%)
PRINT "SORRY HACKER"
PAUSE 300
SYSTEM
ENDIF
INLINE zasm_ptr%,4136
INLINE pack_img%,958
INLINE calc_bezier%,1050
INLINE p_num%,360
INLINE find_line%,356
INLINE kontour%,216
INLINE staddec%,184
INLINE imgdec%,228
INLINE findexcept%,52
INLINE findpointexcept%,70
mfang$=MKI$(7)+MKI$(7)+MKI$(1)+MKI$(0)+MKI$(1)
mfang$=mfang$+MKI$(&X1111111111111110)
mfang$=mfang$+MKI$(&X1111111111111110)
mfang$=mfang$+MKI$(&X1100001110000110)
mfang$=mfang$+MKI$(&X1100001110000110)
mfang$=mfang$+MKI$(&X1100001110000110)
mfang$=mfang$+MKI$(&X1100001110000110)
mfang$=mfang$+MKI$(&X1111110001111110)
mfang$=mfang$+MKI$(&X1111110001111110)
mfang$=mfang$+MKI$(&X1111110001111110)
mfang$=mfang$+MKI$(&X1100001110000110)
mfang$=mfang$+MKI$(&X1100001110000110)
mfang$=mfang$+MKI$(&X1100001110000110)
mfang$=mfang$+MKI$(&X1100001110000110)
mfang$=mfang$+MKI$(&X1111111111111110)
mfang$=mfang$+MKI$(&X1111111111111110)
mfang$=mfang$+MKI$(&X0)
'
mfang$=mfang$+MKI$(&X1111111111111110)
mfang$=mfang$+MKI$(&X1000000100000010)
mfang$=mfang$+MKI$(&X1000000100000010)
mfang$=mfang$+MKI$(&X1000000100000010)
mfang$=mfang$+MKI$(&X1000000100000010)
mfang$=mfang$+MKI$(&X1000000100000010)
mfang$=mfang$+MKI$(&X1000000000000010)
mfang$=mfang$+MKI$(&X1111110001111110)
mfang$=mfang$+MKI$(&X1000000000000010)
mfang$=mfang$+MKI$(&X1000000100000010)
mfang$=mfang$+MKI$(&X1000000100000010)
mfang$=mfang$+MKI$(&X1000000100000010)
mfang$=mfang$+MKI$(&X1000000100000010)
mfang$=mfang$+MKI$(&X1000000100000010)
mfang$=mfang$+MKI$(&X1111111111111110)
mfang$=mfang$+MKI$(&X0)
'
mfang_klein$=MKI$(7)+MKI$(7)+MKI$(1)+MKI$(0)+MKI$(1)
mfang_klein$=mfang_klein$+MKI$(&X0)
mfang_klein$=mfang_klein$+MKI$(&X0)
mfang_klein$=mfang_klein$+MKI$(&X11111111111000)
mfang_klein$=mfang_klein$+MKI$(&X11111111111000)
mfang_klein$=mfang_klein$+MKI$(&X11001110011000)
mfang_klein$=mfang_klein$+MKI$(&X11001110011000)
mfang_klein$=mfang_klein$+MKI$(&X11110001111000)
mfang_klein$=mfang_klein$+MKI$(&X11110001111000)
mfang_klein$=mfang_klein$+MKI$(&X11110001111000)
mfang_klein$=mfang_klein$+MKI$(&X11001110011000)
mfang_klein$=mfang_klein$+MKI$(&X11001110011000)
mfang_klein$=mfang_klein$+MKI$(&X11111111111000)
mfang_klein$=mfang_klein$+MKI$(&X11111111111000)
mfang_klein$=mfang_klein$+MKI$(&X0)
mfang_klein$=mfang_klein$+MKI$(&X0)
mfang_klein$=mfang_klein$+MKI$(&X0)
'
mfang_klein$=mfang_klein$+MKI$(&X0)
mfang_klein$=mfang_klein$+MKI$(&X0)
mfang_klein$=mfang_klein$+MKI$(&X0)
mfang_klein$=mfang_klein$+MKI$(&X1111111110000)
mfang_klein$=mfang_klein$+MKI$(&X1000100010000)
mfang_klein$=mfang_klein$+MKI$(&X1000100010000)
mfang_klein$=mfang_klein$+MKI$(&X1000000010000)
mfang_klein$=mfang_klein$+MKI$(&X1110001110000)
mfang_klein$=mfang_klein$+MKI$(&X1000000010000)
mfang_klein$=mfang_klein$+MKI$(&X1000100010000)
mfang_klein$=mfang_klein$+MKI$(&X1000100010000)
mfang_klein$=mfang_klein$+MKI$(&X1111111110000)
mfang_klein$=mfang_klein$+MKI$(&X0)
mfang_klein$=mfang_klein$+MKI$(&X0)
mfang_klein$=mfang_klein$+MKI$(&X0)
mfang_klein$=mfang_klein$+MKI$(&X0)
'
mdaten$=MKI$(7)+MKI$(7)+MKI$(1)+MKI$(0)+MKI$(1)
mdaten$=mdaten$+MKI$(&X1110000000)
mdaten$=mdaten$+MKI$(&X1110000000)
mdaten$=mdaten$+MKI$(&X1110000000)
mdaten$=mdaten$+MKI$(&X1110000000)
mdaten$=mdaten$+MKI$(&X1110000000)
mdaten$=mdaten$+MKI$(&X1110000000)
mdaten$=mdaten$+MKI$(&X1111110001111110)
mdaten$=mdaten$+MKI$(&X1111110001111110)
mdaten$=mdaten$+MKI$(&X1111110001111110)
mdaten$=mdaten$+MKI$(&X1110000000)
mdaten$=mdaten$+MKI$(&X1110000000)
mdaten$=mdaten$+MKI$(&X1110000000)
mdaten$=mdaten$+MKI$(&X1110000000)
mdaten$=mdaten$+MKI$(&X1110000000)
mdaten$=mdaten$+MKI$(&X1110000000)
mdaten$=mdaten$+MKI$(&X0)
'
mdaten$=mdaten$+MKI$(&X100000000)
mdaten$=mdaten$+MKI$(&X100000000)
mdaten$=mdaten$+MKI$(&X100000000)
mdaten$=mdaten$+MKI$(&X100000000)
mdaten$=mdaten$+MKI$(&X100000000)
mdaten$=mdaten$+MKI$(&X100000000)
mdaten$=mdaten$+MKI$(&X0)
mdaten$=mdaten$+MKI$(&X1111110001111110)
mdaten$=mdaten$+MKI$(&X0)
mdaten$=mdaten$+MKI$(&X100000000)
mdaten$=mdaten$+MKI$(&X100000000)
mdaten$=mdaten$+MKI$(&X100000000)
mdaten$=mdaten$+MKI$(&X100000000)
mdaten$=mdaten$+MKI$(&X100000000)
mdaten$=mdaten$+MKI$(&X100000000)
mdaten$=mdaten$+MKI$(&X0)
'
schwer$=MKI$(7)+MKI$(7)+MKI$(-1)+MKI$(0)+MKI$(1)
schwer$=schwer$+MKI$(&X0) !
schwer$=schwer$+MKI$(&X0)
schwer$=schwer$+MKI$(&X11111000000) !
schwer$=schwer$+MKI$(&X11111000000)
schwer$=schwer$+MKI$(&X1100111110000) !
schwer$=schwer$+MKI$(&X1100111110000)
schwer$=schwer$+MKI$(&X10000111111000) !
schwer$=schwer$+MKI$(&X10000111111000)
schwer$=schwer$+MKI$(&X10000111111000) !
schwer$=schwer$+MKI$(&X10000111111000)
schwer$=schwer$+MKI$(&X100000111111100) !
schwer$=schwer$+MKI$(&X100000111111100)
schwer$=schwer$+MKI$(&X100000111111100) !
schwer$=schwer$+MKI$(&X100000111111100)
schwer$=schwer$+MKI$(&X111111011111100) !!
schwer$=schwer$+MKI$(&X111111011111100)
schwer$=schwer$+MKI$(&X111111100000100) !
schwer$=schwer$+MKI$(&X111111100000100)
schwer$=schwer$+MKI$(&X111111100000100) !
schwer$=schwer$+MKI$(&X111111100000100)
schwer$=schwer$+MKI$(&X11111100001000) !
schwer$=schwer$+MKI$(&X11111100001000)
schwer$=schwer$+MKI$(&X11111100001000) !
schwer$=schwer$+MKI$(&X11111100001000)
schwer$=schwer$+MKI$(&X1111100110000) !
schwer$=schwer$+MKI$(&X1111100110000)
schwer$=schwer$+MKI$(&X11111000000) !
schwer$=schwer$+MKI$(&X11111000000)
schwer$=schwer$+MKI$(&X0) !
schwer$=schwer$+MKI$(&X0)
schwer$=schwer$+MKI$(&X0) !
schwer$=schwer$+MKI$(&X0)
pfad_read
reset
RESERVE -64*1024
DIM work%((FRE(0)-80*1024)/4)
daten_ptr%=V:work%(0)
work_space%=DIM?(work%())*4
KEYPAD 8
~RSRC_LOAD("SYS\CUTOUT.RSC")
~RSRC_GADDR(0,tree00&,tree0_adr%)
~RSRC_GADDR(0,tree01&,tree1_adr%)
~RSRC_GADDR(0,tree02&,tree2_adr%)
~RSRC_GADDR(0,tree03&,tree3_adr%)
~RSRC_GADDR(0,tree04&,tree4_adr%)
~RSRC_GADDR(0,tree05&,tree5_adr%)
~RSRC_GADDR(0,tree06&,tree6_adr%)
~RSRC_GADDR(0,tree07&,tree7_adr%)
~RSRC_GADDR(0,tree08&,tree8_adr%)
~RSRC_GADDR(0,tree09&,tree9_adr%)
~RSRC_GADDR(0,tree10&,tree10_adr%)
~RSRC_GADDR(0,tree11&,tree11_adr%)
~RSRC_GADDR(0,tree12&,tree12_adr%)
~RSRC_GADDR(0,tree13&,tree13_adr%)
~RSRC_GADDR(0,tree14&,tree14_adr%)
~RSRC_GADDR(0,tree15&,tree15_adr%)
~RSRC_GADDR(0,tree16&,tree16_adr%)
~RSRC_GADDR(0,tree17&,tree17_adr%)
~RSRC_GADDR(0,tree18&,tree18_adr%)
~RSRC_GADDR(0,tree19&,tree19_adr%)
~RSRC_GADDR(0,tree20&,tree20_adr%)
~RSRC_GADDR(0,tree21&,tree21_adr%)
~RSRC_GADDR(0,tree22&,tree22_adr%)
~RSRC_GADDR(0,tree23&,tree23_adr%)
~RSRC_GADDR(0,tree24&,tree24_adr%)
~RSRC_GADDR(0,tree25&,tree25_adr%)
~RSRC_GADDR(0,tree26&,tree26_adr%)
~RSRC_GADDR(0,tree27&,tree27_adr%)
~RSRC_GADDR(0,tree28&,tree28_adr%)
~RSRC_GADDR(0,tree29&,tree29_adr%)
~RSRC_GADDR(0,tree30&,tree30_adr%)
~RSRC_GADDR(0,tree31&,tree31_adr%)
~RSRC_GADDR(0,tree32&,tree32_adr%)
~RSRC_GADDR(0,tree33&,tree33_adr%)
~RSRC_GADDR(0,tree34&,tree34_adr%)
~RSRC_GADDR(0,tree35&,tree35_adr%)
~RSRC_GADDR(0,tree36&,tree36_adr%)
~RSRC_GADDR(0,tree37&,tree37_adr%)
~RSRC_GADDR(0,tree38&,tree38_adr%)
~RSRC_GADDR(0,tree39&,tree39_adr%)
~RSRC_GADDR(0,tree40&,tree40_adr%)
~RSRC_GADDR(0,tree41&,tree41_adr%)
~FORM_CENTER(tree6_adr%)
~FORM_CENTER(tree7_adr%)
~FORM_CENTER(tree8_adr%)
~FORM_CENTER(tree10_adr%)
~FORM_CENTER(tree11_adr%)
~FORM_CENTER(tree12_adr%)
~FORM_CENTER(tree13_adr%)
~FORM_CENTER(tree14_adr%)
~FORM_CENTER(tree15_adr%)
~FORM_CENTER(tree16_adr%)
~FORM_CENTER(tree17_adr%)
~FORM_CENTER(tree18_adr%)
~FORM_CENTER(tree19_adr%)
~FORM_CENTER(tree20_adr%)
~FORM_CENTER(tree21_adr%)
~FORM_CENTER(tree22_adr%)
~FORM_CENTER(tree23_adr%)
~FORM_CENTER(tree24_adr%)
~FORM_CENTER(tree26_adr%)
~FORM_CENTER(tree27_adr%)
~FORM_CENTER(tree28_adr%)
~FORM_CENTER(tree29_adr%)
~FORM_CENTER(tree30_adr%)
~FORM_CENTER(tree31_adr%)
~FORM_CENTER(tree32_adr%)
~FORM_CENTER(tree33_adr%)
~FORM_CENTER(tree35_adr%)
~FORM_CENTER(tree36_adr%)
~FORM_CENTER(tree37_adr%)
~FORM_CENTER(tree38_adr%)
~FORM_CENTER(tree39_adr%)
~FORM_CENTER(tree40_adr%)
~FORM_CENTER(tree41_adr%)
xt6&=DPEEK(tree6_adr%+16)
yt6&=DPEEK(tree6_adr%+18)
bt6&=DPEEK(tree6_adr%+20)
ht6&=DPEEK(tree6_adr%+22)
xt7&=DPEEK(tree7_adr%+16)
yt7&=DPEEK(tree7_adr%+18)
bt7&=DPEEK(tree7_adr%+20)
ht7&=DPEEK(tree7_adr%+22)
xt8&=DPEEK(tree8_adr%+16)
yt8&=DPEEK(tree8_adr%+18)
bt8&=DPEEK(tree8_adr%+20)
ht8&=DPEEK(tree8_adr%+22)
xt10&=DPEEK(tree10_adr%+16)
yt10&=DPEEK(tree10_adr%+18)
bt10&=DPEEK(tree10_adr%+20)
ht10&=DPEEK(tree10_adr%+22)
xt11&=DPEEK(tree11_adr%+16)
yt11&=DPEEK(tree11_adr%+18)
bt11&=DPEEK(tree11_adr%+20)
ht11&=DPEEK(tree11_adr%+22)
xt12&=DPEEK(tree12_adr%+16)
yt12&=DPEEK(tree12_adr%+18)
bt12&=DPEEK(tree12_adr%+20)
ht12&=DPEEK(tree12_adr%+22)
xt13&=DPEEK(tree13_adr%+16)
yt13&=DPEEK(tree13_adr%+18)
bt13&=DPEEK(tree13_adr%+20)
ht13&=DPEEK(tree13_adr%+22)
xt14&=DPEEK(tree14_adr%+16)
yt14&=DPEEK(tree14_adr%+18)
bt14&=DPEEK(tree14_adr%+20)
ht14&=DPEEK(tree14_adr%+22)
xt15&=DPEEK(tree15_adr%+16)
yt15&=DPEEK(tree15_adr%+18)
bt15&=DPEEK(tree15_adr%+20)
ht15&=DPEEK(tree15_adr%+22)
xt16&=DPEEK(tree16_adr%+16)
yt16&=DPEEK(tree16_adr%+18)
bt16&=DPEEK(tree16_adr%+20)
ht16&=DPEEK(tree16_adr%+22)
xt17&=DPEEK(tree17_adr%+16)
yt17&=DPEEK(tree17_adr%+18)
bt17&=DPEEK(tree17_adr%+20)
ht17&=DPEEK(tree17_adr%+22)
xt18&=DPEEK(tree18_adr%+16)
yt18&=DPEEK(tree18_adr%+18)
bt18&=DPEEK(tree18_adr%+20)
ht18&=DPEEK(tree18_adr%+22)
xt19&=DPEEK(tree19_adr%+16)
yt19&=DPEEK(tree19_adr%+18)
bt19&=DPEEK(tree19_adr%+20)
ht19&=DPEEK(tree19_adr%+22)
xt20&=DPEEK(tree20_adr%+16)
yt20&=DPEEK(tree20_adr%+18)
bt20&=DPEEK(tree20_adr%+20)
ht20&=DPEEK(tree20_adr%+22)
xt21&=DPEEK(tree21_adr%+16)
yt21&=DPEEK(tree21_adr%+18)
bt21&=DPEEK(tree21_adr%+20)
ht21&=DPEEK(tree21_adr%+22)
xt22&=DPEEK(tree22_adr%+16)
yt22&=DPEEK(tree22_adr%+18)
bt22&=DPEEK(tree22_adr%+20)
ht22&=DPEEK(tree22_adr%+22)
xt23&=DPEEK(tree23_adr%+16)
yt23&=DPEEK(tree23_adr%+18)
bt23&=DPEEK(tree23_adr%+20)
ht23&=DPEEK(tree23_adr%+22)
DPOKE tree24_adr%+16,DPEEK(tree24_adr%+16)+200
xt24&=DPEEK(tree24_adr%+16)
yt24&=DPEEK(tree24_adr%+18)
bt24&=DPEEK(tree24_adr%+20)
ht24&=DPEEK(tree24_adr%+22)
xt26&=DPEEK(tree26_adr%+16)
yt26&=DPEEK(tree26_adr%+18)
bt26&=DPEEK(tree26_adr%+20)
ht26&=DPEEK(tree26_adr%+22)
xt27&=DPEEK(tree27_adr%+16)
yt27&=DPEEK(tree27_adr%+18)
bt27&=DPEEK(tree27_adr%+20)
ht27&=DPEEK(tree27_adr%+22)
xt28&=DPEEK(tree28_adr%+16)
yt28&=DPEEK(tree28_adr%+18)
bt28&=DPEEK(tree28_adr%+20)
ht28&=DPEEK(tree28_adr%+22)
xt29&=DPEEK(tree29_adr%+16)
yt29&=DPEEK(tree29_adr%+18)
bt29&=DPEEK(tree29_adr%+20)
ht29&=DPEEK(tree29_adr%+22)
xt30&=DPEEK(tree30_adr%+16)
yt30&=DPEEK(tree30_adr%+18)
bt30&=DPEEK(tree30_adr%+20)
ht30&=DPEEK(tree30_adr%+22)
xt31&=DPEEK(tree31_adr%+16)
yt31&=DPEEK(tree31_adr%+18)
bt31&=DPEEK(tree31_adr%+20)
ht31&=DPEEK(tree31_adr%+22)
xt32&=DPEEK(tree32_adr%+16)
yt32&=DPEEK(tree32_adr%+18)
bt32&=DPEEK(tree32_adr%+20)
ht32&=DPEEK(tree32_adr%+22)
xt35&=DPEEK(tree35_adr%+16)
yt35&=DPEEK(tree35_adr%+18)
bt35&=DPEEK(tree35_adr%+20)
ht35&=DPEEK(tree35_adr%+22)
xt33&=DPEEK(tree33_adr%+16)
yt33&=DPEEK(tree33_adr%+18)
bt33&=DPEEK(tree33_adr%+20)
ht33&=DPEEK(tree33_adr%+22)
xt36&=DPEEK(tree36_adr%+16)
yt36&=DPEEK(tree36_adr%+18)
bt36&=DPEEK(tree36_adr%+20)
ht36&=DPEEK(tree36_adr%+22)
xt37&=DPEEK(tree37_adr%+16)
yt37&=DPEEK(tree37_adr%+18)
bt37&=DPEEK(tree37_adr%+20)
ht37&=DPEEK(tree37_adr%+22)
xt38&=DPEEK(tree38_adr%+16)
yt38&=DPEEK(tree38_adr%+18)
bt38&=DPEEK(tree38_adr%+20)
ht38&=DPEEK(tree38_adr%+22)
xt39&=DPEEK(tree39_adr%+16)
yt39&=DPEEK(tree39_adr%+18)
bt39&=DPEEK(tree39_adr%+20)
ht39&=DPEEK(tree39_adr%+22)
xt40&=DPEEK(tree40_adr%+16)
yt40&=DPEEK(tree40_adr%+18)
bt40&=DPEEK(tree40_adr%+20)
ht40&=DPEEK(tree40_adr%+22)
xt41&=DPEEK(tree41_adr%+16)
yt41&=DPEEK(tree41_adr%+18)
bt41&=DPEEK(tree41_adr%+20)
ht41&=DPEEK(tree41_adr%+22)
bt_output&=OB_W(tree40_adr%,pl100&)
CHAR{{OB_SPEC(tree6_adr%,t_hoehe&)}}=STR$(INT(zeichen_hoehe%/100))
CHAR{{OB_SPEC(tree7_adr%,zabs&)}}=STR$(INT(zeilen_abstand_prozent%))
CHAR{{OB_SPEC(tree9_adr%,z_char&)}}=CHR$(z_ascii_old%+32)
CHAR{{OB_SPEC(tree8_adr%,string_text&)}}=abc$
CHAR{{OB_SPEC(tree12_adr%,bstep&)}}=STR$(b_vari/100)
CHAR{{OB_SPEC(tree13_adr%,punkte&)}}=STR$(pointer%)
CHAR{{OB_SPEC(tree13_adr%,rest&)}}=STR$(p_max%-pointer%)
CHAR{{OB_SPEC(tree13_adr%,version&)}}=revision$
CHAR{{OB_SPEC(tree14_adr%,rx1&)}}=STR$(folie_x%)
CHAR{{OB_SPEC(tree14_adr%,ry1&)}}=STR$(folie_y%)
CHAR{{OB_SPEC(tree14_adr%,rx2&)}}=STR$(folie_x2%)
CHAR{{OB_SPEC(tree14_adr%,ry2&)}}=STR$(folie_y2%)
CHAR{{OB_SPEC(tree14_adr%,rx3&)}}=STR$(folie_x3%)
CHAR{{OB_SPEC(tree14_adr%,ry3&)}}=STR$(folie_y3%)
CHAR{{OB_SPEC(tree15_adr%,p_init1&)}}=p_init1$
CHAR{{OB_SPEC(tree15_adr%,p_init2&)}}=p_init2$
CHAR{{OB_SPEC(tree15_adr%,overcut&)}}=STR$(overcut|/10)
CHAR{{OB_SPEC(tree15_adr%,ma&)}}=ma$
CHAR{{OB_SPEC(tree15_adr%,da&)}}=da$
CHAR{{OB_SPEC(tree17_adr%,outl&)}}="3.0"
CHAR{{OB_SPEC(tree18_adr%,schraffd&)}}=STR$(schraff_dist/100)
CHAR{{OB_SPEC(tree18_adr%,schraffi&)}}=STR$(schraff_inc/100)
CHAR{{OB_SPEC(tree18_adr%,schraffw&)}}=STR$(schraff_winkel)
CHAR{{OB_SPEC(tree18_adr%,schrafix&)}}=STR$(schraff_fix_abst)
CHAR{{OB_SPEC(tree21_adr%,t_step&)}}=STR$(bit_count_max|)
CHAR{{OB_SPEC(tree21_adr%,t_gerade&)}}=STR$(geraden_fehler|)
CHAR{{OB_SPEC(tree21_adr%,t_schmutz&)}}=STR$(schmutz_filter%)
CHAR{{OB_SPEC(tree21_adr%,bschwelle&)}}=STR$(lange_gerade%/100)
CHAR{{OB_SPEC(tree21_adr%,knickwinkel&)}}=STR$(CINT(DEG(knick_winkel_max)))
CHAR{{OB_SPEC(tree21_adr%,bogen_max&)}}=STR$(CINT(DEG(bogen_max*2)))
CHAR{{OB_SPEC(tree21_adr%,abweichung_gerade&)}}=STR$(abweichung_gerade%/100)
CHAR{{OB_SPEC(tree22_adr%,scann_x&)}}="1664"
CHAR{{OB_SPEC(tree22_adr%,scann_y&)}}="800"
CHAR{{OB_SPEC(tree23_adr%,radius&)}}="10"
CHAR{{OB_SPEC(tree27_adr%,calamus_nr&)}}=STR$(calamus_nr%)
CHAR{{OB_SPEC(tree29_adr%,kostfak&)}}=STR$(kostfak)
CHAR{{OB_SPEC(tree31_adr%,anz_rot&)}}="3"
CHAR{{OB_SPEC(tree31_adr%,phi_rot&)}}="90"
OB_STATE(tree15_adr%,rs232&)=state_rs232&+16
OB_STATE(tree15_adr%,cent&)=state_rs232& XOR 1+16
OB_STATE(tree15_adr%,hp&)=state_hp&+16
OB_STATE(tree15_adr%,gp&)=state_hp& XOR 1+16
OB_STATE(tree26_adr%,absolut&)=absolut!+18
OB_STATE(tree26_adr%,relativ&)=absolut!+17
OB_STATE(tree26_adr%,polar&)=absolut!+17
IF gdu=1
OB_STATE(tree15_adr%,gdu01&)=17
ELSE
IF gdu=2.5
OB_STATE(tree15_adr%,gdu025&)=17
ELSE
IF gdu=5
OB_STATE(tree15_adr%,gdu05&)=17
ELSE
OB_STATE(tree15_adr%,gdu1&)=17
ENDIF
ENDIF
ENDIF
OB_STATE(tree1_adr%,lock&)=1
IF mimaki!
OB_STATE(tree15_adr%,gdu05&)=17
OB_STATE(tree15_adr%,gdu01&)=8
OB_STATE(tree15_adr%,gdu025&)=8
OB_STATE(tree15_adr%,gdu1&)=8
OB_STATE(tree15_adr%,rs232&)=17
OB_STATE(tree15_adr%,mgl&)=17
OB_STATE(tree15_adr%,cent&)=16
OB_STATE(tree15_adr%,hp&)=16
OB_STATE(tree15_adr%,gp&)=16
ELSE
OB_STATE(tree15_adr%,mgl&)=8
ENDIF
~WIND_GET(0,4) ! get desk size
BMOVE GINTOUT+2,tree0_adr%+16,8 ! set into rsc
BMOVE GINTOUT+2,tree1_adr%+16,8 ! set into rsc
BMOVE GINTOUT+2,tree2_adr%+16,8 ! set into rsc
BMOVE GINTOUT+2,tree3_adr%+16,8 ! set into rsc
BMOVE GINTOUT+2,tree4_adr%+16,8 ! set into rsc
BMOVE GINTOUT+2,tree5_adr%+16,8 ! set into rsc
BMOVE GINTOUT+2,tree9_adr%+16,8 ! set into rsc
BMOVE GINTOUT+2,tree25_adr%+16,8 ! set into rsc
BMOVE GINTOUT+2,tree34_adr%+16,8 ! set into rsc
wind_newdesk(tree0_adr%,0) ! install Datei Baum
IF default_font$<>""
datei$=ein_space$
IF EXIST(pfad_fnt$+"\"+default_font$)
load_font(pfad_fnt$+"\"+default_font$)
programm_font$=LEFT$(default_font$,LEN(default_font$)-4)
ELSE
make_new_font(-1)
ENDIF
ELSE
make_new_font(-1)
ENDIF
m$(0)=""
m$(1)=" CUTOUT"
m$(2)="--------------------"
m$(3)=CHR$(2)
m$(4)=CHR$(3)
m$(5)=CHR$(4)
m$(6)=CHR$(5)
m$(7)=CHR$(6)
m$(8)=CHR$(7)
m$(9)=CHR$(8)
m$(10)=""
m$(11)=pd_menu$
m$(12)=pd_datei$
m$(13)=pd_editieren$
m$(14)=pd_fenster$
m$(15)=pd_schnittpunkt$
m$(16)=pd_bogen$
m$(17)="----------------------"
m$(18)=pd_text$
m$(19)=pd_zeicheneditor$
m$(20)=m$(17)
m$(21)=pd_extra$
m$(22)=m$(17)
m$(23)=pd_quit$
m$(24)=""
m$(25)=pd_optionen$
m$(26)=pd_marker_anzeigen$
m$(27)=pd_tangenten_anzeigen$
m$(28)=pd_fangradius_klein$
m$(29)=pd_polygon_modus$
m$(30)=pd_schnittpunkt_genau$
m$(31)=pd_koordinaten$
m$(32)=pd_element_selektieren$
m$(33)=pd_polygon_selektieren$
m$(34)=pd_warnmeldungen$
m$(35)="---------------------------"
m$(36)=pd_skaliere_alles$
m$(37)=m$(35)
m$(38)=pd_punkte_nivellieren$
m$(39)=pd_tangente$
m$(40)=m$(35)
m$(41)=pd_plotflaeche$
m$(42)=pd_bezier_step_aendern$
m$(43)=pd_plotter_einstellung$
m$(44)=pd_kosten_faktor$
m$(45)=pd_pfad_sichern$
m$(46)=""
m$(47)=pd_figur$
m$(48)=pd_rechteck$
m$(49)=pd_n_eck$
m$(50)=pd_polygon_outline$
m$(51)=pd_aequidistante$
m$(52)=pd_frame$
m$(53)="---------------------------"
m$(54)=pd_polygone_ausrichten$
m$(55)=pd_polygone_zentrieren$
m$(56)=pd_polygone_vereinen$
m$(57)=pd_polygone_fuellen$
m$(58)=m$(53)
m$(59)=pd_einzelne_punkte_loeschen$
m$(60)=""
m$(61)=pd_linie$
m$(62)=pd_bezier_vektor$
m$(63)=pd_bezier_einfuegen$
m$(64)=pd_tausche_bezier_vektor$
m$(65)=m$(53)
m$(66)=pd_knacken$
m$(67)=pd_trimmen$
m$(68)=pd_lot$
m$(69)=pd_verlaengern$
m$(70)=pd_teilen$
m$(71)=pd_messen$
m$(72)=m$(53)
m$(73)=pd_schnittp_2er$
m$(74)=pd_schnittp_n$
m$(75)=""
m$(76)=pd_effekt$
m$(77)=pd_parameter_schraffur$
m$(78)=pd_polygon_schraffieren$
m$(79)=pd_alles_schraffieren$
m$(80)="------------------------"
m$(81)=pd_schatten$
m$(82)=pd_einpassen$
m$(83)=m$(80)
m$(84)=pd_kugel$
m$(85)=""
m$(86)=""
MENU m$()
IF fangklein!
MENU 28,1
ENDIF
IF polygonmode!
MENU 29,1
ENDIF
IF warn!
MENU 34,1
ENDIF
CLIP 0,0,639,399 OFFSET 0,0
DEFTEXT 1,0,0,6
COLOR 1
TEXT 400,7,"Zoom X:"
TEXT 400,15,"Zoom Y:"
TEXT 540,7,"X:"
TEXT 540,15,"Y:"
DEFTEXT 1,0,0,4
TEXT 624,7,"mm"
TEXT 624,15,"mm"
LINE 536,0,536,20
LINE 396,0,396,20
'
~FORM_DIAL(3,0,0,0,0,0,0,desk_breite&,desk_hoehe&) !redraw all
'
layer!=FALSE
zoom=1
x_layer%=folie_x%
y_layer%=folie_y%
x_layero%=x_layer%
y_layero%=y_layer%
res_x%=x_layer%
res_y%=y_layer%
x_offset&=0
y_offset&=0
res_x_old%=x_layer%
res_y_old%=y_layer%
x_offset_old&=0
y_offset_old&=0
pointer%=0
get_desktop
scrb_old&=scrb&
scrh_old&=scrh&
CLOSEW 1
programm$=noname$
INT{WINDTAB+2}=&X111111000000
INT{WINDTAB+4}=scrx&
INT{WINDTAB+6}=scry&
INT{WINDTAB+8}=scrb&
INT{WINDTAB+10}=scrh&
help_titel
OPENW 1
calc_slid
~WIND_GET(1,4,x_win&,y_win&,b_window&,h_window&)
neues_polygon!=TRUE
do_redraw
DEFMOUSE 3
p_zoom(zoom*100,zoom*100)
CHAR{{OB_SPEC(tree14_adr%,rx1&)}}=STR$(x_layer%)
CHAR{{OB_SPEC(tree14_adr%,ry1&)}}=STR$(y_layer%)
' test_vollbild
'
~OBJC_OFFSET(tree28_adr%,gtprewin&,gtxv&,gtyv&)
gtxv&=gtxv&-x_win&+1
gtyv&=gtyv&-y_win&+1
'
ON MENU MESSAGE GOSUB message
ON MENU BUTTON 1,1,1 GOSUB button
ON MENU GOSUB menu
ON MENU KEY GOSUB key
' ON ERROR GOSUB fehler
'
'
REPEAT
ON MENU
UNTIL end!
'
IF modified!
IF pointer%>0
ALERT 3,"| "+sichere$+daten$,1,ja_nein$,i%
IF i%=1
@save_vektor
ENDIF
ENDIF
ENDIF
'
' Bei fertigen Programmen hier nur QUIT
'
reset
~WIND_GET(0,10)
IF DPEEK(GINTOUT+2)
ALERT 1,"Accessories",1,"Close|Quit",i%
IF i%=2
QUIT
ENDIF
REPEAT
~WIND_GET(0,10)
UNTIL DPEEK(GINTOUT+2)=0
ENDIF
RESERVE ! XBIOS(2)-HIMEM+FRE(0)-16384
'
PROCEDURE fehler
ALERT 1,fehler$,1,leider$,i%
' RESUME NEXT
RETURN
'
'
PROCEDURE get_undo
LOCAL dp%
dp%=daten_ptr%
IF (pointer%*9+1<work_space%) AND (NOT layer_geladen!)
LONG{dp%}=pointer%
ADD dp%,4
undo!=TRUE
BMOVE VARPTR(punkte_x%(0)),dp%,pointer%*4
ADD dp%,pointer%*4
BMOVE VARPTR(punkte_y%(0)),dp%,pointer%*4
ADD dp%,pointer%*4
BMOVE VARPTR(punkte_def|(0)),dp%,pointer%
undo!=TRUE
ELSE
undo!=FALSE
ENDIF
RETURN
'
PROCEDURE put_undo
LOCAL dp%
IF undo!
dp%=daten_ptr%
pointer%=LONG{dp%}
ADD dp%,4
BMOVE dp%,VARPTR(punkte_x%(0)),pointer%*4
ADD dp%,pointer%*4
BMOVE dp%,VARPTR(punkte_y%(0)),pointer%*4
ADD dp%,pointer%*4
BMOVE dp%,VARPTR(punkte_def|(0)),pointer%
undo!=FALSE
do_redraw
ENDIF
RETURN
'
PROCEDURE output_drucker
LOCAL handle&,x_resi&,y_resi&,z_old
IF GDOS?
ERASE work%()
IF FRE(0)>250000
RESERVE -250000
handle&=V_OPNWK(21)
IF handle&<>0
V~H=handle&
x_resi&=INTOUT(0)
y_resi&=INTOUT(1)
~V_CLRWK()
z_old=zoom
zoom=4
redraw_ohne(0)
~V_UPDWK()
~V_CLSWK()
zoom=z_old
ELSE
ENDIF
RESERVE
ELSE
ENDIF
DIM work%((FRE(0)-80*1024)/4)
daten_ptr%=V:work%(0)
work_space%=DIM?(work%())*4
ELSE
ENDIF
RETURN
'
'
PROCEDURE scan_a1
ALERT 3,"| SCAN Hochformat: ",1,"A3|A2|A1",i%
SELECT i%
CASE 1
scann_x%=INT(17*400/8) !17
scann_y%=INT(12*400) !12
CASE 2
scann_x%=INT(25*400/8)
scann_y%=INT(17*400)
CASE 3
scann_x%=INT(34*400/8)
scann_y%=INT(25*400)
ENDSELECT
scan_graphtec(3,400,0,0,scann_x%,scann_y%)
RETURN
'
PROCEDURE scan_graphtec(device&,dpi&,x_0%,y_0%,bytes_x%,lines_y%)
LOCAL command_bytes&,bytes_to_transfer%,transfer_dir&
LOCAL y_offset%,block&,command_bytes&,bytes_to_transfer%
' IF FN test_unit_ready(device&)=0
set_graphtec_window(device&,dpi&,x_0%,y_0%,bytes_x%,lines_y%)
command_bytes&=10
block&=&HFFFF DIV bytes_x% DIV 3
bytes_to_transfer%=bytes_x%*block&*3
transfer_dir&=0 ! LESEN
command|(0)=&H28
command|(1)=0
command|(2)=0
command|(3)=0
command|(4)=0
command|(5)=0
command|(6)=0
command|(7)=0
command|(8)=0
command|(9)=0
WORD{V:command|(7)}=block&
'
anzahl&=lines_y% DIV block&
rest&=lines_y% MOD block&
y_offset%=0
FOR i%=1 TO anzahl&
$c+
fehler%=C:scsi%(device&,command_bytes&,bytes_to_transfer%,transfer_dir&,L:V:command|(0),L:daten_ptr%+y_offset%)
$c-
ADD y_offset%,block&*bytes_x%
NEXT i%
IF rest&<>0
bytes_to_transfer%=bytes_x%*rest&*3
WORD{V:command|(7)}=rest&
$c+
fehler%=C:scsi%(device&,command_bytes&,bytes_to_transfer%,transfer_dir&,L:V:command|(0),L:daten_ptr%+y_offset%)
$c-
ENDIF
' status&=AND(CARD(fehler%),&X11110)
' message&=CARD(SWAP(fehler%))
layer!=TRUE
layer_geladen!=TRUE
voll_bild!=TRUE
outlined!=FALSE
do_change_aufloesung(bytes_x%*8,lines_y%,1)
init_bit_blit
p_zoom(zoom*100,zoom*100)
do_redraw
' ENDIF
RETURN
'
PROCEDURE set_graphtec_window(device&,dpi&,x_0%,y_0%,bytes_x%,lines_y%)
LOCAL command_bytes&,bytes_to_transfer%,transfer_dir&
command_bytes&=10
bytes_to_transfer%=53
transfer_dir&=1 ! LESEN (1=SCHREIBEN)
command|(0)=&H24
command|(1)=0
command|(2)=0
command|(3)=0
command|(4)=0
command|(5)=0
command|(6)=0
command|(7)=0
command|(8)=bytes_to_transfer%
command|(9)=0
FOR i%=0 TO 6
buffer|(i%)=0
NEXT i%
FOR i%=38 TO 47
buffer|(i%)=0
NEXT i%
buffer|(7)=45 ! Window Descriptor Block Length
buffer|(8)=0 ! Window ID
buffer|(9)=0 ! reserved
WORD{V:buffer|(10)}=dpi& ! X resolution
WORD{V:buffer|(12)}=dpi& ! Y resolution
LONG{V:buffer|(14)}=x_0%*24 ! X Upper Left
LONG{V:buffer|(18)}=y_0%*3 ! Y Upper Left
LONG{V:buffer|(22)}=bytes_x%*24 ! Width
LONG{V:buffer|(26)}=lines_y%*3 ! Length
buffer|(30)=0 ! reserved
buffer|(31)=0 ! Kontrast
buffer|(32)=0 ! reserved
buffer|(33)=0 ! Image composition
buffer|(34)=1 ! Bits per Pixel
buffer|(35)=0 ! reserved
buffer|(36)=0 ! reserved
buffer|(37)=0 ! Reverse Image
buffer|(48)=2 ! Cell length
buffer|(49)=5 ! Function Code
buffer|(50)=1 ! Fine Line
buffer|(51)=2 ! Cell length
buffer|(52)=6 ! Function Code
buffer|(53)=1 ! Scann Speed
$c+
fehler%=C:scsi%(device&,command_bytes&,bytes_to_transfer%,transfer_dir&,L:V:command|(0),L:V:buffer|(0))
$c-
RETURN
'
FUNCTION test_unit_ready(device&)
command_bytes&=6
bytes_to_transfer%=1
transfer_dir&=0 ! LESEN (1=SCHREIBEN)
command|(0)=0
command|(1)=0
command|(2)=0
command|(3)=0
command|(4)=bytes_to_transfer%
command|(5)=0
'
$c+
fehler%=C:scsi%(device&,command_bytes&,L:bytes_to_transfer%,transfer_dir&,L:V:command|(0),L:V:buffer|(0))
$c-
status&=AND(CARD(fehler%),&X11110)
message&=CARD(SWAP(fehler%))
'
RETURN status&
ENDFUNC
'
'
PROCEDURE gt_info(i$)
CHAR{{OB_SPEC(tree28_adr%,gtstate&)}}=i$
~OBJC_DRAW(tree28_adr%,gtstate&,8,xt28&,yt28&,bt28&,ht28&)
RETURN
'
PROCEDURE dpi_change(prex0&,prey0&,prex0_min&,prey0_min&)
CHAR{{OB_SPEC(tree28_adr%,gtdpi&)}}=STR$(gtdpiv&)
~OBJC_DRAW(tree28_adr%,gtdpi&,8,xt28&,yt28&,bt28&,ht28&)
CHAR{{OB_SPEC(tree28_adr%,gtb&)}}=STR$(AND(INT(gtbv&/25.4*gtdpiv&),&HFFF8))
CHAR{{OB_SPEC(tree28_adr%,gth&)}}=STR$(AND(INT(gthv&/25.4*gtdpiv&),&HFFF8))
~OBJC_DRAW(tree28_adr%,gtb&,8,xt28&,yt28&,bt28&,ht28&)
~OBJC_DRAW(tree28_adr%,gth&,8,xt28&,yt28&,bt28&,ht28&)
CHAR{{OB_SPEC(tree28_adr%,gtx&)}}=STR$(AND(INT((prex0&-prex0_min&)/25.4*gtdpiv&),&HFFF8))
CHAR{{OB_SPEC(tree28_adr%,gty&)}}=STR$(AND(INT((prey0&-prey0_min&)/25.4*gtdpiv&),&HFFF8))
~OBJC_DRAW(tree28_adr%,gtx&,8,xt28&,yt28&,bt28&,ht28&)
~OBJC_DRAW(tree28_adr%,gty&,8,xt28&,yt28&,bt28&,ht28&)
RETURN
'
PROCEDURE gt_6000
LOCAL prex0&,prey0&,prex0_min&,prey0_min&,x_changed&,y_changed&
LOCAL prex&,prey&,gthalbton&
DEFMOUSE 0
SETMOUSE xt28&+240,yt28&+310,0
CLIP 0,0,desk_breite&,desk_hoehe& OFFSET x_win&,y_win&
~OBJC_OFFSET(tree28_adr%,gtprewin&,prex&,prey&)
gthalbton&=1
prex0&=prex&-x_win&+1
prey0&=prey&-y_win&+1
prex0_min&=prex0&
prey0_min&=prey0&
prex0_max&=prex0&+217
prey0_max&=prey0&+297
prex0&=gtxv&
prey0&=gtyv&
'
CHAR{{OB_SPEC(tree28_adr%,gtx&)}}=STR$(AND(INT((prex0&-prex0_min&)/25.4*gtdpiv&),&HFFF8))
CHAR{{OB_SPEC(tree28_adr%,gty&)}}=STR$(AND(INT((prey0&-prey0_min&)/25.4*gtdpiv&),&HFFF8))
CHAR{{OB_SPEC(tree28_adr%,gtb&)}}=STR$(AND(INT(gtbv&/25.4*gtdpiv&),&HFFF8))
CHAR{{OB_SPEC(tree28_adr%,gth&)}}=STR$(AND(INT(gthv&/25.4*gtdpiv&),&HFFF8))
CHAR{{OB_SPEC(tree28_adr%,gtdpi&)}}=STR$(gtdpiv&)
CHAR{{OB_SPEC(tree28_adr%,gtstate&)}}=waehle$
GET xt28&-4,yt28&-4,xt28&+bt28&+4,yt28&+ht28&+4,rette$
~OBJC_DRAW(tree28_adr%,0,8,xt28&,yt28&,bt28&,ht28&)
smfdb%(0)=V:prebuf$
smfdb%(1)=208
smfdb%(2)=292
smfdb%(3)=smfdb%(1)/16
smfdb%(5)=1
dmfdb%(0)=XBIOS(3)
dmfdb%(1)=desk_breite&
dmfdb%(2)=desk_hoehe&
dmfdb%(3)=dmfdb%(1)/16
dmfdb%(5)=1
p%(0)=0
p%(1)=0
p%(2)=207
p%(3)=291
p%(4)=prex&+1
p%(5)=prey&+1
p%(6)=p%(4)+207
p%(7)=p%(5)+291
p%(8)=3
BITBLT smfdb%(),dmfdb%(),p%()
DEFFILL 1,1,1
GRAPHMODE 3
BOX prex0&,prey0&,prex0&+gtbv&,prey0&+gthv&
PBOX prex0&+gtbv&-8,prey0&+gthv&-8,prex0&+gtbv&,prey0&+gthv&
REPEAT
DO
~FORM_DO(tree28_adr%,0)
IF INT{GINTOUT}>0 AND INT{GINTOUT}<100
exit_button&=DPEEK(GINTOUT)
OB_STATE(tree28_adr%,exit_button&)=0
IF exit_button&<>gtprewin&
~OBJC_DRAW(tree28_adr%,exit_button&,8,xt28&,yt28&,bt28&,ht28&)
ENDIF
ENDIF
SELECT exit_button&
CASE gtdpimin&
IF gtdpiv&>100
IF gtdpiv&=480
gtdpiv&=400
ELSE
IF gtdpiv&=600
gtdpiv&=480
ELSE
SUB gtdpiv&,100
ENDIF
ENDIF
dpi_change(prex0&,prey0&,prex0_min&,prey0_min&)
ENDIF
CASE gtdpiplu&
IF gtdpiv&<600
IF gtdpiv&=400
gtdpiv&=480
ELSE
IF gtdpiv&=480
gtdpiv&=600
ELSE
ADD gtdpiv&,100
ENDIF
ENDIF
dpi_change(prex0&,prey0&,prex0_min&,prey0_min&)
ENDIF
CASE gtprewin&
MOUSE x_mouse%,y_mouse%,taste|
IF x_mouse%>prex0&+gtbv&-8 AND x_mouse%<prex0&+gtbv& AND y_mouse%>prey0&+gthv&-8 AND y_mouse%<prey0&+gthv&
DEFMOUSE 3
REPEAT
MOUSE x_mouse%,y_mouse%,taste|
IF x_mouse%<>x_mouse_old% OR y_mouse%<>y_mouse_old%
BOX prex0&,prey0&,prex0&+gtbv&,prey0&+gthv&
PBOX prex0&+gtbv&-8,prey0&+gthv&-8,prex0&+gtbv&,prey0&+gthv&
IF x_mouse%-prex0_min&<217 AND x_mouse%-prex0&>16
gtbv&=x_mouse%-prex0&
i%=AND(INT(gtbv&/25.4*gtdpiv&),&HFFF0)
gtbv&=CINT(i%*25.4/gtdpiv&)
ENDIF
IF y_mouse%-prey0_min&<298 AND y_mouse%-prey0&>16
gthv&=y_mouse%-prey0&
ENDIF
BOX prex0&,prey0&,prex0&+gtbv&,prey0&+gthv&
PBOX prex0&+gtbv&-8,prey0&+gthv&-8,prex0&+gtbv&,prey0&+gthv&
SHOWM
x_mouse_old%=x_mouse%
y_mouse_old%=y_mouse%
CHAR{{OB_SPEC(tree28_adr%,gtb&)}}=STR$(AND(INT(gtbv&/25.4*gtdpiv&),&HFFF0))
CHAR{{OB_SPEC(tree28_adr%,gth&)}}=STR$(INT(gthv&/25.4*gtdpiv&))
~OBJC_DRAW(tree28_adr%,gtb&,8,xt28&,yt28&,bt28&,ht28&)
~OBJC_DRAW(tree28_adr%,gth&,8,xt28&,yt28&,bt28&,ht28&)
ENDIF
UNTIL taste|=0
DEFMOUSE 0
ELSE
IF x_mouse%>prex0& AND x_mouse%<prex0&+gtbv& AND y_mouse%>prey0& AND y_mouse%<prey0&+gthv&
x_mouse_old%=x_mouse%
y_mouse_old%=y_mouse%
DEFMOUSE 3
REPEAT
MOUSE x_mouse%,y_mouse%,taste|
IF x_mouse%<>x_mouse_old% OR y_mouse%<>y_mouse_old%
x_changed&=x_mouse%-x_mouse_old%
y_changed&=y_mouse%-y_mouse_old%
BOX prex0&,prey0&,prex0&+gtbv&,prey0&+gthv&
PBOX prex0&+gtbv&-8,prey0&+gthv&-8,prex0&+gtbv&,prey0&+gthv&
IF prex0&+x_changed&>=prex0_min& AND prex0&+x_changed&+gtbv&<prex0_max&
ADD prex0&,x_changed&
ENDIF
IF prey0&+y_changed&>=prey0_min& AND prey0&+y_changed&+gthv&<prey0_max&
ADD prey0&,y_changed&
ENDIF
BOX prex0&,prey0&,prex0&+gtbv&,prey0&+gthv&
PBOX prex0&+gtbv&-8,prey0&+gthv&-8,prex0&+gtbv&,prey0&+gthv&
SHOWM
x_mouse_old%=x_mouse%
y_mouse_old%=y_mouse%
CHAR{{OB_SPEC(tree28_adr%,gtx&)}}=STR$(AND(INT((prex0&-prex0_min&)/25.4*gtdpiv&),&HFFF8))
CHAR{{OB_SPEC(tree28_adr%,gty&)}}=STR$(AND(INT((prey0&-prey0_min&)/25.4*gtdpiv&),&HFFF8))
~OBJC_DRAW(tree28_adr%,gtx&,8,xt28&,yt28&,bt28&,ht28&)
~OBJC_DRAW(tree28_adr%,gty&,8,xt28&,yt28&,bt28&,ht28&)
ENDIF
UNTIL taste|=0
DEFMOUSE 0
ENDIF
ENDIF
CASE gtpresca&
gt_info(scannen$+pre_view$)
HIDEM
gt6000%=VARPTR(gt6000$)
$C+
VOID C:gt6000%(1,50,3,3,gthalbton&,0,0,26,292,L:V:prebuf$,L:V:prebuf$+8000)
$C-
OUT (2),13
trigger_0
DEFMOUSE 3
SHOWM
BOX prex0&,prey0&,prex0&+gtbv&,prey0&+gthv&
PBOX prex0&+gtbv&-8,prey0&+gthv&-8,prex0&+gtbv&,prey0&+gthv&
smfdb%(0)=V:prebuf$
BITBLT smfdb%(),dmfdb%(),p%()
BOX prex0&,prey0&,prex0&+gtbv&,prey0&+gthv&
PBOX prex0&+gtbv&-8,prey0&+gthv&-8,prex0&+gtbv&,prey0&+gthv&
gt_info(waehle$)
ENDSELECT
EXIT IF exit_button&=gtcancel&
EXIT IF exit_button&=gtscan&
LOOP
IF exit_button&=gtcancel&
PUT xt28&-4,yt28&-4,rette$
ok!=TRUE
ENDIF
IF exit_button&=gtscan&
IF OB_STATE(tree28_adr%,gthart&)=1
gthalbton&=0
ELSE
IF OB_STATE(tree28_adr%,gtweich&)=1
gthalbton&=16
ELSE
IF OB_STATE(tree28_adr%,gtraster&)=1
gthalbton&=32
ELSE
gthalbton&=1
ENDIF
ENDIF
ENDIF
IF OB_STATE(tree28_adr%,gtrot&)=1
gtfarbev&=0
ELSE
IF OB_STATE(tree28_adr%,gtgruen&)=1
gtfarbev&=1
ELSE
IF OB_STATE(tree28_adr%,gtblau&)=1
gtfarbev&=2
ELSE
gtfarbev&=3
ENDIF
ENDIF
ENDIF
IF OB_STATE(tree28_adr%,k0&)=1
gtkontrav&=0
ELSE
IF OB_STATE(tree28_adr%,k1&)=1
gtkontrav&=1
ELSE
IF OB_STATE(tree28_adr%,k2&)=1
gtkontrav&=2
ELSE
IF OB_STATE(tree28_adr%,k3&)=1
gtkontrav&=3
ELSE
IF OB_STATE(tree28_adr%,k4&)=1
gtkontrav&=4
ELSE
IF OB_STATE(tree28_adr%,k5&)=1
gtkontrav&=5
ELSE
gtkontrav&=6
ENDIF
ENDIF
ENDIF
ENDIF
ENDIF
ENDIF
gt_info(scannen$+bereich$)
gtxorig&=CINT(AND(INT((prex0&+2-prex0_min&)/25.4*gtdpiv&),&HFFF8)/8)
gtyorig&=CINT((prey0&+2-prey0_min&)/25.4*gtdpiv&)
gtxbytes&=CINT(AND(INT(gtbv&/25.4*gtdpiv&),&HFFF0)/8)
gtyzeilen&=CINT(gthv&/25.4*gtdpiv&)
IF gtxbytes&*(gtyzeilen&+1)<work_space%
HIDEM
gt6000%=VARPTR(gt6000$)
$C+
i%=C:gt6000%(0,gtdpiv&,gtfarbev&,gtkontrav&,gthalbton&,gtxorig&,gtyorig&,gtxbytes&,gtyzeilen&,L:daten_ptr%,L:daten_ptr%+work_space%)
$C-
OUT (2),13
trigger_0
DEFMOUSE 3
SHOWM
ELSE
i%=-1
ENDIF
IF i%>=0
gt_info(waehle$)
PUT xt28&-4,yt28&-4,rette$
layer!=TRUE
layer_geladen!=TRUE
voll_bild!=TRUE
outlined!=FALSE
do_change_aufloesung(AND(INT(gtbv&/25.4*gtdpiv&),&HFFF0),INT(gthv&/25.4*gtdpiv&),1)
init_bit_blit
p_zoom(zoom*100,zoom*100)
do_redraw
ok!=TRUE
ELSE
FOR i%=1 TO 5
gt_info(fehler$)
PAUSE 15
gt_info(" ")
PAUSE 15
NEXT i%
gt_info(waehle$)
ok!=FALSE
ENDIF
ENDIF
UNTIL ok!
gtxv&=prex0&
gtyv&=prey0&
~WIND_GET(1,4)
clip(x_window&,y_window&,b_window&,h_window&,INT{GINTOUT+2},INT{GINTOUT+4})
set_clip_offset
GRAPHMODE 1
DEFFILL 0,0
DEFMOUSE 3
init_bit_blit
RETURN
'
PROCEDURE set_clip_offset
INT{WINDTAB+64}=INT{WINDTAB+64}-x_offset&
INT{WINDTAB+66}=INT{WINDTAB+66}-y_offset&
RETURN
'
PROCEDURE helpo(help$)
TITLEW #1,ein_space$+help$+ein_space$
set_clip_offset
RETURN
'
PROCEDURE help(help$)
TITLEW #1,ein_space$+waehle$+help$+ein_space$
set_clip_offset
RETURN
'
PROCEDURE help_titel
TITLEW #1,ein_space$+pfad_vek$+"\"+programm$+".VEK "
set_clip_offset
DEFMOUSE 3
DEFLINE 1
COLOR 1
GRAPHMODE 1
p_xy_info("X:","Y:",0)
SHOWM
trigger_0
zeit%=TIMER
RETURN
'
PROCEDURE polygon_fill
REPEAT
DEFMOUSE 0
GET xt20&-4,yt20&-4,xt20&+bt20&+4,yt20&+ht20&+4,rette$
SETMOUSE xt20&+bt20&/2,yt20&+160,0
~OBJC_DRAW(tree20_adr%,0,8,xt20&,yt20&,bt20&,ht20&)
~FORM_DO(tree20_adr%,0)
exit_button&=DPEEK(GINTOUT)
OB_STATE(tree20_adr%,exit_button&)=0
PUT xt20&-4,yt20&-4,rette$
IF OB_STATE(tree20_adr%,fill1&)=1
DEFFILL 1,2,1
ELSE IF OB_STATE(tree20_adr%,fill2&)=1
DEFFILL 1,2,2
ELSE IF OB_STATE(tree20_adr%,fill3&)=1
DEFFILL 1,2,3
ELSE IF OB_STATE(tree20_adr%,fill4&)=1
DEFFILL 1,2,4
ELSE IF OB_STATE(tree20_adr%,fill5&)=1
DEFFILL 1,2,5
ELSE IF OB_STATE(tree20_adr%,fill6&)=1
DEFFILL 1,2,6
ELSE IF OB_STATE(tree20_adr%,fill7&)=1
DEFFILL 1,2,8
ENDIF
DEFMOUSE mdaten$
help(help_polygon$)
IF exit_button&<>fillcancel&
REPEAT
trigger_0
wait_taste
IF taste|<>2
FILL x_mouse%,y_mouse%
ENDIF
UNTIL taste|=2
ENDIF
UNTIL exit_button&=fillcancel&
~FRE(0)
DEFFILL 1,1
help_titel
RETURN
'
' *****************************************************************************
' * TANGENTE NIVELLIEREN *
' * *
' * VERÄNDERT VAR: Punkte_X%(), Punkte_Y%() *
' * *
' *****************************************************************************
'
PROCEDURE do_niv_tangente(found_quelle%,von%,bis%,dreh_x%,dreh_y%)
LOCAL phi,strecke
dx=SUB(dreh_x%,punkte_x%(found%))
dy=SUB(dreh_y%,punkte_y%(found%))
strecke=SQR(dx*dx+dy*dy)
get_phi(dreh_x%,dreh_y%,punkte_x%(found_quelle%),punkte_y%(found_quelle%),phi)
redraw_von_bis(von%,bis%,0)
punkte_x%(found%)=CINT(dreh_x%-strecke*COS(phi))
punkte_y%(found%)=CINT(dreh_y%-strecke*SIN(phi))
redraw_von_bis(von%,bis%,1)
RETURN
'
PROCEDURE tangente_nivellieren
LOCAL found_quelle%,quelle_def|
LOCAL von%,bis%,f%,dreh_x%,dreh_y%
IF pointer%>1
show_cursor_fang
REPEAT
trigger_0
GRAPHMODE 1
REPEAT
wait_taste
EXIT IF taste|=2
find(x_mouse%*100/zoom,y_mouse%*100/zoom)
quelle_def|=punkte_def|(found%)
UNTIL (quelle_def|>da| AND quelle_def|<b3|)
IF taste|<>2
found_quelle%=found%
IF quelle_def|=b1|
IF punkte_def|(found_quelle%-1)=b3|
found%=found_quelle%-2
von%=found_quelle%-4
bis%=von%+3
dreh_x%=punkte_x%(found_quelle%-1)
dreh_y%=punkte_y%(found_quelle%-1)
do_niv_tangente(found_quelle%,von%,bis%,dreh_x%,dreh_y%)
ELSE
IF punkte_def|(found_quelle%-1)=da|
found%=found_quelle%
found_quelle%=found%-2
von%=found%-1
bis%=von%+3
dreh_x%=punkte_x%(found%-1)
dreh_y%=punkte_y%(found%-1)
do_niv_tangente(found_quelle%,von%,bis%,dreh_x%,dreh_y%)
ELSE
IF punkte_def|(found_quelle%-1)=ma|
found%=found_quelle%
REPEAT
INC found%
UNTIL punkte_def|(found%)=ma|
DEC found%
IF punkte_def|(found%)=b3|
DEC found%
von%=found%-2
bis%=von%+3
dreh_x%=punkte_x%(found_quelle%-1)
dreh_y%=punkte_y%(found_quelle%-1)
do_niv_tangente(found_quelle%,von%,bis%,dreh_x%,dreh_y%)
ELSE
IF punkte_def|(found%)=da|
f%=found_quelle%
found_quelle%=found%-1
found%=f%
von%=found%-1
bis%=von%+3
dreh_x%=punkte_x%(found_quelle%+1)
dreh_y%=punkte_y%(found_quelle%+1)
do_niv_tangente(found_quelle%,von%,bis%,dreh_x%,dreh_y%)
ENDIF
ENDIF
ENDIF
ENDIF
ENDIF
ELSE
IF quelle_def|=b2|
IF punkte_def|(found_quelle%+2)=b1|
found%=found_quelle%+2
von%=found_quelle%+1
bis%=von%+3
dreh_x%=punkte_x%(found_quelle%+1)
dreh_y%=punkte_y%(found_quelle%+1)
do_niv_tangente(found_quelle%,von%,bis%,dreh_x%,dreh_y%)
ELSE
IF punkte_def|(found_quelle%+2)=da|
found%=found_quelle%
found_quelle%=found%+2
von%=found%-2
bis%=von%+3
dreh_x%=punkte_x%(found%+1)
dreh_y%=punkte_y%(found%+1)
do_niv_tangente(found_quelle%,von%,bis%,dreh_x%,dreh_y%)
ELSE
IF punkte_def|(found_quelle%+2)=ma|
found%=found_quelle%
REPEAT
DEC found%
UNTIL punkte_def|(found%)=ma|
INC found%
IF punkte_def|(found%)=b1|
von%=found%-1
bis%=von%+3
dreh_x%=punkte_x%(found_quelle%+1)
dreh_y%=punkte_y%(found_quelle%+1)
do_niv_tangente(found_quelle%,von%,bis%,dreh_x%,dreh_y%)
ELSE
IF punkte_def|(found%)=da|
f%=found_quelle%
found_quelle%=found%
found%=f%
von%=found%-2
bis%=von%+3
dreh_x%=punkte_x%(found_quelle%-1)
dreh_y%=punkte_y%(found_quelle%-1)
do_niv_tangente(found_quelle%,von%,bis%,dreh_x%,dreh_y%)
ENDIF
ENDIF
ENDIF
ENDIF
ENDIF
ENDIF
ENDIF
ENDIF
UNTIL taste|=2
DEFMOUSE 3
ENDIF
RETURN
'
' *****************************************************************************
' * ASCII Editor *
' * *
' * *
' * ' ******************************************************************************
' * *
' * CUTOUT *
' * *
' * 27.02.1992 *
' * *
' ******************************************************************************
'
'
$B+
$I-
INLINE scsi%,933
DIM buffer|(512*2)
DIM command|(12)
' VAR:
' apl_id&=APPL_INIT()
magic%=14031952
'
' serien_nummer$="REGIST00"
' serien_nummer_vergleich$="REGIST11"
serien_nummer$=MKD$(101)
serien_nummer_vergleich$=MKD$(101 XOR magic%)
'
fang_schnittpunkt|=4
buffer%=0
buffer_max%=0
poly_len%=0
bits%=0
punkt_eintrag&=0
x_start&=0
y_start&=0
edi_max&=0
m=0
m_neu=0
bit_count|=0
pixel!=FALSE
'
regist_nr%=0
revision$="1.59"
zeit%=TIMER
calamus_nr%=0
ortho|=45
ortho=RAD(ortho|)
ortho2=ortho/2
x_win&=0 ! Window X pos aktuell
y_win&=0 ! Window Y pos aktuell
x_window&=0 ! Window X pos aktuell
y_window&=0 ! Window Y pos aktuell
b_window&=0 ! Window Breite aktuell
h_window&=0 ! Window Höhe aktuell
~WIND_GET(0,4,scrx&,scry&,scrb&,scrh&) ! maximaler Desktop
wmx%=scrb&-62
wmy%=scrh&-57+scry&
desk_breite&=scrb&
desk_hoehe&=scrh&+scry&
gross_bildschirm!=FALSE
IF desk_breite&>640 OR desk_hoehe&>400
gross_bildschirm!=TRUE
ENDIF
ADD scrx&,42 ! Position Window X+Menuleiste
SUB scrb&,42 ! Breite Window
scrb_old&=scrb&
scrh_old&=scrh&
res_x%=0 ! Auflösung x in mm
res_y%=0 ! Auflösung y in mm
res_x_old%=0
res_y_old%=0
x_layer%=0
y_layer%=0
x_layero%=0
y_layero%=0
x_offset&=0 ! Nullpunkt x im Fenster
y_offset&=0 ! Nullpunkt y im Fenster
x_offset_old&=0
y_offset_old&=0
x_mouse%=0
y_mouse%=0
x_mouse_old%=0
y_mouse_old%=0
x_mouse_0%=0
y_mouse_0%=0
objectbox_x0%=0
objectbox_y0%=0
objectbox_x1%=0
objectbox_y1%=0
grid%=10 ! raster mm
schraff_dist=201
schraff_inc=0
schraff_fix_abst=0
schraff_winkel=0
schraff_start%=0
schraff_y_min%=0
bit_count_max|=6
geraden_fehler|=1
lange_gerade%=4000
schmutz_filter%=20
knick_winkel_max=RAD(140)
bogen_max=PI/2/2
abweichung_gerade%=0.5*100
last_poly_s%=-1
last_poly_e%=-1
taste|=0
zoom=1
zoom_old=1
zoom_100=1
pointer%=0 ! Zeiger auf Punkteliste
found%=0 ! gefundener Punkt bei SNAP
found_t%=0 ! gefundener Kurvenparameter
schnittpunkt_genau%=16 ! Zerlegung Bezier in Teile
anz_schnittpunkte%=0 ! Anzahl Schnittpunkte
b_vari=100
i%=0 ! allgemeiner Schleifenzähler
ii%=0
iii%=0
d0%=0
dx%=0
dy%=0
dx=0
dy=0
schnitt_laenge=0
kostfak=1
gkosten=0
px0%=0
py0%=0
px1%=0
py1%=0
px2%=0
py2%=0
px3%=0
py3%=0
m_square_breite&=&H3000
m_square_hoehe&=&H3000
kerning_256|=m_square_breite& DIV 256
len_pair_daten&=0
z_hoehe_def%=16384 ! Höhe des definierten Zsatzes
z_breite_def%=16384 ! Breite "
zeichen_hoehe%=3000 ! gewünschte Höhe in 1/100 mm
versal_def%=0 ! Versal Höhe in 1/100 mm
z_ascii_scale=zeichen_hoehe%/z_hoehe_def% ! Scaling
z_ascii_scale_old=z_ascii_scale ! save Scaling
global_kerning%=1280 ! globales Kerning
zeilen_abstand_prozent%=125 ! relativer Zeilen Abstand
zeilen_abstand%=zeichen_hoehe%*zeilen_abstand_prozent%/100-zeichen_hoehe%
z_cursor_x_spalte%=0 ! Start String
z_cursor_x%=0 ! ASCII Zeichen Cursor X
z_cursor_y%=0 ! ASCII Zeichen Cursor y
z_cursor_x_old%=0 ! letztes Zeichen Cursor X
z_cursor_y_old%=0 ! letztes Zeichen Cursor y
z_ascii_old%=0 ! letztes Zeichen ASCII+32
z_satz_pointer%=0 ! Pointer auf Zeichensatz
state_rs232&=0 ! Centronics aktiv
state_hp&=0 ! HPGL aktiv
folie_x%=1188 ! Folien Grö₧e
folie_y%=840
plotter_x_min%=0
plotter_y_min%=0
gdu=0 ! 100*Plottereinheit
sel_start%=0
sel_end%=0
gtxv&=0
gtyv&=0
gtbv&=216
gthv&=297
gtdpiv&=300
gtfarbev&=3
gtkontrav&=3
exit_button&=0
cursor_x&=0
cursor_y&=0
ofn_ver|=0
overcut|=0
geschlossen%=0
'
phi_x_3d=0
phi_y_3d=0
a2_3d=0
'
daten_ptr%=0
work_space%=0
'
' CONST:
'
IF FRE(0)>4000000
p_max%=99999
ELSE
p_max%=60000
ENDIF
ma|=0
da|=1
b1|=2
b2|=3
b3|=4
ein_drittel=1/3
fmin=2.225073858507E-307
fmin1=0.005
max1=0.995
pimal2=PI*2
pihalbe=PI/2
pidrittel=PI/3
fang_rad%=8*100 ! FANGRADIUS
p_at%=XBIOS(3)+76 ! PRINT AT FÜR X,Y
p_at_zoom%=p_at%-12 ! PRINT AT FÜR ZOOM
x_bytes%=(scrb&+42)/8 ! BYTES IN X RICHTUNG DESKTOP
'
' CONST: Menuleiste
'
tree00&=0
tree0_adr%=0
datei&=3
eintrag&=4
mfenster&=10
mtext&=5
mzedi&=6
spezial&=7
all_clear&=8
bbogen&=9
mschnitt&=11
'
tree01&=1
tree1_adr%=0
back_main&=3
fwd_main&=4
gerade&=5
kurve&=6
schliess&=7
verrunde&=8
loeschen&=9
lock&=10
snap&=11
bild&=12
zircel&=13
bezier4&=14
schere&=15
' fenster&=15
'
tree02&=2
tree2_adr%=0
back_datei&=3
fwd_datei&=4
l_vek&=5
l_merge&=6
r_macro&=7
r_cvg&=8
l_img&=9
l_pic&=10
ordner&=11
s_vek&=12
s_plt&=13
a_plotter&=14
'
tree03&=3
tree3_adr%=0
back_fenster&=3
fwd_fenster&=4
fmove&=5
blitz&=6
fcopy&=7
fzoom&=8
fzoomp&=9
fdreh&=10
fspiegel&=11
fkursiv&=12
dreh3d&=13
drehxp&=14
drehxm&=15
drehym&=16
drehyp&=17
floesch&=18
fzoom1&=19
'
tree04&=4
tree4_adr%=0
back_spezial&=3
gtepson&=4
handy&=5
kontour&=6
filter&=7
trace&=8
smooth&=9
simag&=10
'
tree05&=5
tree5_adr%=0
back_text&=3
fwd_text&=4
z_edit&=5
z_editor&=6
z_string&=7
z_t_hoehe&=8
z_t_abstand&=9
z_g_kerning&=10
z_read_ascii&=11
l_font&=12
s_font&=14
c_font&=13
'
tree06&=6
tree6_adr%=0
t_hoehe&=1
'
tree07&=7
tree7_adr%=0
zabs&=1
'
tree08&=8 ! String Text
tree8_adr%=0
string_text&=1
breite&=3
string_breite&=4
versal&=5
string_versal&=6
pfad&=7
do_kerning&=8
string_kreis&=9
string_kreis_von&=10
string_kreis_bis&=11
fontname&=13
c_text&=14
icon_pair&=15
icon_trep&=16
'
tree09&=9 ! Zeichen Editor
tree9_adr%=0
back_editor&=3
m_matrix&=4
z_matrix&=5
move_matrix&=6
kerning_links&=7
kerning_rechts&=8
kerning_auto&=9
z_get&=10
z_muell&=11
z_up&=13
z_down&=14
z_char&=15
'
tree10&=10
tree10_adr%=0
b_kerning&=2
g_kerning&=3
'
tree11&=11 ! Optimier
tree11_adr%=0
del_ma&=4
del_ge&=6
del_el&=8
'
tree12&=12
tree12_adr%=0
bstep&=1
'
tree13&=13 ! Info
tree13_adr%=0
vernr&=7
version&=4
firma&=4
strasse&=7
stadt&=10
punkte&=15
rest&=17
'
tree14&=14 ! Auflösung
tree14_adr%=0
rx1&=8
ry1&=10
rx2&=12
ry2&=13
rx3&=16
ry3&=17
get_pf&=19
r1&=4
r2&=5
r3&=6
'
tree15&=15 ! Plotter INIT
tree15_adr%=0
p_init1&=3
p_init2&=4
gdu01&=9
gdu025&=10
gdu05&=11
gdu1&=12
overcut&=16
cent&=18
rs232&=20
hp&=23
gp&=24
mgl&=25
ma&=29
da&=30
'
tree16&=16 ! Pfade und Parameter
tree16_adr%=0
pv&=5
pp&=7
pfi&=9
pg&=11
pf&=13
df&=15
p1&=17
p2&=19
schnitt&=21
gdu&=23
foliex&=25
foliey&=27
warn&=29
cancel&=31
'
tree17&=17
tree17_adr%=0
outl&=1
outl_anz&=2
'
tree18&=18
tree18_adr%=0
schraffd&=1
schraffi&=2
schrafix&=3
schraffw&=4
schraffa&=7
schrafff&=8
'
tree19&=19
tree19_adr%=0
necka&=1
neckp&=2
'
tree20&=20 ! Füll
tree20_adr%=0
fill1&=3
fill2&=5
fill3&=7
fill4&=9
fill5&=11
fill6&=13
fill7&=15
fillcancel&=17
'
tree21&=21 ! Trace
tree21_adr%=0
t_step&=7
t_gerade&=8
t_schmutz&=9
bschwelle&=21
knickwinkel&=22
bogen_max&=23
abweichung_gerade&=24
nur_gerade&=13
trace_cancel&=14
gerade_bezier&=30
'
tree22&=22
tree22_adr%=0
scann_x&=1
scann_y&=2
'
tree23&=23
tree23_adr%=0
radius&=1
'
tree24&=24
tree24_adr%=0
grau&=6
stark&=7
selgrau0&=4
selgrau&=5
sellinie&=8
alle&=9
auswahl&=10
'
tree25&=25 ! Bogen
tree25_adr%=0
backboge&=3
vkreis&=4
kreis3&=5
kreisbog&=6
bogen3&=7
bogen2&=8
ellipse&=9
elbogen&=10
eckrund&=11
'
tree26&=26 ! Koordinaten
tree26_adr%=0
absolut&=2
relativ&=3
polar&=4
'
tree27&=27 ! Calamus Versions Nr.
tree27_adr%=0
calamus_nr&=1
'
tree28&=28 ! GT 6000
tree28_adr%=0
gtscan&=47
gtx&=38
gty&=44
gtb&=42
gth&=43
gtcancel&=46
gtpresca&=45
gtdpi&=35
gtdpimin&=33
gtdpiplu&=34
gtprewin&=1
gtstate&=5
gtkeiner&=9
gtraster&=10
gtweich&=11
gthart&=12
gtkeine&=15
gtrot&=18
gtgruen&=17
gtblau&=16
k0&=22
k1&=23
k2&=24
k3&=25
k4&=26
k5&=27
k6&=28
'
tree29&=29 ! Kosten
tree29_adr%=0
kostfak&=1
sl&=2
gkosten&=4
'
tree30&=30 ! Select Filter
tree30_adr%=0
abs_filter&=1
'
tree31&=31 ! Select Fenster
tree31_adr%=0
ohnecopy&=1
mitcopy&=6
anz_rot&=3
phi_rot&=4
numohne&=5
ausricht_vector&=7
'
tree32&=32 ! Select Spiegel
tree32_adr%=0
anbox&=2
anachse&=1
'
tree33&=33
tree33_adr%=0
teil&=1
'
tree34&=34 ! Schnittpunkt
tree34_adr%=0
backschn&=3
fwdschn&=4
trimm&=5
knack&=6
lot&=7
teilen&=8
lang&=9
schnitt2&=10
schnittn&=11
delseg&=12
delel&=13
schmelz&=14
'
tree35&=35 ! Select Copy
tree35_adr%=0
copysing&=1
copymul&=2
cx&=4
cy&=5
canz&=6
cdist&=7
'
tree36&=36 ! Ausrichten
tree36_adr%=0
a_olinks&=1
a_oben&=2
a_orechts&=3
a_links&=4
a_mitte&=5
a_rechts&=6
a_ulinks&=7
a_unten&=8
a_urechts&=9
'
tree37&=37 ! Scalieren
tree37_adr%=0
scale_interactiv&=1
scale_numerisch&=2
scale_breite&=4
scale_hoehe&=5
'
tree38&=38 ! Ordner
tree38_adr%=0
ordnert&=1
ordnerok&=2
ordnerca&=3
'
tree39&=39 ! Kerning
tree39_adr%=0
kerning_box&=1
kerning_minus&=3
kerning_plus&=4
kerning_last&=2
kerning_next&=5
kerning_exit&=6
kerning_minus2&=9
kerning_plus2&=10
kerning_last2&=8
kerning_next2&=11
kerning_clear&=7
kerning_info&=13
kerning_pair&=15
'
tree40&=40 ! Plotter OUTPUT
tree40_adr%=0
pl100&=3
plschieber&=4
plschere&=7
plschereauf&=5
plscherezu&=6
plschere&=7
'
tree41&=41 ! Select Neigen
tree41_adr%=0
neige_grad&=2
neige_vertical&=3
neige_horizontal&=4
neige_interaktiv&=5
'
' FLAG:
'
undo!=FALSE
geschlossen!=FALSE
ok!=FALSE ! allgemein
layer_geladen!=FALSE ! ist Layer geladen
layer!=FALSE ! soll Layer gezeigt werden
window_fulled!=TRUE ! ist Fenster schon gro₧
voll_bild!=FALSE ! ist Fenster komplett auf Crt
eintragen!=FALSE ! ist eintragen aktiv
bogen!=FALSE
mtext!=FALSE
meditor!=FALSE
datei!=FALSE
fenster!=FALSE
schnittpunktm!=FALSE
loeschen!=FALSE ! ist loeschen aktiv
neues_polygon!=TRUE ! erster Punkt im Polygon
found!=FALSE ! gefunden bei Fangradius
marker!=FALSE ! sollen Marker gezeigt werden
marker_select!=FALSE ! soll Marker selectiert
modified!=FALSE ! wurde Vektorbild geändert
font_geladen!=FALSE ! ist ein Font geladen
outlined!=FALSE ! wurde Bitmap schon outlined
auto_schraff!=TRUE
schraff_fix_abst!=FALSE
einpassen!=FALSE
tangente!=FALSE
tangenten_lock!=TRUE
warn!=FALSE
gp_gl!=FALSE ! HPGL oder GPGL
tasten_rep!=FALSE
absolut!=TRUE
relativ!=FALSE
polar!=FALSE
absolut_old!=FALSE
polar_old!=FALSE
fangklein!=FALSE ! Fangradius gro₧
fadenkreuz!=FALSE
polygonmode!=TRUE ! Polygonmodus
ortho!=FALSE
grid!=FALSE
scrolled!=FALSE
move!=FALSE
drei_d!=FALSE
status_wechsel!=FALSE
grid_wechsel!=FALSE
swap!=FALSE
'
' ARRAY:
'
DIM smfdb%(8),dmfdb%(8),p%(8)
DIM z_smfdb%(8),z_dmfdb%(8),z_p%(8),q_dmfdb%(8)
DIM punkte_x%(p_max%),punkte_y%(p_max%),punkte_def|(p_max%),buffer%(p_max%/2)
DIM x_meta%(127),y_meta%(127),punkte_def1|(32)
ARRAYFILL punkte_def1|(),1
DIM bezier_x&(33),bezier_y&(33)
DIM m$(87)
DIM mk%(60,2)
DIM m_square%(5)
DIM z_editor%(32)
DIM z_ascii%(224),z_kerning&(224*16),z_daten&(224*280),z_pair&(224),z_pair|(224),z_pair_daten|(2000)
DIM sx1%(9),sy1%(9),sx2%(9),sy2%(9),sp1(9),sp2(9)
DIM zeilen_buffer$(60)
rette$=SPACE$(32000)
pfad$=SPACE$(80)
kerning_string$=SPACE$(60)
pfad_pic$=SPACE$(80)
pfad_img$=SPACE$(80)
pfad_vek$=SPACE$(80)
pfad_vek_root$=SPACE$(80)
pfad_cvg$=SPACE$(80)
pfad_fnt$=SPACE$(80)
pfad_cfn$=SPACE$(80)
default_font$=SPACE$(10)
programm$=SPACE$(10)
programm_font$=SPACE$(10)
test_datei$=SPACE$(10)
object$=SPACE$(80)
p_init1$=SPACE$(40)
p_init2$=SPACE$(40)
abc$="CutOut Test"
ma$="M"
da$="D"
cutout_font$="CUTOUTOFN"
calamus_font_grafik$=MKI$(159)+MKI$(15)+MKI$(1)+SPACE$(320)
ok$="OK"
ein_space$=" "
x_y$="X|Y"
erster$="1. "
zweiter$="2. "
help_on$="ON "
help_off$="OFF"
vek$="VEK"
cvg$="CVG"
img$="IMG"
plt$="PLT"
calamus$="CALAMUS"
cutout$="CutOut"
' ****************************************************************************
OPEN "I",#1,"SYS\LANGUAGE.DRV"
LINE INPUT #1,pd_menu$
LINE INPUT #1,pd_datei$
LINE INPUT #1,pd_editieren$
LINE INPUT #1,pd_fenster$
LINE INPUT #1,pd_schnittpunkt$
LINE INPUT #1,pd_bogen$
LINE INPUT #1,pd_text$
LINE INPUT #1,pd_zeicheneditor$
LINE INPUT #1,pd_extra$
LINE INPUT #1,pd_quit$
'
LINE INPUT #1,pd_optionen$
LINE INPUT #1,pd_marker_anzeigen$
LINE INPUT #1,pd_tangenten_anzeigen$
LINE INPUT #1,pd_fangradius_klein$
LINE INPUT #1,pd_polygon_modus$
LINE INPUT #1,pd_schnittpunkt_genau$
LINE INPUT #1,pd_koordinaten$
LINE INPUT #1,pd_element_selektieren$
LINE INPUT #1,pd_polygon_selektieren$
LINE INPUT #1,pd_warnmeldungen$
LINE INPUT #1,pd_skaliere_alles$
LINE INPUT #1,pd_punkte_nivellieren$
LINE INPUT #1,pd_tangente$
LINE INPUT #1,pd_plotflaeche$
LINE INPUT #1,pd_bezier_step_aendern$
LINE INPUT #1,pd_plotter_einstellung$
LINE INPUT #1,pd_kosten_faktor$
LINE INPUT #1,pd_pfad_sichern$
'
LINE INPUT #1,pd_figur$
LINE INPUT #1,pd_rechteck$
LINE INPUT #1,pd_n_eck$
LINE INPUT #1,pd_polygon_outline$
LINE INPUT #1,pd_aequidistante$
LINE INPUT #1,pd_frame$
LINE INPUT #1,pd_polygone_ausrichten$
LINE INPUT #1,pd_polygone_zentrieren$
LINE INPUT #1,pd_polygone_vereinen$
LINE INPUT #1,pd_polygone_fuellen$
LINE INPUT #1,pd_einzelne_punkte_loeschen$
'
LINE INPUT #1,pd_linie$
LINE INPUT #1,pd_bezier_vektor$
LINE INPUT #1,pd_bezier_einfuegen$
LINE INPUT #1,pd_tausche_bezier_vektor$
LINE INPUT #1,pd_knacken$
LINE INPUT #1,pd_trimmen$
LINE INPUT #1,pd_lot$
LINE INPUT #1,pd_verlaengern$
LINE INPUT #1,pd_teilen$
LINE INPUT #1,pd_messen$
LINE INPUT #1,pd_schnittp_2er$
LINE INPUT #1,pd_schnittp_n$
'
LINE INPUT #1,pd_effekt$
LINE INPUT #1,pd_parameter_schraffur$
LINE INPUT #1,pd_polygon_schraffieren$
LINE INPUT #1,pd_alles_schraffieren$
LINE INPUT #1,pd_schatten$
LINE INPUT #1,pd_einpassen$
LINE INPUT #1,pd_kugel$
'
LINE INPUT #1,lade$
LINE INPUT #1,sichere$
LINE INPUT #1,fuege_ein$
LINE INPUT #1,vektor$
LINE INPUT #1,macro$
LINE INPUT #1,daten$
LINE INPUT #1,zeichensatz$
LINE INPUT #1,kein$
LINE INPUT #1,keine$
LINE INPUT #1,ja_nein$
LINE INPUT #1,waehle$
LINE INPUT #1,fehler$
LINE INPUT #1,scannen$
LINE INPUT #1,pre_view$
LINE INPUT #1,ascii_importieren$
LINE INPUT #1,ascii_exportieren$
LINE INPUT #1,schriftblock$
LINE INPUT #1,radius_zu$
LINE INPUT #1,winkel_zu$
LINE INPUT #1,leider$
LINE INPUT #1,winkel_einstellen$
LINE INPUT #1,spiegelachse$
LINE INPUT #1,lupe_mal$
LINE INPUT #1,fensterbereich$
LINE INPUT #1,drehzentrum$
LINE INPUT #1,ordner_exist$
LINE INPUT #1,kein_leer$
LINE INPUT #1,suche_schnittpunkte$
LINE INPUT #1,gleiches_polygon$
LINE INPUT #1,bezugs$
LINE INPUT #1,zentriere$
LINE INPUT #1,huellkurve$
LINE INPUT #1,huellkurve1$
LINE INPUT #1,berechne$
LINE INPUT #1,rechte_taste$
LINE INPUT #1,endpunkt$
LINE INPUT #1,lot_an$
LINE INPUT #1,noname$
LINE INPUT #1,symbol$
LINE INPUT #1,orginal_fenster$
LINE INPUT #1,dmc_font$
LINE INPUT #1,bild_datei_zu$
LINE INPUT #1,stad_laden$
LINE INPUT #1,plotter_ist_off$
LINE INPUT #1,plot_datei$
LINE INPUT #1,kein_treiber$
LINE INPUT #1,schnittstelle_auf$
LINE INPUT #1,polygone_vereinen$
LINE INPUT #1,loesche_einzelne$
LINE INPUT #1,quelle$
LINE INPUT #1,ziel$
LINE INPUT #1,nivelliere$
LINE INPUT #1,alle_daten_l$
LINE INPUT #1,ganzer_zeichensatz$
LINE INPUT #1,font_daten_loeschen$
LINE INPUT #1,zeichen_matrix$
LINE INPUT #1,datei_existiert$
LINE INPUT #1,datei_ueberschreiben$
LINE INPUT #1,glaetten_mit$
LINE INPUT #1,gerade_bezier$
LINE INPUT #1,glaetten$
LINE INPUT #1,bereich$
LINE INPUT #1,path$
LINE INPUT #1,help_mittelpunkt$
LINE INPUT #1,help_radius$
LINE INPUT #1,help_position$
LINE INPUT #1,help_startwinkel$
LINE INPUT #1,help_endwinkel$
LINE INPUT #1,help_polygon$
LINE INPUT #1,help_punkt$
LINE INPUT #1,help_linie$
LINE INPUT #1,help_element$
LINE INPUT #1,help_verrund$
LINE INPUT #1,help_loesche$
LINE INPUT #1,help_trenn$
LINE INPUT #1,help_move$
LINE INPUT #1,help_sel$
LINE INPUT #1,help_move_window$
LINE INPUT #1,help_rahmen$
LINE INPUT #1,help_edit$
LINE INPUT #1,help_bezier$
LINE INPUT #1,help_status$
LINE INPUT #1,help_ortho$
LINE INPUT #1,help_grid$
LINE INPUT #1,help_free$
LINE INPUT #1,help_snap$
LINE INPUT #1,help_editor$
LINE INPUT #1,help_pfad$
CLOSE #1
' ****************************************************************************
integer%=VARPTR(punkte_x%(1))-VARPTR(punkte_x%(0)) ! Länge in Bytes Integer
'
z_editor%(0)=2048 ! Top Line Y
z_editor%(1)=3072 ! Ascent Line Y
z_editor%(2)=6144 ! Half Line Y
z_editor%(3)=11264 ! Base Line Y
z_editor%(4)=13952 ! Descent Line Y
z_editor%(5)=14336 ! Bottom Line Y
'
z_editor%(6)=0 ! Matrix links X
z_editor%(7)=16384 ! Matrix rechts X
z_editor%(8)=1280 ! Kerning links X
z_editor%(9)=1280 ! Kerning links X
z_editor%(10)=1280 ! Kerning links X
z_editor%(11)=1280 ! Kerning links X
z_editor%(12)=1280 ! Kerning links X
z_editor%(13)=1280 ! Kerning links X
z_editor%(14)=1280 ! Kerning links X
z_editor%(15)=1280 ! Kerning links X
z_editor%(16)=15104 ! Kerning rechts X
z_editor%(17)=15104 ! Kerning rechts X
z_editor%(18)=15104 ! Kerning rechts X
z_editor%(19)=15104 ! Kerning rechts X
z_editor%(20)=15104 ! Kerning rechts X
z_editor%(21)=15104 ! Kerning rechts X
z_editor%(22)=15104 ! Kerning rechts X
z_editor%(23)=15104 ! Kerning rechts X
z_editor%(24)=z_editor%(0) ! Kerning Y
z_editor%(25)=(z_editor%(5)-z_editor%(0))/8 ! Kerning Y
z_editor%(26)=z_editor%(24)+z_editor%(25) ! Kerning Y
z_editor%(27)=z_editor%(26)+z_editor%(25) ! Kerning Y
z_editor%(28)=z_editor%(27)+z_editor%(25) ! Kerning Y
z_editor%(29)=z_editor%(28)+z_editor%(25) ! Kerning Y
z_editor%(30)=z_editor%(29)+z_editor%(25) ! Kerning Y
z_editor%(31)=z_editor%(30)+z_editor%(25) ! Kerning Y
z_editor%(32)=0 ! Matrix oben Y
'
' ******************************************************************************
' * *
' * MENU INITIALISIERUNG *
' * *
' ******************************************************************************
'
BMOVE V:serien_nummer$,V:serien_nummer,8
BMOVE V:serien_nummer_vergleich$,V:serien_nummer_vergleich,8
regist_nr%=serien_nummer_vergleich
IF serien_nummer<>(serien_nummer_vergleich XOR magic%)
PRINT "SORRY HACKER"
PAUSE 300
SYSTEM
ENDIF
INLINE zasm_ptr%,4136
INLINE pack_img%,958
INLINE calc_bezier%,1050
INLINE p_num%,360
INLINE find_line%,356
INLINE kontour%,216
INLINE staddec%,184
INLINE imgdec%,228
INLINE findexcept%,52
INLINE findpointexcept%,70
mfang$=MKI$(7)+MKI$(7)+MKI$(1)+MKI$(0)+MKI$(1)
mfang$=mfang$+MKI$(&X1111111111111110)
mfang$=mfang$+MKI$(&X1111111111111110)
mfang$=mfang$+MKI$(&X1100001110000110)
mfang$=mfang$+MKI$(&X1100001110000110)
mfang$=mfang$+MKI$(&X1100001110000110)
mfang$=mfang$+MKI$(&X1100001110000110)
mfang$=mfang$+MKI$(&X1111110001111110)
mfang$=mfang$+MKI$(&X1111110001111110)
mfang$=mfang$+MKI$(&X1111110001111110)
mfang$=mfang$+MKI$(&X1100001110000110)
mfang$=mfang$+MKI$(&X1100001110000110)
mfang$=mfang$+MKI$(&X1100001110000110)
mfang$=mfang$+MKI$(&X1100001110000110)
mfang$=mfang$+MKI$(&X1111111111111110)
mfang$=mfang$+MKI$(&X1111111111111110)
mfang$=mfang$+MKI$(&X0)
'
mfang$=mfang$+MKI$(&X1111111111111110)
mfang$=mfang$+MKI$(&X1000000100000010)
mfang$=mfang$+MKI$(&X1000000100000010)
mfang$=mfang$+MKI$(&X1000000100000010)
mfang$=mfang$+MKI$(&X1000000100000010)
mfang$=mfang$+MKI$(&X1000000100000010)
mfang$=mfang$+MKI$(&X1000000000000010)
mfang$=mfang$+MKI$(&X1111110001111110)
mfang$=mfang$+MKI$(&X1000000000000010)
mfang$=mfang$+MKI$(&X1000000100000010)
mfang$=mfang$+MKI$(&X1000000100000010)
mfang$=mfang$+MKI$(&X1000000100000010)
mfang$=mfang$+MKI$(&X1000000100000010)
mfang$=mfang$+MKI$(&X1000000100000010)
mfang$=mfang$+MKI$(&X1111111111111110)
mfang$=mfang$+MKI$(&X0)
'
mfang_klein$=MKI$(7)+MKI$(7)+MKI$(1)+MKI$(0)+MKI$(1)
mfang_klein$=mfang_klein$+MKI$(&X0)
mfang_klein$=mfang_klein$+MKI$(&X0)
mfang_klein$=mfang_klein$+MKI$(&X11111111111000)
mfang_klein$=mfang_klein$+MKI$(&X11111111111000)
mfang_klein$=mfang_klein$+MKI$(&X11001110011000)
mfang_klein$=mfang_klein$+MKI$(&X11001110011000)
mfang_klein$=mfang_klein$+MKI$(&X11110001111000)
mfang_klein$=mfang_klein$+MKI$(&X11110001111000)
mfang_klein$=mfang_klein$+MKI$(&X11110001111000)
mfang_klein$=mfang_klein$+MKI$(&X11001110011000)
mfang_klein$=mfang_klein$+MKI$(&X11001110011000)
mfang_klein$=mfang_klein$+MKI$(&X11111111111000)
mfang_klein$=mfang_klein$+MKI$(&X11111111111000)
mfang_klein$=mfang_klein$+MKI$(&X0)
mfang_klein$=mfang_klein$+MKI$(&X0)
mfang_klein$=mfang_klein$+MKI$(&X0)
'
mfang_klein$=mfang_klein$+MKI$(&X0)
mfang_klein$=mfang_klein$+MKI$(&X0)
mfang_klein$=mfang_klein$+MKI$(&X0)
mfang_klein$=mfang_klein$+MKI$(&X1111111110000)
mfang_klein$=mfang_klein$+MKI$(&X1000100010000)
mfang_klein$=mfang_klein$+MKI$(&X1000100010000)
mfang_klein$=mfang_klein$+MKI$(&X1000000010000)
mfang_klein$=mfang_klein$+MKI$(&X1110001110000)
mfang_klein$=mfang_klein$+MKI$(&X1000000010000)
mfang_klein$=mfang_klein$+MKI$(&X1000100010000)
mfang_klein$=mfang_klein$+MKI$(&X1000100010000)
mfang_klein$=mfang_klein$+MKI$(&X1111111110000)
mfang_klein$=mfang_klein$+MKI$(&X0)
mfang_klein$=mfang_klein$+MKI$(&X0)
mfang_klein$=mfang_klein$+MKI$(&X0)
mfang_klein$=mfang_klein$+MKI$(&X0)
'
mdaten$=MKI$(7)+MKI$(7)+MKI$(1)+MKI$(0)+MKI$(1)
mdaten$=mdaten$+MKI$(&X1110000000)
mdaten$=mdaten$+MKI$(&X1110000000)
mdaten$=mdaten$+MKI$(&X1110000000)
mdaten$=mdaten$+MKI$(&X1110000000)
mdaten$=mdaten$+MKI$(&X1110000000)
mdaten$=mdaten$+MKI$(&X1110000000)
mdaten$=mdaten$+MKI$(&X1111110001111110)
mdaten$=mdaten$+MKI$(&X1111110001111110)
mdaten$=mdaten$+MKI$(&X1111110001111110)
mdaten$=mdaten$+MKI$(&X1110000000)
mdaten$=mdaten$+MKI$(&X1110000000)
mdaten$=mdaten$+MKI$(&X1110000000)
mdaten$=mdaten$+MKI$(&X1110000000)
mdaten$=mdaten$+MKI$(&X1110000000)
mdaten$=mdaten$+MKI$(&X1110000000)
mdaten$=mdaten$+MKI$(&X0)
'
mdaten$=mdaten$+MKI$(&X100000000)
mdaten$=mdaten$+MKI$(&X100000000)
mdaten$=mdaten$+MKI$(&X100000000)
mdaten$=mdaten$+MKI$(&X100000000)
mdaten$=mdaten$+MKI$(&X100000000)
mdaten$=mdaten$+MKI$(&X100000000)
mdaten$=mdaten$+MKI$(&X0)
mdaten$=mdaten$+MKI$(&X1111110001111110)
mdaten$=mdaten$+MKI$(&X0)
mdaten$=mdaten$+MKI$(&X100000000)
mdaten$=mdaten$+MKI$(&X100000000)
mdaten$=mdaten$+MKI$(&X100000000)
mdaten$=mdaten$+MKI$(&X100000000)
mdaten$=mdaten$+MKI$(&X100000000)
mdaten$=mdaten$+MKI$(&X100000000)
mdaten$=mdaten$+MKI$(&X0)
'
schwer$=MKI$(7)+MKI$(7)+MKI$(-1)+MKI$(0)+MKI$(1)
schwer$=schwer$+MKI$(&X0) !
schwer$=schwer$+MKI$(&X0)
schwer$=schwer$+MKI$(&X11111000000) !
schwer$=schwer$+MKI$(&X11111000000)
schwer$=schwer$+MKI$(&X1100111110000) !
schwer$=schwer$+MKI$(&X1100111110000)
schwer$=schwer$+MKI$(&X10000111111000) !
schwer$=schwer$+MKI$(&X10000111111000)
schwer$=schwer$+MKI$(&X10000111111000) !
schwer$=schwer$+MKI$(&X10000111111000)
schwer$=schwer$+MKI$(&X100000111111100) !
schwer$=schwer$+MKI$(&X100000111111100)
schwer$=schwer$+MKI$(&X100000111111100) !
schwer$=schwer$+MKI$(&X100000111111100)
schwer$=schwer$+MKI$(&X111111011111100) !!
schwer$=schwer$+MKI$(&X111111011111100)
schwer$=schwer$+MKI$(&X111111100000100) !
schwer$=schwer$+MKI$(&X111111100000100)
schwer$=schwer$+MKI$(&X111111100000100) !
schwer$=schwer$+MKI$(&X111111100000100)
schwer$=schwer$+MKI$(&X11111100001000) !
schwer$=schwer$+MKI$(&X11111100001000)
schwer$=schwer$+MKI$(&X11111100001000) !
schwer$=schwer$+MKI$(&X11111100001000)
schwer$=schwer$+MKI$(&X1111100110000) !
schwer$=schwer$+MKI$(&X1111100110000)
schwer$=schwer$+MKI$(&X11111000000) !
schwer$=schwer$+MKI$(&X11111000000)
schwer$=schwer$+MKI$(&X0) !
schwer$=schwer$+MKI$(&X0)
schwer$=schwer$+MKI$(&X0) !
schwer$=schwer$+MKI$(&X0)
pfad_read
reset
RESERVE -64*1024
DIM work%((FRE(0)-80*1024)/4)
daten_ptr%=V:work%(0)
work_space%=DIM?(work%())*4
KEYPAD 8
~RSRC_LOAD("SYS\CUTOUT.RSC")
~RSRC_GADDR(0,tree00&,tree0_adr%)
~RSRC_GADDR(0,tree01&,tree1_adr%)
~RSRC_GADDR(0,tree02&,tree2_adr%)
~RSRC_GADDR(0,tree03&,tree3_adr%)
~RSRC_GADDR(0,tree04&,tree4_adr%)
~RSRC_GADDR(0,tree05&,tree5_adr%)
~RSRC_GADDR(0,tree06&,tree6_adr%)
~RSRC_GADDR(0,tree07&,tree7_adr%)
~RSRC_GADDR(0,tree08&,tree8_adr%)
~RSRC_GADDR(0,tree09&,tree9_adr%)
~RSRC_GADDR(0,tree10&,tree10_adr%)
~RSRC_GADDR(0,tree11&,tree11_adr%)
~RSRC_GADDR(0,tree12&,tree12_adr%)
~RSRC_GADDR(0,tree13&,tree13_adr%)
~RSRC_GADDR(0,tree14&,tree14_adr%)
~RSRC_GADDR(0,tree15&,tree15_adr%)
~RSRC_GADDR(0,tree16&,tree16_adr%)
~RSRC_GADDR(0,tree17&,tree17_adr%)
~RSRC_GADDR(0,tree18&,tree18_adr%)
~RSRC_GADDR(0,tree19&,tree19_adr%)
~RSRC_GADDR(0,tree20&,tree20_adr%)
~RSRC_GADDR(0,tree21&,tree21_adr%)
~RSRC_GADDR(0,tree22&,tree22_adr%)
~RSRC_GADDR(0,tree23&,tree23_adr%)
~RSRC_GADDR(0,tree24&,tree24_adr%)
~RSRC_GADDR(0,tree25&,tree25_adr%)
~RSRC_GADDR(0,tree26&,tree26_adr%)
~RSRC_GADDR(0,tree27&,tree27_adr%)
~RSRC_GADDR(0,tree28&,tree28_adr%)
~RSRC_GADDR(0,tree29&,tree29_adr%)
~RSRC_GADDR(0,tree30&,tree30_adr%)
~RSRC_GADDR(0,tree31&,tree31_adr%)
~RSRC_GADDR(0,tree32&,tree32_adr%)
~RSRC_GADDR(0,tree33&,tree33_adr%)
~RSRC_GADDR(0,tree34&,tree34_adr%)
~RSRC_GADDR(0,tree35&,tree35_adr%)
~RSRC_GADDR(0,tree36&,tree36_adr%)
~RSRC_GADDR(0,tree37&,tree37_adr%)
~RSRC_GADDR(0,tree38&,tree38_adr%)
~RSRC_GADDR(0,tree39&,tree39_adr%)
~RSRC_GADDR(0,tree40&,tree40_adr%)
~RSRC_GADDR(0,tree41&,tree41_adr%)
~FORM_CENTER(tree6_adr%)
~FORM_CENTER(tree7_adr%)
~FORM_CENTER(tree8_adr%)
~FORM_CENTER(tree10_adr%)
~FORM_CENTER(tree11_adr%)
~FORM_CENTER(tree12_adr%)
~FORM_CENTER(tree13_adr%)
~FORM_CENTER(tree14_adr%)
~FORM_CENTER(tree15_adr%)
~FORM_CENTER(tree16_adr%)
~FORM_CENTER(tree17_adr%)
~FORM_CENTER(tree18_adr%)
~FORM_CENTER(tree19_adr%)
~FORM_CENTER(tree20_adr%)
~FORM_CENTER(tree21_adr%)
~FORM_CENTER(tree22_adr%)
~FORM_CENTER(tree23_adr%)
~FORM_CENTER(tree24_adr%)
~FORM_CENTER(tree26_adr%)
~FORM_CENTER(tree27_adr%)
~FORM_CENTER(tree28_adr%)
~FORM_CENTER(tree29_adr%)
~FORM_CENTER(tree30_adr%)
~FORM_CENTER(tree31_adr%)
~FORM_CENTER(tree32_adr%)
~FORM_CENTER(tree33_adr%)
~FORM_CENTER(tree35_adr%)
~FORM_CENTER(tree36_adr%)
~FORM_CENTER(tree37_adr%)
~FORM_CENTER(tree38_adr%)
~FORM_CENTER(tree39_adr%)
~FORM_CENTER(tree40_adr%)
~FORM_CENTER(tree41_adr%)
xt6&=DPEEK(tree6_adr%+16)
yt6&=DPEEK(tree6_adr%+18)
bt6&=DPEEK(tree6_adr%+20)
ht6&=DPEEK(tree6_adr%+22)
xt7&=DPEEK(tree7_adr%+16)
yt7&=DPEEK(tree7_adr%+18)
bt7&=DPEEK(tree7_adr%+20)
ht7&=DPEEK(tree7_adr%+22)
xt8&=DPEEK(tree8_adr%+16)
yt8&=DPEEK(tree8_adr%+18)
bt8&=DPEEK(tree8_adr%+20)
ht8&=DPEEK(tree8_adr%+22)
xt10&=DPEEK(tree10_adr%+16)
yt10&=DPEEK(tree10_adr%+18)
bt10&=DPEEK(tree10_adr%+20)
ht10&=DPEEK(tree10_adr%+22)
xt11&=DPEEK(tree11_adr%+16)
yt11&=DPEEK(tree11_adr%+18)
bt11&=DPEEK(tree11_adr%+20)
ht11&=DPEEK(tree11_adr%+22)
xt12&=DPEEK(tree12_adr%+16)
yt12&=DPEEK(tree12_adr%+18)
bt12&=DPEEK(tree12_adr%+20)
ht12&=DPEEK(tree12_adr%+22)
xt13&=DPEEK(tree13_adr%+16)
yt13&=DPEEK(tree13_adr%+18)
bt13&=DPEEK(tree13_adr%+20)
ht13&=DPEEK(tree13_adr%+22)
xt14&=DPEEK(tree14_adr%+16)
yt14&=DPEEK(tree14_adr%+18)
bt14&=DPEEK(tree14_adr%+20)
ht14&=DPEEK(tree14_adr%+22)
xt15&=DPEEK(tree15_adr%+16)
yt15&=DPEEK(tree15_adr%+18)
bt15&=DPEEK(tree15_adr%+20)
ht15&=DPEEK(tree15_adr%+22)
xt16&=DPEEK(tree16_adr%+16)
yt16&=DPEEK(tree16_adr%+18)
bt16&=DPEEK(tree16_adr%+20)
ht16&=DPEEK(tree16_adr%+22)
xt17&=DPEEK(tree17_adr%+16)
yt17&=DPEEK(tree17_adr%+18)
bt17&=DPEEK(tree17_adr%+20)
ht17&=DPEEK(tree17_adr%+22)
xt18&=DPEEK(tree18_adr%+16)
yt18&=DPEEK(tree18_adr%+18)
bt18&=DPEEK(tree18_adr%+20)
ht18&=DPEEK(tree18_adr%+22)
xt19&=DPEEK(tree19_adr%+16)
yt19&=DPEEK(tree19_adr%+18)
bt19&=DPEEK(tree19_adr%+20)
ht19&=DPEEK(tree19_adr%+22)
xt20&=DPEEK(tree20_adr%+16)
yt20&=DPEEK(tree20_adr%+18)
bt20&=DPEEK(tree20_adr%+20)
ht20&=DPEEK(tree20_adr%+22)
xt21&=DPEEK(tree21_adr%+16)
yt21&=DPEEK(tree21_adr%+18)
bt21&=DPEEK(tree21_adr%+20)
ht21&=DPEEK(tree21_adr%+22)
xt22&=DPEEK(tree22_adr%+16)
yt22&=DPEEK(tree22_adr%+18)
bt22&=DPEEK(tree22_adr%+20)
ht22&=DPEEK(tree22_adr%+22)
xt23&=DPEEK(tree23_adr%+16)
yt23&=DPEEK(tree23_adr%+18)
bt23&=DPEEK(tree23_adr%+20)
ht23&=DPEEK(tree23_adr%+22)
DPOKE tree24_adr%+16,DPEEK(tree24_adr%+16)+200
xt24&=DPEEK(tree24_adr%+16)
yt24&=DPEEK(tree24_adr%+18)
bt24&=DPEEK(tree24_adr%+20)
ht24&=DPEEK(tree24_adr%+22)
xt26&=DPEEK(tree26_adr%+16)
yt26&=DPEEK(tree26_adr%+18)
bt26&=DPEEK(tree26_adr%+20)
ht26&=DPEEK(tree26_adr%+22)
xt27&=DPEEK(tree27_adr%+16)
yt27&=DPEEK(tree27_adr%+18)
bt27&=DPEEK(tree27_adr%+20)
ht27&=DPEEK(tree27_adr%+22)
xt28&=DPEEK(tree28_adr%+16)
yt28&=DPEEK(tree28_adr%+18)
bt28&=DPEEK(tree28_adr%+20)
ht28&=DPEEK(tree28_adr%+22)
xt29&=DPEEK(tree29_adr%+16)
yt29&=DPEEK(tree29_adr%+18)
bt29&=DPEEK(tree29_adr%+20)
ht29&=DPEEK(tree29_adr%+22)
xt30&=DPEEK(tree30_adr%+16)
yt30&=DPEEK(tree30_adr%+18)
bt30&=DPEEK(tree30_adr%+20)
ht30&=DPEEK(tree30_adr%+22)
xt31&=DPEEK(tree31_adr%+16)
yt31&=DPEEK(tree31_adr%+18)
bt31&=DPEEK(tree31_adr%+20)
ht31&=DPEEK(tree31_adr%+22)
xt32&=DPEEK(tree32_adr%+16)
yt32&=DPEEK(tree32_adr%+18)
bt32&=DPEEK(tree32_adr%+20)
ht32&=DPEEK(tree32_adr%+22)
xt35&=DPEEK(tree35_adr%+16)
yt35&=DPEEK(tree35_adr%+18)
bt35&=DPEEK(tree35_adr%+20)
ht35&=DPEEK(tree35_adr%+22)
xt33&=DPEEK(tree33_adr%+16)
yt33&=DPEEK(tree33_adr%+18)
bt33&=DPEEK(tree33_adr%+20)
ht33&=DPEEK(tree33_adr%+22)
xt36&=DPEEK(tree36_adr%+16)
yt36&=DPEEK(tree36_adr%+18)
bt36&=DPEEK(tree36_adr%+20)
ht36&=DPEEK(tree36_adr%+22)
xt37&=DPEEK(tree37_adr%+16)
yt37&=DPEEK(tree37_adr%+18)
bt37&=DPEEK(tree37_adr%+20)
ht37&=DPEEK(tree37_adr%+22)
xt38&=DPEEK(tree38_adr%+16)
yt38&=DPEEK(tree38_adr%+18)
bt38&=DPEEK(tree38_adr%+20)
ht38&=DPEEK(tree38_adr%+22)
xt39&=DPEEK(tree39_adr%+16)
yt39&=DPEEK(tree39_adr%+18)
bt39&=DPEEK(tree39_adr%+20)
ht39&=DPEEK(tree39_adr%+22)
xt40&=DPEEK(tree40_adr%+16)
yt40&=DPEEK(tree40_adr%+18)
bt40&=DPEEK(tree40_adr%+20)
ht40&=DPEEK(tree40_adr%+22)
xt41&=DPEEK(tree41_adr%+16)
yt41&=DPEEK(tree41_adr%+18)
bt41&=DPEEK(tree41_adr%+20)
ht41&=DPEEK(tree41_adr%+22)
bt_output&=OB_W(tree40_adr%,pl100&)
CHAR{{OB_SPEC(tree6_adr%,t_hoehe&)}}=STR$(INT(zeichen_hoehe%/100))
CHAR{{OB_SPEC(tree7_adr%,zabs&)}}=STR$(INT(zeilen_abstand_prozent%))
CHAR{{OB_SPEC(tree9_adr%,z_char&)}}=CHR$(z_ascii_old%+32)
CHAR{{OB_SPEC(tree8_adr%,string_text&)}}=abc$
CHAR{{OB_SPEC(tree12_adr%,bstep&)}}=STR$(b_vari/100)
CHAR{{OB_SPEC(tree13_adr%,punkte&)}}=STR$(pointer%)
CHAR{{OB_SPEC(tree13_adr%,rest&)}}=STR$(p_max%-pointer%)
CHAR{{OB_SPEC(tree13_adr%,version&)}}=revision$
CHAR{{OB_SPEC(tree14_adr%,rx1&)}}=STR$(folie_x%)
CHAR{{OB_SPEC(tree14_adr%,ry1&)}}=STR$(folie_y%)
CHAR{{OB_SPEC(tree14_adr%,rx2&)}}=STR$(folie_x2%)
CHAR{{OB_SPEC(tree14_adr%,ry2&)}}=STR$(folie_y2%)
CHAR{{OB_SPEC(tree14_adr%,rx3&)}}=STR$(folie_x3%)
CHAR{{OB_SPEC(tree14_adr%,ry3&)}}=STR$(folie_y3%)
CHAR{{OB_SPEC(tree15_adr%,p_init1&)}}=p_init1$
CHAR{{OB_SPEC(tree15_adr%,p_init2&)}}=p_init2$
CHAR{{OB_SPEC(tree15_adr%,overcut&)}}=STR$(overcut|/10)
CHAR{{OB_SPEC(tree15_adr%,ma&)}}=ma$
CHAR{{OB_SPEC(tree15_adr%,da&)}}=da$
CHAR{{OB_SPEC(tree17_adr%,outl&)}}="3.0"
CHAR{{OB_SPEC(tree18_adr%,schraffd&)}}=STR$(schraff_dist/100)
CHAR{{OB_SPEC(tree18_adr%,schraffi&)}}=STR$(schraff_inc/100)
CHAR{{OB_SPEC(tree18_adr%,schraffw&)}}=STR$(schraff_winkel)
CHAR{{OB_SPEC(tree18_adr%,schrafix&)}}=STR$(schraff_fix_abst)
CHAR{{OB_SPEC(tree21_adr%,t_step&)}}=STR$(bit_count_max|)
CHAR{{OB_SPEC(tree21_adr%,t_gerade&)}}=STR$(geraden_fehler|)
CHAR{{OB_SPEC(tree21_adr%,t_schmutz&)}}=STR$(schmutz_filter%)
CHAR{{OB_SPEC(tree21_adr%,bschwelle&)}}=STR$(lange_gerade%/100)
CHAR{{OB_SPEC(tree21_adr%,knickwinkel&)}}=STR$(CINT(DEG(knick_winkel_max)))
CHAR{{OB_SPEC(tree21_adr%,bogen_max&)}}=STR$(CINT(DEG(bogen_max*2)))
CHAR{{OB_SPEC(tree21_adr%,abweichung_gerade&)}}=STR$(abweichung_gerade%/100)
CHAR{{OB_SPEC(tree22_adr%,scann_x&)}}="1664"
CHAR{{OB_SPEC(tree22_adr%,scann_y&)}}="800"
CHAR{{OB_SPEC(tree23_adr%,radius&)}}="10"
CHAR{{OB_SPEC(tree27_adr%,calamus_nr&)}}=STR$(calamus_nr%)
CHAR{{OB_SPEC(tree29_adr%,kostfak&)}}=STR$(kostfak)
CHAR{{OB_SPEC(tree31_adr%,anz_rot&)}}="3"
CHAR{{OB_SPEC(tree31_adr%,phi_rot&)}}="90"
OB_STATE(tree15_adr%,rs232&)=state_rs232&+16
OB_STATE(tree15_adr%,cent&)=state_rs232& XOR 1+16
OB_STATE(tree15_adr%,hp&)=state_hp&+16
OB_STATE(tree15_adr%,gp&)=state_hp& XOR 1+16
OB_STATE(tree26_adr%,absolut&)=absolut!+18
OB_STATE(tree26_adr%,relativ&)=absolut!+17
OB_STATE(tree26_adr%,polar&)=absolut!+17
IF gdu=1
OB_STATE(tree15_adr%,gdu01&)=17
ELSE
IF gdu=2.5
OB_STATE(tree15_adr%,gdu025&)=17
ELSE
IF gdu=5
OB_STATE(tree15_adr%,gdu05&)=17
ELSE
OB_STATE(tree15_adr%,gdu1&)=17
ENDIF
ENDIF
ENDIF
OB_STATE(tree1_adr%,lock&)=1
IF mimaki!
OB_STATE(tree15_adr%,gdu05&)=17
OB_STATE(tree15_adr%,gdu01&)=8
OB_STATE(tree15_adr%,gdu025&)=8
OB_STATE(tree15_adr%,gdu1&)=8
OB_STATE(tree15_adr%,rs232&)=17
OB_STATE(tree15_adr%,mgl&)=17
OB_STATE(tree15_adr%,cent&)=16
OB_STATE(tree15_adr%,hp&)=16
OB_STATE(tree15_adr%,gp&)=16
ELSE
OB_STATE(tree15_adr%,mgl&)=8
ENDIF
~WIND_GET(0,4) ! get desk size
BMOVE GINTOUT+2,tree0_adr%+16,8 ! set into rsc
BMOVE GINTOUT+2,tree1_adr%+16,8 ! set into rsc
BMOVE GINTOUT+2,tree2_adr%+16,8 ! set into rsc
BMOVE GINTOUT+2,tree3_adr%+16,8 ! set into rsc
BMOVE GINTOUT+2,tree4_adr%+16,8 ! set into rsc
BMOVE GINTOUT+2,tree5_adr%+16,8 ! set into rsc
BMOVE GINTOUT+2,tree9_adr%+16,8 ! set into rsc
BMOVE GINTOUT+2,tree25_adr%+16,8 ! set into rsc
BMOVE GINTOUT+2,tree34_adr%+16,8 ! set into rsc
wind_newdesk(tree0_adr%,0) ! install Datei Baum
IF default_font$<>""
datei$=ein_space$
IF EXIST(pfad_fnt$+"\"+default_font$)
load_font(pfad_fnt$+"\"+default_font$)
programm_font$=LEFT$(default_font$,LEN(default_font$)-4)
ELSE
make_new_font(-1)
ENDIF
ELSE
make_new_font(-1)
ENDIF
m$(0)=""
m$(1)=" CUTOUT"
m$(2)="--------------------"
m$(3)=CHR$(2)
m$(4)=CHR$(3)
m$(5)=CHR$(4)
m$(6)=CHR$(5)
m$(7)=CHR$(6)
m$(8)=CHR$(7)
m$(9)=CHR$(8)
m$(10)=""
m$(11)=pd_menu$
m$(12)=pd_datei$
m$(13)=pd_editieren$
m$(14)=pd_fenster$
m$(15)=pd_schnittpunkt$
m$(16)=pd_bogen$
m$(17)="----------------------"
m$(18)=pd_text$
m$(19)=pd_zeicheneditor$
m$(20)=m$(17)
m$(21)=pd_extra$
m$(22)=m$(17)
m$(23)=pd_quit$
m$(24)=""
m$(25)=pd_optionen$
m$(26)=pd_marker_anzeigen$
m$(27)=pd_tangenten_anzeigen$
m$(28)=pd_fangradius_klein$
m$(29)=pd_polygon_modus$
m$(30)=pd_schnittpunkt_genau$
m$(31)=pd_koordinaten$
m$(32)=pd_element_selektieren$
m$(33)=pd_polygon_selektieren$
m$(34)=pd_warnmeldungen$
m$(35)="---------------------------"
m$(36)=pd_skaliere_alles$
m$(37)=m$(35)
m$(38)=pd_punkte_nivellieren$
m$(39)=pd_tangente$
m$(40)=m$(35)
m$(41)=pd_plotflaeche$
m$(42)=pd_bezier_step_aendern$
m$(43)=pd_plotter_einstellung$
m$(44)=pd_kosten_faktor$
m$(45)=pd_pfad_sichern$
m$(46)=""
m$(47)=pd_figur$
m$(48)=pd_rechteck$
m$(49)=pd_n_eck$
m$(50)=pd_polygon_outline$
m$(51)=pd_aequidistante$
m$(52)=pd_frame$
m$(53)="---------------------------"
m$(54)=pd_polygone_ausrichten$
m$(55)=pd_polygone_zentrieren$
m$(56)=pd_polygone_vereinen$
m$(57)=pd_polygone_fuellen$
m$(58)=m$(53)
m$(59)=pd_einzelne_punkte_loeschen$
m$(60)=""
m$(61)=pd_linie$
m$(62)=pd_bezier_vektor$
m$(63)=pd_bezier_einfuegen$
m$(64)=pd_tausche_bezier_vektor$
m$(65)=m$(53)
m$(66)=pd_knacken$
m$(67)=pd_trimmen$
m$(68)=pd_lot$
m$(69)=pd_verlaengern$
m$(70)=pd_teilen$
m$(71)=pd_messen$
m$(72)=m$(53)
m$(73)=pd_schnittp_2er$
m$(74)=pd_schnittp_n$
m$(75)=""
m$(76)=pd_effekt$
m$(77)=pd_parameter_schraffur$
m$(78)=pd_polygon_schraffieren$
m$(79)=pd_alles_schraffieren$
m$(80)="------------------------"
m$(81)=pd_schatten$
m$(82)=pd_einpassen$
m$(83)=m$(80)
m$(84)=pd_kugel$
m$(85)=""
m$(86)=""
MENU m$()
IF fangklein!
MENU 28,1
ENDIF
IF polygonmode!
MENU 29,1
ENDIF
IF warn!
MENU 34,1
ENDIF
CLIP 0,0,639,399 OFFSET 0,0
DEFTEXT 1,0,0,6
COLOR 1
TEXT 400,7,"Zoom X:"
TEXT 400,15,"Zoom Y:"
TEXT 540,7,"X:"
TEXT 540,15,"Y:"
DEFTEXT 1,0,0,4
TEXT 624,7,"mm"
TEXT 624,15,"mm"
LINE 536,0,536,20
LINE 396,0,396,20
'
~FORM_DIAL(3,0,0,0,0,0,0,desk_breite&,desk_hoehe&) !redraw all
'
layer!=FALSE
zoom=1
x_layer%=folie_x%
y_layer%=folie_y%
x_layero%=x_layer%
y_layero%=y_layer%
res_x%=x_layer%
res_y%=y_layer%
x_offset&=0
y_offset&=0
res_x_old%=x_layer%
res_y_old%=y_layer%
x_offset_old&=0
y_offset_old&=0
pointer%=0
get_desktop
scrb_old&=scrb&
scrh_old&=scrh&
CLOSEW 1
programm$=noname$
INT{WINDTAB+2}=&X111111000000
INT{WINDTAB+4}=scrx&
INT{WINDTAB+6}=scry&
INT{WINDTAB+8}=scrb&
INT{WINDTAB+10}=scrh&
help_titel
OPENW 1
calc_slid
~WIND_GET(1,4,x_win&,y_win&,b_window&,h_window&)
neues_polygon!=TRUE
do_redraw
DEFMOUSE 3
p_zoom(zoom*100,zoom*100)
CHAR{{OB_SPEC(tree14_adr%,rx1&)}}=STR$(x_layer%)
CHAR{{OB_SPEC(tree14_adr%,ry1&)}}=STR$(y_layer%)
' test_vollbild
'
~OBJC_OFFSET(tree28_adr%,gtprewin&,gtxv&,gtyv&)
gtxv&=gtxv&-x_win&+1
gtyv&=gtyv&-y_win&+1
'
ON MENU MESSAGE GOSUB message
ON MENU BUTTON 1,1,1 GOSUB button
ON MENU GOSUB menu
ON MENU KEY GOSUB key
' ON ERROR GOSUB fehler
'
'
REPEAT
ON MENU
UNTIL end!
'
IF modified!
IF pointer%>0
ALERT 3,"| "+sichere$+daten$,1,ja_nein$,i%
IF i%=1
@save_vektor
ENDIF
ENDIF
ENDIF
'
' Bei fertigen Programmen hier nur QUIT
'
reset
~WIND_GET(0,10)
IF DPEEK(GINTOUT+2)
ALERT 1,"Accessories",1,"Close|Quit",i%
IF i%=2
QUIT
ENDIF
REPEAT
~WIND_GET(0,10)
UNTIL DPEEK(GINTOUT+2)=0
ENDIF
RESERVE ! XBIOS(2)-HIMEM+FRE(0)-16384
'
PROCEDURE fehler
ALERT 1,fehler$,1,leider$,i%
' RESUME NEXT
RETURN
'
'
PROCEDURE get_undo
LOCAL dp%
dp%=daten_ptr%
IF (pointer%*9+1<work_space%) AND (NOT layer_geladen!)
LONG{dp%}=pointer%
ADD dp%,4
undo!=TRUE
BMOVE VARPTR(punkte_x%(0)),dp%,pointer%*4
ADD dp%,pointer%*4
BMOVE VARPTR(punkte_y%(0)),dp%,pointer%*4
ADD dp%,pointer%*4
BMOVE VARPTR(punkte_def|(0)),dp%,pointer%
undo!=TRUE
ELSE
undo!=FALSE
ENDIF
RETURN
'
PROCEDURE put_undo
LOCAL dp%
IF undo!
dp%=daten_ptr%
pointer%=LONG{dp%}
ADD dp%,4
BMOVE dp%,VARPTR(punkte_x%(0)),pointer%*4
ADD dp%,pointer%*4
BMOVE dp%,VARPTR(punkte_y%(0)),pointer%*4
ADD dp%,pointer%*4
BMOVE dp%,VARPTR(punkte_def|(0)),pointer%
undo!=FALSE
do_redraw
ENDIF
RETURN
'
PROCEDURE output_drucker
LOCAL handle&,x_resi&,y_resi&,z_old
IF GDOS?
ERASE work%()
IF FRE(0)>250000
RESERVE -250000
handle&=V_OPNWK(21)
IF handle&<>0
V~H=handle&
x_resi&=INTOUT(0)
y_resi&=INTOUT(1)
~V_CLRWK()
z_old=zoom
zoom=4
redraw_ohne(0)
~V_UPDWK()
~V_CLSWK()
zoom=z_old
ELSE
ENDIF
RESERVE
ELSE
ENDIF
DIM work%((FRE(0)-80*1024)/4)
daten_ptr%=V:work%(0)
work_space%=DIM?(work%())*4
ELSE
ENDIF
RETURN
'
'
PROCEDURE scan_a1
ALERT 3,"| SCAN Hochformat: ",1,"A3|A2|A1",i%
SELECT i%
CASE 1
scann_x%=INT(17*400/8) !17
scann_y%=INT(12*400) !12
CASE 2
scann_x%=INT(25*400/8)
scann_y%=INT(17*400)
CASE 3
scann_x%=INT(34*400/8)
scann_y%=INT(25*400)
ENDSELECT
scan_graphtec(3,400,0,0,scann_x%,scann_y%)
RETURN
'
PROCEDURE scan_graphtec(device&,dpi&,x_0%,y_0%,bytes_x%,lines_y%)
LOCAL command_bytes&,bytes_to_transfer%,transfer_dir&
LOCAL y_offset%,block&,command_bytes&,bytes_to_transfer%
' IF FN test_unit_ready(device&)=0
set_graphtec_window(device&,dpi&,x_0%,y_0%,bytes_x%,lines_y%)
command_bytes&=10
block&=&HFFFF DIV bytes_x% DIV 3
bytes_to_transfer%=bytes_x%*block&*3
transfer_dir&=0 ! LESEN
command|(0)=&H28
command|(1)=0
command|(2)=0
command|(3)=0
command|(4)=0
command|(5)=0
command|(6)=0
command|(7)=0
command|(8)=0
command|(9)=0
WORD{V:command|(7)}=block&
'
anzahl&=lines_y% DIV block&
rest&=lines_y% MOD block&
y_offset%=0
FOR i%=1 TO anzahl&
$c+
fehler%=C:scsi%(device&,command_bytes&,bytes_to_transfer%,transfer_dir&,L:V:command|(0),L:daten_ptr%+y_offset%)
$c-
ADD y_offset%,block&*bytes_x%
NEXT i%
IF rest&<>0
bytes_to_transfer%=bytes_x%*rest&*3
WORD{V:command|(7)}=rest&
$c+
fehler%=C:scsi%(device&,command_bytes&,bytes_to_transfer%,transfer_dir&,L:V:command|(0),L:daten_ptr%+y_offset%)
$c-
ENDIF
' status&=AND(CARD(fehler%),&X11110)
' message&=CARD(SWAP(fehler%))
layer!=TRUE
layer_geladen!=TRUE
voll_bild!=TRUE
outlined!=FALSE
do_change_aufloesung(bytes_x%*8,lines_y%,1)
init_bit_blit
p_zoom(zoom*100,zoom*100)
do_redraw
' ENDIF
RETURN
'
PROCEDURE set_graphtec_window(device&,dpi&,x_0%,y_0%,bytes_x%,lines_y%)
LOCAL command_bytes&,bytes_to_transfer%,transfer_dir&
command_bytes&=10
bytes_to_transfer%=53
transfer_dir&=1 ! LESEN (1=SCHREIBEN)
command|(0)=&H24
command|(1)=0
command|(2)=0
command|(3)=0
command|(4)=0
command|(5)=0
command|(6)=0
command|(7)=0
command|(8)=bytes_to_transfer%
command|(9)=0
FOR i%=0 TO 6
buffer|(i%)=0
NEXT i%
FOR i%=38 TO 47
buffer|(i%)=0
NEXT i%
buffer|(7)=45 ! Window Descriptor Block Length
buffer|(8)=0 ! Window ID
buffer|(9)=0 ! reserved
WORD{V:buffer|(10)}=dpi& ! X resolution
WORD{V:buffer|(12)}=dpi& ! Y resolution
LONG{V:buffer|(14)}=x_0%*24 ! X Upper Left
LONG{V:buffer|(18)}=y_0%*3 ! Y Upper Left
LONG{V:buffer|(22)}=bytes_x%*24 ! Width
LONG{V:buffer|(26)}=lines_y%*3 ! Length
buffer|(30)=0 ! reserved
buffer|(31)=0 ! Kontrast
buffer|(32)=0 ! reserved
buffer|(33)=0 ! Image composition
buffer|(34)=1 ! Bits per Pixel
buffer|(35)=0 ! reserved
buffer|(36)=0 ! reserved
buffer|(37)=0 ! Reverse Image
buffer|(48)=2 ! Cell length
buffer|(49)=5 ! Function Code
buffer|(50)=1 ! Fine Line
buffer|(51)=2 ! Cell length
buffer|(52)=6 ! Function Code
buffer|(53)=1 ! Scann Speed
$c+
fehler%=C:scsi%(device&,command_bytes&,bytes_to_transfer%,transfer_dir&,L:V:command|(0),L:V:buffer|(0))
$c-
RETURN
'
FUNCTION test_unit_ready(device&)
command_bytes&=6
bytes_to_transfer%=1
transfer_dir&=0 ! LESEN (1=SCHREIBEN)
command|(0)=0
command|(1)=0
command|(2)=0
command|(3)=0
command|(4)=bytes_to_transfer%
command|(5)=0
'
$c+
fehler%=C:scsi%(device&,command_bytes&,L:bytes_to_transfer%,transfer_dir&,L:V:command|(0),L:V:buffer|(0))
$c-
status&=AND(CARD(fehler%),&X11110)
message&=CARD(SWAP(fehler%))
'
RETURN status&
ENDFUNC
'
'
PROCEDURE gt_info(i$)
CHAR{{OB_SPEC(tree28_adr%,gtstate&)}}=i$
~OBJC_DRAW(tree28_adr%,gtstate&,8,xt28&,yt28&,bt28&,ht28&)
RETURN
'
PROCEDURE dpi_change(prex0&,prey0&,prex0_min&,prey0_min&)
CHAR{{OB_SPEC(tree28_adr%,gtdpi&)}}=STR$(gtdpiv&)
~OBJC_DRAW(tree28_adr%,gtdpi&,8,xt28&,yt28&,bt28&,ht28&)
CHAR{{OB_SPEC(tree28_adr%,gtb&)}}=STR$(AND(INT(gtbv&/25.4*gtdpiv&),&HFFF8))
CHAR{{OB_SPEC(tree28_adr%,gth&)}}=STR$(AND(INT(gthv&/25.4*gtdpiv&),&HFFF8))
~OBJC_DRAW(tree28_adr%,gtb&,8,xt28&,yt28&,bt28&,ht28&)
~OBJC_DRAW(tree28_adr%,gth&,8,xt28&,yt28&,bt28&,ht28&)
CHAR{{OB_SPEC(tree28_adr%,gtx&)}}=STR$(AND(INT((prex0&-prex0_min&)/25.4*gtdpiv&),&HFFF8))
CHAR{{OB_SPEC(tree28_adr%,gty&)}}=STR$(AND(INT((prey0&-prey0_min&)/25.4*gtdpiv&),&HFFF8))
~OBJC_DRAW(tree28_adr%,gtx&,8,xt28&,yt28&,bt28&,ht28&)
~OBJC_DRAW(tree28_adr%,gty&,8,xt28&,yt28&,bt28&,ht28&)
RETURN
'
PROCEDURE gt_6000
LOCAL prex0&,prey0&,prex0_min&,prey0_min&,x_changed&,y_changed&
LOCAL prex&,prey&,gthalbton&
DEFMOUSE 0
SETMOUSE xt28&+240,yt28&+310,0
CLIP 0,0,desk_breite&,desk_hoehe& OFFSET x_win&,y_win&
~OBJC_OFFSET(tree28_adr%,gtprewin&,prex&,prey&)
gthalbton&=1
prex0&=prex&-x_win&+1
prey0&=prey&-y_win&+1
prex0_min&=prex0&
prey0_min&=prey0&
prex0_max&=prex0&+217
prey0_max&=prey0&+297
prex0&=gtxv&
prey0&=gtyv&
'
CHAR{{OB_SPEC(tree28_adr%,gtx&)}}=STR$(AND(INT((prex0&-prex0_min&)/25.4*gtdpiv&),&HFFF8))
CHAR{{OB_SPEC(tree28_adr%,gty&)}}=STR$(AND(INT((prey0&-prey0_min&)/25.4*gtdpiv&),&HFFF8))
CHAR{{OB_SPEC(tree28_adr%,gtb&)}}=STR$(AND(INT(gtbv&/25.4*gtdpiv&),&HFFF8))
CHAR{{OB_SPEC(tree28_adr%,gth&)}}=STR$(AND(INT(gthv&/25.4*gtdpiv&),&HFFF8))
CHAR{{OB_SPEC(tree28_adr%,gtdpi&)}}=STR$(gtdpiv&)
CHAR{{OB_SPEC(tree28_adr%,gtstate&)}}=waehle$
GET xt28&-4,yt28&-4,xt28&+bt28&+4,yt28&+ht28&+4,rette$
~OBJC_DRAW(tree28_adr%,0,8,xt28&,yt28&,bt28&,ht28&)
smfdb%(0)=V:prebuf$
smfdb%(1)=208
smfdb%(2)=292
smfdb%(3)=smfdb%(1)/16
smfdb%(5)=1
dmfdb%(0)=XBIOS(3)
dmfdb%(1)=desk_breite&
dmfdb%(2)=desk_hoehe&
dmfdb%(3)=dmfdb%(1)/16
dmfdb%(5)=1
p%(0)=0
p%(1)=0
p%(2)=207
p%(3)=291
p%(4)=prex&+1
p%(5)=prey&+1
p%(6)=p%(4)+207
p%(7)=p%(5)+291
p%(8)=3
BITBLT smfdb%(),dmfdb%(),p%()
DEFFILL 1,1,1
GRAPHMODE 3
BOX prex0&,prey0&,prex0&+gtbv&,prey0&+gthv&
PBOX prex0&+gtbv&-8,prey0&+gthv&-8,prex0&+gtbv&,prey0&+gthv&
REPEAT
DO
~FORM_DO(tree28_adr%,0)
IF INT{GINTOUT}>0 AND INT{GINTOUT}<100
exit_button&=DPEEK(GINTOUT)
OB_STATE(tree28_adr%,exit_button&)=0
IF exit_button&<>gtprewin&
~OBJC_DRAW(tree28_adr%,exit_button&,8,xt28&,yt28&,bt28&,ht28&)
ENDIF
ENDIF
SELECT exit_button&
CASE gtdpimin&
IF gtdpiv&>100
IF gtdpiv&=480
gtdpiv&=400
ELSE
IF gtdpiv&=600
gtdpiv&=480
ELSE
SUB gtdpiv&,100
ENDIF
ENDIF
dpi_change(prex0&,prey0&,prex0_min&,prey0_min&)
ENDIF
CASE gtdpiplu&
IF gtdpiv&<600
IF gtdpiv&=400
gtdpiv&=480
ELSE
IF gtdpiv&=480
gtdpiv&=600
ELSE
ADD gtdpiv&,100
ENDIF
ENDIF
dpi_change(prex0&,prey0&,prex0_min&,prey0_min&)
ENDIF
CASE gtprewin&
MOUSE x_mouse%,y_mouse%,taste|
IF x_mouse%>prex0&+gtbv&-8 AND x_mouse%<prex0&+gtbv& AND y_mouse%>prey0&+gthv&-8 AND y_mouse%<prey0&+gthv&
DEFMOUSE 3
REPEAT
MOUSE x_mouse%,y_mouse%,taste|
IF x_mouse%<>x_mouse_old% OR y_mouse%<>y_mouse_old%
BOX prex0&,prey0&,prex0&+gtbv&,prey0&+gthv&
PBOX prex0&+gtbv&-8,prey0&+gthv&-8,prex0&+gtbv&,prey0&+gthv&
IF x_mouse%-prex0_min&<217 AND x_mouse%-prex0&>16
gtbv&=x_mouse%-prex0&
i%=AND(INT(gtbv&/25.4*gtdpiv&),&HFFF0)
gtbv&=CINT(i%*25.4/gtdpiv&)
ENDIF
IF y_mouse%-prey0_min&<298 AND y_mouse%-prey0&>16
gthv&=y_mouse%-prey0&
ENDIF
BOX prex0&,prey0&,prex0&+gtbv&,prey0&+gthv&
PBOX prex0&+gtbv&-8,prey0&+gthv&-8,prex0&+gtbv&,prey0&+gthv&
SHOWM
x_mouse_old%=x_mouse%
y_mouse_old%=y_mouse%
CHAR{{OB_SPEC(tree28_adr%,gtb&)}}=STR$(AND(INT(gtbv&/25.4*gtdpiv&),&HFFF0))
CHAR{{OB_SPEC(tree28_adr%,gth&)}}=STR$(INT(gthv&/25.4*gtdpiv&))
~OBJC_DRAW(tree28_adr%,gtb&,8,xt28&,yt28&,bt28&,ht28&)
~OBJC_DRAW(tree28_adr%,gth&,8,xt28&,yt28&,bt28&,ht28&)
ENDIF
UNTIL taste|=0
DEFMOUSE 0
ELSE
IF x_mouse%>prex0& AND x_mouse%<prex0&+gtbv& AND y_mouse%>prey0& AND y_mouse%<prey0&+gthv&
x_mouse_old%=x_mouse%
y_mouse_old%=y_mouse%
DEFMOUSE 3
REPEAT
MOUSE x_mouse%,y_mouse%,taste|
IF x_mouse%<>x_mouse_old% OR y_mouse%<>y_mouse_old%
x_changed&=x_mouse%-x_mouse_old%
y_changed&=y_mouse%-y_mouse_old%
BOX prex0&,prey0&,prex0&+gtbv&,prey0&+gthv&
PBOX prex0&+gtbv&-8,prey0&+gthv&-8,prex0&+gtbv&,prey0&+gthv&
IF prex0&+x_changed&>=prex0_min& AND prex0&+x_changed&+gtbv&<prex0_max&
ADD prex0&,x_changed&
ENDIF
IF prey0&+y_changed&>=prey0_min& AND prey0&+y_changed&+gthv&<prey0_max&
ADD prey0&,y_changed&
ENDIF
BOX prex0&,prey0&,prex0&+gtbv&,prey0&+gthv&
PBOX prex0&+gtbv&-8,prey0&+gthv&-8,prex0&+gtbv&,prey0&+gthv&
SHOWM
x_mouse_old%=x_mouse%
y_mouse_old%=y_mouse%
CHAR{{OB_SPEC(tree28_adr%,gtx&)}}=STR$(AND(INT((prex0&-prex0_min&)/25.4*gtdpiv&),&HFFF8))
CHAR{{OB_SPEC(tree28_adr%,gty&)}}=STR$(AND(INT((prey0&-prey0_min&)/25.4*gtdpiv&),&HFFF8))
~OBJC_DRAW(tree28_adr%,gtx&,8,xt28&,yt28&,bt28&,ht28&)
~OBJC_DRAW(tree28_adr%,gty&,8,xt28&,yt28&,bt28&,ht28&)
ENDIF
UNTIL taste|=0
DEFMOUSE 0
ENDIF
ENDIF
CASE gtpresca&
gt_info(scannen$+pre_view$)
HIDEM
gt6000%=VARPTR(gt6000$)
$C+
VOID C:gt6000%(1,50,3,3,gthalbton&,0,0,26,292,L:V:prebuf$,L:V:prebuf$+8000)
$C-
OUT (2),13
trigger_0
DEFMOUSE 3
SHOWM
BOX prex0&,prey0&,prex0&+gtbv&,prey0&+gthv&
PBOX prex0&+gtbv&-8,prey0&+gthv&-8,prex0&+gtbv&,prey0&+gthv&
smfdb%(0)=V:prebuf$
BITBLT smfdb%(),dmfdb%(),p%()
BOX prex0&,prey0&,prex0&+gtbv&,prey0&+gthv&
PBOX prex0&+gtbv&-8,prey0&+gthv&-8,prex0&+gtbv&,prey0&+gthv&
gt_info(waehle$)
ENDSELECT
EXIT IF exit_button&=gtcancel&
EXIT IF exit_button&=gtscan&
LOOP
IF exit_button&=gtcancel&
PUT xt28&-4,yt28&-4,rette$
ok!=TRUE
ENDIF
IF exit_button&=gtscan&
IF OB_STATE(tree28_adr%,gthart&)=1
gthalbton&=0
ELSE
IF OB_STATE(tree28_adr%,gtweich&)=1
gthalbton&=16
ELSE
IF OB_STATE(tree28_adr%,gtraster&)=1
gthalbton&=32
ELSE
gthalbton&=1
ENDIF
ENDIF
ENDIF
IF OB_STATE(tree28_adr%,gtrot&)=1
gtfarbev&=0
ELSE
IF OB_STATE(tree28_adr%,gtgruen&)=1
gtfarbev&=1
ELSE
IF OB_STATE(tree28_adr%,gtblau&)=1
gtfarbev&=2
ELSE
gtfarbev&=3
ENDIF
ENDIF
ENDIF
IF OB_STATE(tree28_adr%,k0&)=1
gtkontrav&=0
ELSE
IF OB_STATE(tree28_adr%,k1&)=1
gtkontrav&=1
ELSE
IF OB_STATE(tree28_adr%,k2&)=1
gtkontrav&=2
ELSE
IF OB_STATE(tree28_adr%,k3&)=1
gtkontrav&=3
ELSE
IF OB_STATE(tree28_adr%,k4&)=1
gtkontrav&=4
ELSE
IF OB_STATE(tree28_adr%,k5&)=1
gtkontrav&=5
ELSE
gtkontrav&=6
ENDIF
ENDIF
ENDIF
ENDIF
ENDIF
ENDIF
gt_info(scannen$+bereich$)
gtxorig&=CINT(AND(INT((prex0&+2-prex0_min&)/25.4*gtdpiv&),&HFFF8)/8)
gtyorig&=CINT((prey0&+2-prey0_min&)/25.4*gtdpiv&)
gtxbytes&=CINT(AND(INT(gtbv&/25.4*gtdpiv&),&HFFF0)/8)
gtyzeilen&=CINT(gthv&/25.4*gtdpiv&)
IF gtxbytes&*(gtyzeilen&+1)<work_space%
HIDEM
gt6000%=VARPTR(gt6000$)
$C+
i%=C:gt6000%(0,gtdpiv&,gtfarbev&,gtkontrav&,gthalbton&,gtxorig&,gtyorig&,gtxbytes&,gtyzeilen&,L:daten_ptr%,L:daten_ptr%+work_space%)
$C-
OUT (2),13
trigger_0
DEFMOUSE 3
SHOWM
ELSE
i%=-1
ENDIF
IF i%>=0
gt_info(waehle$)
PUT xt28&-4,yt28&-4,rette$
layer!=TRUE
layer_geladen!=TRUE
voll_bild!=TRUE
outlined!=FALSE
do_change_aufloesung(AND(INT(gtbv&/25.4*gtdpiv&),&HFFF0),INT(gthv&/25.4*gtdpiv&),1)
init_bit_blit
p_zoom(zoom*100,zoom*100)
do_redraw
ok!=TRUE
ELSE
FOR i%=1 TO 5
gt_info(fehler$)
PAUSE 15
gt_info(" ")
PAUSE 15
NEXT i%
gt_info(waehle$)
ok!=FALSE
ENDIF
ENDIF
UNTIL ok!
gtxv&=prex0&
gtyv&=prey0&
~WIND_GET(1,4)
clip(x_window&,y_window&,b_window&,h_window&,INT{GINTOUT+2},INT{GINTOUT+4})
set_clip_offset
GRAPHMODE 1
DEFFILL 0,0
DEFMOUSE 3
init_bit_blit
RETURN
'
PROCEDURE set_clip_offset
INT{WINDTAB+64}=INT{WINDTAB+64}-x_offset&
INT{WINDTAB+66}=INT{WINDTAB+66}-y_offset&
RETURN
'
PROCEDURE helpo(help$)
TITLEW #1,ein_space$+help$+ein_space$
set_clip_offset
RETURN
'
PROCEDURE help(help$)
TITLEW #1,ein_space$+waehle$+help$+ein_space$
set_clip_offset
RETURN
'
PROCEDURE help_titel
TITLEW #1,ein_space$+pfad_vek$+"\"+programm$+".VEK "
set_clip_offset
DEFMOUSE 3
DEFLINE 1
COLOR 1
GRAPHMODE 1
p_xy_info("X:","Y:",0)
SHOWM
trigger_0
zeit%=TIMER
RETURN
'
PROCEDURE polygon_fill
REPEAT
DEFMOUSE 0
GET xt20&-4,yt20&-4,xt20&+bt20&+4,yt20&+ht20&+4,rette$
SETMOUSE xt20&+bt20&/2,yt20&+160,0
~OBJC_DRAW(tree20_adr%,0,8,xt20&,yt20&,bt20&,ht20&)
~FORM_DO(tree20_adr%,0)
exit_button&=DPEEK(GINTOUT)
OB_STATE(tree20_adr%,exit_button&)=0
PUT xt20&-4,yt20&-4,rette$
IF OB_STATE(tree20_adr%,fill1&)=1
DEFFILL 1,2,1
ELSE IF OB_STATE(tree20_adr%,fill2&)=1
DEFFILL 1,2,2
ELSE IF OB_STATE(tree20_adr%,fill3&)=1
DEFFILL 1,2,3
ELSE IF OB_STATE(tree20_adr%,fill4&)=1
DEFFILL 1,2,4
ELSE IF OB_STATE(tree20_adr%,fill5&)=1
DEFFILL 1,2,5
ELSE IF OB_STATE(tree20_adr%,fill6&)=1
DEFFILL 1,2,6
ELSE IF OB_STATE(tree20_adr%,fill7&)=1
DEFFILL 1,2,8
ENDIF
DEFMOUSE mdaten$
help(help_polygon$)
IF exit_button&<>fillcancel&
REPEAT
trigger_0
wait_taste
IF taste|<>2
FILL x_mouse%,y_mouse%
ENDIF
UNTIL taste|=2
ENDIF
UNTIL exit_button&=fillcancel&
~FRE(0)
DEFFILL 1,1
help_titel
RETURN
'
' *****************************************************************************
' * TANGENTE NIVELLIEREN *
' * *
' * VERÄNDERT VAR: Punkte_X%(), Punkte_Y%() *
' * *
' *****************************************************************************
'
PROCEDURE do_niv_tangente(found_quelle%,von%,bis%,dreh_x%,dreh_y%)
LOCAL phi,strecke
dx=SUB(dreh_x%,punkte_x%(found%))
dy=SUB(dreh_y%,punkte_y%(found%))
strecke=SQR(dx*dx+dy*dy)
get_phi(dreh_x%,dreh_y%,punkte_x%(found_quelle%),punkte_y%(found_quelle%),phi)
redraw_von_bis(von%,bis%,0)
punkte_x%(found%)=CINT(dreh_x%-strecke*COS(phi))
punkte_y%(found%)=CINT(dreh_y%-strecke*SIN(phi))
redraw_von_bis(von%,bis%,1)
RETURN
'
PROCEDURE tangente_nivellieren
LOCAL found_quelle%,quelle_def|
LOCAL von%,bis%,f%,dreh_x%,dreh_y%
IF pointer%>1
show_cursor_fang
REPEAT
trigger_0
GRAPHMODE 1
REPEAT
wait_taste
EXIT IF taste|=2
find(x_mouse%*100/zoom,y_mouse%*100/zoom)
quelle_def|=punkte_def|(found%)
UNTIL (quelle_def|>da| AND quelle_def|<b3|)
IF taste|<>2
found_quelle%=found%
IF quelle_def|=b1|
IF punkte_def|(found_quelle%-1)=b3|
found%=found_quelle%-2
von%=found_quelle%-4
bis%=von%+3
dreh_x%=punkte_x%(found_quelle%-1)
dreh_y%=punkte_y%(found_quelle%-1)
do_niv_tangente(found_quelle%,von%,bis%,dreh_x%,dreh_y%)
ELSE
IF punkte_def|(found_quelle%-1)=da|
found%=found_quelle%
found_quelle%=found%-2
von%=found%-1
bis%=von%+3
dreh_x%=punkte_x%(found%-1)
dreh_y%=punkte_y%(found%-1)
do_niv_tangente(found_quelle%,von%,bis%,dreh_x%,dreh_y%)
ELSE
IF punkte_def|(found_quelle%-1)=ma|
found%=found_quelle%
REPEAT
INC found%
UNTIL punkte_def|(found%)=ma|
DEC found%
IF punkte_def|(found%)=b3|
DEC found%
von%=found%-2
bis%=von%+3
dreh_x%=punkte_x%(found_quelle%-1)
dreh_y%=punkte_y%(found_quelle%-1)
do_niv_tangente(found_quelle%,von%,bis%,dreh_x%,dreh_y%)
ELSE
IF punkte_def|(found%)=da|
f%=found_quelle%
found_quelle%=found%-1
found%=f%
von%=found%-1
bis%=von%+3
dreh_x%=punkte_x%(found_quelle%+1)
dreh_y%=punkte_y%(found_quelle%+1)
do_niv_tangente(found_quelle%,von%,bis%,dreh_x%,dreh_y%)
ENDIF
ENDIF
ENDIF
ENDIF
ENDIF
ELSE
IF quelle_def|=b2|
IF punkte_def|(found_quelle%+2)=b1|
found%=found_quelle%+2
von%=found_quelle%+1
bis%=von%+3
dreh_x%=punkte_x%(found_quelle%+1)
dreh_y%=punkte_y%(found_quelle%+1)
do_niv_tangente(found_quelle%,von%,bis%,dreh_x%,dreh_y%)
ELSE
IF punkte_def|(found_quelle%+2)=da|
found%=found_quelle%
found_quelle%=found%+2
von%=found%-2
bis%=von%+3
dreh_x%=punkte_x%(found%+1)
dreh_y%=punkte_y%(found%+1)
do_niv_tangente(found_quelle%,von%,bis%,dreh_x%,dreh_y%)
ELSE
IF punkte_def|(found_quelle%+2)=ma|
found%=found_quelle%
REPEAT
DEC found%
UNTIL punkte_def|(found%)=ma|
INC found%
IF punkte_def|(found%)=b1|
von%=found%-1
bis%=von%+3
dreh_x%=punkte_x%(found_quelle%+1)
dreh_y%=punkte_y%(found_quelle%+1)
do_niv_tangente(found_quelle%,von%,bis%,dreh_x%,dreh_y%)
ELSE
IF punkte_def|(found%)=da|
f%=found_quelle%
found_quelle%=found%
found%=f%
von%=found%-2
bis%=von%+3
dreh_x%=punkte_x%(found_quelle%-1)
dreh_y%=punkte_y%(found_quelle%-1)
do_niv_tangente(found_quelle%,von%,bis%,dreh_x%,dreh_y%)
ENDIF
ENDIF
ENDIF
ENDIF
ENDIF
ENDIF
ENDIF
ENDIF
UNTIL taste|=2
DEFMOUSE 3
ENDIF
RETURN
'
' *****************************************************************************
' * ASCII Editor *
' * *
' * *
' * ' ******************************************************************************
' * *
' * CUTOUT *
' * *
' * 27.02.1992 *
' * *
' ******************************************************************************
'
'
$B+
$I-
INLINE scsi%,933
DIM buffer|(512*2)
DIM command|(12)
' VAR:
' apl_id&=APPL_INIT()
magic%=14031952
'
' serien_nummer$="REGIST00"
' serien_nummer_vergleich$="REGIST11"
serien_nummer$=MKD$(101)
serien_nummer_vergleich$=MKD$(101 XOR magic%)
'
fang_schnittpunkt|=4
buffer%=0
buffer_max%=0
poly_len%=0
bits%=0
punkt_eintrag&=0
x_start&=0
y_start&=0
edi_max&=0
m=0
m_neu=0
bit_count|=0
pixel!=FALSE
'
regist_nr%=0
revision$="1.59"
zeit%=TIMER
calamus_nr%=0
ortho|=45
ortho=RAD(ortho|)
ortho2=ortho/2
x_win&=0 ! Window X pos aktuell
y_win&=0 ! Window Y pos aktuell
x_window&=0 ! Window X pos aktuell
y_window&=0 ! Window Y pos aktuell
b_window&=0 ! Window Breite aktuell
h_window&=0 ! Window Höhe aktuell
~WIND_GET(0,4,scrx&,scry&,scrb&,scrh&) ! maximaler Desktop
wmx%=scrb&-62
wmy%=scrh&-57+scry&
desk_breite&=scrb&
desk_hoehe&=scrh&+scry&
gross_bildschirm!=FALSE
IF desk_breite&>640 OR desk_hoehe&>400
gross_bildschirm!=TRUE
ENDIF
ADD scrx&,42 ! Position Window X+Menuleiste
SUB scrb&,42 ! Breite Window
scrb_old&=scrb&
scrh_old&=scrh&
res_x%=0 ! Auflösung x in mm
res_y%=0 ! Auflösung y in mm
res_x_old%=0
res_y_old%=0
x_layer%=0
y_layer%=0
x_layero%=0
y_layero%=0
x_offset&=0 ! Nullpunkt x im Fenster
y_offset&=0 ! Nullpunkt y im Fenster
x_offset_old&=0
y_offset_old&=0
x_mouse%=0
y_mouse%=0
x_mouse_old%=0
y_mouse_old%=0
x_mouse_0%=0
y_mouse_0%=0
objectbox_x0%=0
objectbox_y0%=0
objectbox_x1%=0
objectbox_y1%=0
grid%=10 ! raster mm
schraff_dist=201
schraff_inc=0
schraff_fix_abst=0
schraff_winkel=0
schraff_start%=0
schraff_y_min%=0
bit_count_max|=6
geraden_fehler|=1
lange_gerade%=4000
schmutz_filter%=20
knick_winkel_max=RAD(140)
bogen_max=PI/2/2
abweichung_gerade%=0.5*100
last_poly_s%=-1
last_poly_e%=-1
taste|=0
zoom=1
zoom_old=1
zoom_100=1
pointer%=0 ! Zeiger auf Punkteliste
found%=0 ! gefundener Punkt bei SNAP
found_t%=0 ! gefundener Kurvenparameter
schnittpunkt_genau%=16 ! Zerlegung Bezier in Teile
anz_schnittpunkte%=0 ! Anzahl Schnittpunkte
b_vari=100
i%=0 ! allgemeiner Schleifenzähler
ii%=0
iii%=0
d0%=0
dx%=0
dy%=0
dx=0
dy=0
schnitt_laenge=0
kostfak=1
gkosten=0
px0%=0
py0%=0
px1%=0
py1%=0
px2%=0
py2%=0
px3%=0
py3%=0
m_square_breite&=&H3000
m_square_hoehe&=&H3000
kerning_256|=m_square_breite& DIV 256
len_pair_daten&=0
z_hoehe_def%=16384 ! Höhe des definierten Zsatzes
z_breite_def%=16384 ! Breite "
zeichen_hoehe%=3000 ! gewünschte Höhe in 1/100 mm
versal_def%=0 ! Versal Höhe in 1/100 mm
z_ascii_scale=zeichen_hoehe%/z_hoehe_def% ! Scaling
z_ascii_scale_old=z_ascii_scale ! save Scaling
global_kerning%=1280 ! globales Kerning
zeilen_abstand_prozent%=125 ! relativer Zeilen Abstand
zeilen_abstand%=zeichen_hoehe%*zeilen_abstand_prozent%/100-zeichen_hoehe%
z_cursor_x_spalte%=0 ! Start String
z_cursor_x%=0 ! ASCII Zeichen Cursor X
z_cursor_y%=0 ! ASCII Zeichen Cursor y
z_cursor_x_old%=0 ! letztes Zeichen Cursor X
z_cursor_y_old%=0 ! letztes Zeichen Cursor y
z_ascii_old%=0 ! letztes Zeichen ASCII+32
z_satz_pointer%=0 ! Pointer auf Zeichensatz
state_rs232&=0 ! Centronics aktiv
state_hp&=0 ! HPGL aktiv
folie_x%=1188 ! Folien Grö₧e
folie_y%=840
plotter_x_min%=0
plotter_y_min%=0
gdu=0 ! 100*Plottereinheit
sel_start%=0
sel_end%=0
gtxv&=0
gtyv&=0
gtbv&=216
gthv&=297
gtdpiv&=300
gtfarbev&=3
gtkontrav&=3
exit_button&=0
cursor_x&=0
cursor_y&=0
ofn_ver|=0
overcut|=0
geschlossen%=0
'
phi_x_3d=0
phi_y_3d=0
a2_3d=0
'
daten_ptr%=0
work_space%=0
'
' CONST:
'
IF FRE(0)>4000000
p_max%=99999
ELSE
p_max%=60000
ENDIF
ma|=0
da|=1
b1|=2
b2|=3
b3|=4
ein_drittel=1/3
fmin=2.225073858507E-307
fmin1=0.005
max1=0.995
pimal2=PI*2
pihalbe=PI/2
pidrittel=PI/3
fang_rad%=8*100 ! FANGRADIUS
p_at%=XBIOS(3)+76 ! PRINT AT FÜR X,Y
p_at_zoom%=p_at%-12 ! PRINT AT FÜR ZOOM
x_bytes%=(scrb&+42)/8 ! BYTES IN X RICHTUNG DESKTOP
'
' CONST: Menuleiste
'
tree00&=0
tree0_adr%=0
datei&=3
eintrag&=4
mfenster&=10
mtext&=5
mzedi&=6
spezial&=7
all_clear&=8
bbogen&=9
mschnitt&=11
'
tree01&=1
tree1_adr%=0
back_main&=3
fwd_main&=4
gerade&=5
kurve&=6
schliess&=7
verrunde&=8
loeschen&=9
lock&=10
snap&=11
bild&=12
zircel&=13
bezier4&=14
schere&=15
' fenster&=15
'
tree02&=2
tree2_adr%=0
back_datei&=3
fwd_datei&=4
l_vek&=5
l_merge&=6
r_macro&=7
r_cvg&=8
l_img&=9
l_pic&=10
ordner&=11
s_vek&=12
s_plt&=13
a_plotter&=14
'
tree03&=3
tree3_adr%=0
back_fenster&=3
fwd_fenster&=4
fmove&=5
blitz&=6
fcopy&=7
fzoom&=8
fzoomp&=9
fdreh&=10
fspiegel&=11
fkursiv&=12
dreh3d&=13
drehxp&=14
drehxm&=15
drehym&=16
drehyp&=17
floesch&=18
fzoom1&=19
'
tree04&=4
tree4_adr%=0
back_spezial&=3
gtepson&=4
handy&=5
kontour&=6
filter&=7
trace&=8
smooth&=9
simag&=10
'
tree05&=5
tree5_adr%=0
back_text&=3
fwd_text&=4
z_edit&=5
z_editor&=6
z_string&=7
z_t_hoehe&=8
z_t_abstand&=9
z_g_kerning&=10
z_read_ascii&=11
l_font&=12
s_font&=14
c_font&=13
'
tree06&=6
tree6_adr%=0
t_hoehe&=1
'
tree07&=7
tree7_adr%=0
zabs&=1
'
tree08&=8 ! String Text
tree8_adr%=0
string_text&=1
breite&=3
string_breite&=4
versal&=5
string_versal&=6
pfad&=7
do_kerning&=8
string_kreis&=9
string_kreis_von&=10
string_kreis_bis&=11
fontname&=13
c_text&=14
icon_pair&=15
icon_trep&=16
'
tree09&=9 ! Zeichen Editor
tree9_adr%=0
back_editor&=3
m_matrix&=4
z_matrix&=5
move_matrix&=6
kerning_links&=7
kerning_rechts&=8
kerning_auto&=9
z_get&=10
z_muell&=11
z_up&=13
z_down&=14
z_char&=15
'
tree10&=10
tree10_adr%=0
b_kerning&=2
g_kerning&=3
'
tree11&=11 ! Optimier
tree11_adr%=0
del_ma&=4
del_ge&=6
del_el&=8
'
tree12&=12
tree12_adr%=0
bstep&=1
'
tree13&=13 ! Info
tree13_adr%=0
vernr&=7
version&=4
firma&=4
strasse&=7
stadt&=10
punkte&=15
rest&=17
'
tree14&=14 ! Auflösung
tree14_adr%=0
rx1&=8
ry1&=10
rx2&=12
ry2&=13
rx3&=16
ry3&=17
get_pf&=19
r1&=4
r2&=5
r3&=6
'
tree15&=15 ! Plotter INIT
tree15_adr%=0
p_init1&=3
p_init2&=4
gdu01&=9
gdu025&=10
gdu05&=11
gdu1&=12
overcut&=16
cent&=18
rs232&=20
hp&=23
gp&=24
mgl&=25
ma&=29
da&=30
'
tree16&=16 ! Pfade und Parameter
tree16_adr%=0
pv&=5
pp&=7
pfi&=9
pg&=11
pf&=13
df&=15
p1&=17
p2&=19
schnitt&=21
gdu&=23
foliex&=25
foliey&=27
warn&=29
cancel&=31
'
tree17&=17
tree17_adr%=0
outl&=1
outl_anz&=2
'
tree18&=18
tree18_adr%=0
schraffd&=1
schraffi&=2
schrafix&=3
schraffw&=4
schraffa&=7
schrafff&=8
'
tree19&=19
tree19_adr%=0
necka&=1
neckp&=2
'
tree20&=20 ! Füll
tree20_adr%=0
fill1&=3
fill2&=5
fill3&=7
fill4&=9
fill5&=11
fill6&=13
fill7&=15
fillcancel&=17
'
tree21&=21 ! Trace
tree21_adr%=0
t_step&=7
t_gerade&=8
t_schmutz&=9
bschwelle&=21
knickwinkel&=22
bogen_max&=23
abweichung_gerade&=24
nur_gerade&=13
trace_cancel&=14
gerade_bezier&=30
'
tree22&=22
tree22_adr%=0
scann_x&=1
scann_y&=2
'
tree23&=23
tree23_adr%=0
radius&=1
'
tree24&=24
tree24_adr%=0
grau&=6
stark&=7
selgrau0&=4
selgrau&=5
sellinie&=8
alle&=9
auswahl&=10
'
tree25&=25 ! Bogen
tree25_adr%=0
backboge&=3
vkreis&=4
kreis3&=5
kreisbog&=6
bogen3&=7
bogen2&=8
ellipse&=9
elbogen&=10
eckrund&=11
'
tree26&=26 ! Koordinaten
tree26_adr%=0
absolut&=2
relativ&=3
polar&=4
'
tree27&=27 ! Calamus Versions Nr.
tree27_adr%=0
calamus_nr&=1
'
tree28&=28 ! GT 6000
tree28_adr%=0
gtscan&=47
gtx&=38
gty&=44
gtb&=42
gth&=43
gtcancel&=46
gtpresca&=45
gtdpi&=35
gtdpimin&=33
gtdpiplu&=34
gtprewin&=1
gtstate&=5
gtkeiner&=9
gtraster&=10
gtweich&=11
gthart&=12
gtkeine&=15
gtrot&=18
gtgruen&=17
gtblau&=16
k0&=22
k1&=23
k2&=24
k3&=25
k4&=26
k5&=27
k6&=28
'
tree29&=29 ! Kosten
tree29_adr%=0
kostfak&=1
sl&=2
gkosten&=4
'
tree30&=30 ! Select Filter
tree30_adr%=0
abs_filter&=1
'
tree31&=31 ! Select Fenster
tree31_adr%=0
ohnecopy&=1
mitcopy&=6
anz_rot&=3
phi_rot&=4
numohne&=5
ausricht_vector&=7
'
tree32&=32 ! Select Spiegel
tree32_adr%=0
anbox&=2
anachse&=1
'
tree33&=33
tree33_adr%=0
teil&=1
'
tree34&=34 ! Schnittpunkt
tree34_adr%=0
backschn&=3
fwdschn&=4
trimm&=5
knack&=6
lot&=7
teilen&=8
lang&=9
schnitt2&=10
schnittn&=11
delseg&=12
delel&=13
schmelz&=14
'
tree35&=35 ! Select Copy
tree35_adr%=0
copysing&=1
copymul&=2
cx&=4
cy&=5
canz&=6
cdist&=7
'
tree36&=36 ! Ausrichten
tree36_adr%=0
a_olinks&=1
a_oben&=2
a_orechts&=3
a_links&=4
a_mitte&=5
a_rechts&=6
a_ulinks&=7
a_unten&=8
a_urechts&=9
'
tree37&=37 ! Scalieren
tree37_adr%=0
scale_interactiv&=1
scale_numerisch&=2
scale_breite&=4
scale_hoehe&=5
'
tree38&=38 ! Ordner
tree38_adr%=0
ordnert&=1
ordnerok&=2
ordnerca&=3
'
tree39&=39 ! Kerning
tree39_adr%=0
kerning_box&=1
kerning_minus&=3
kerning_plus&=4
kerning_last&=2
kerning_next&=5
kerning_exit&=6
kerning_minus2&=9
kerning_plus2&=10
kerning_last2&=8
kerning_next2&=11
kerning_clear&=7
kerning_info&=13
kerning_pair&=15
'
tree40&=40 ! Plotter OUTPUT
tree40_adr%=0
pl100&=3
plschieber&=4
plschere&=7
plschereauf&=5
plscherezu&=6
plschere&=7
'
tree41&=41 ! Select Neigen
tree41_adr%=0
neige_grad&=2
neige_vertical&=3
neige_horizontal&=4
neige_interaktiv&=5
'
' FLAG:
'
undo!=FALSE
geschlossen!=FALSE
ok!=FALSE ! allgemein
layer_geladen!=FALSE ! ist Layer geladen
layer!=FALSE ! soll Layer gezeigt werden
window_fulled!=TRUE ! ist Fenster schon gro₧
voll_bild!=FALSE ! ist Fenster komplett auf Crt
eintragen!=FALSE ! ist eintragen aktiv
bogen!=FALSE
mtext!=FALSE
meditor!=FALSE
datei!=FALSE
fenster!=FALSE
schnittpunktm!=FALSE
loeschen!=FALSE ! ist loeschen aktiv
neues_polygon!=TRUE ! erster Punkt im Polygon
found!=FALSE ! gefunden bei Fangradius
marker!=FALSE ! sollen Marker gezeigt werden
marker_select!=FALSE ! soll Marker selectiert
modified!=FALSE ! wurde Vektorbild geändert
font_geladen!=FALSE ! ist ein Font geladen
outlined!=FALSE ! wurde Bitmap schon outlined
auto_schraff!=TRUE
schraff_fix_abst!=FALSE
einpassen!=FALSE
tangente!=FALSE
tangenten_lock!=TRUE
warn!=FALSE
gp_gl!=FALSE ! HPGL oder GPGL
tasten_rep!=FALSE
absolut!=TRUE
relativ!=FALSE
polar!=FALSE
absolut_old!=FALSE
polar_old!=FALSE
fangklein!=FALSE ! Fangradius gro₧
fadenkreuz!=FALSE
polygonmode!=TRUE ! Polygonmodus
ortho!=FALSE
grid!=FALSE
scrolled!=FALSE
move!=FALSE
drei_d!=FALSE
status_wechsel!=FALSE
grid_wechsel!=FALSE
swap!=FALSE
'
' ARRAY:
'
DIM smfdb%(8),dmfdb%(8),p%(8)
DIM z_smfdb%(8),z_dmfdb%(8),z_p%(8),q_dmfdb%(8)
DIM punkte_x%(p_max%),punkte_y%(p_max%),punkte_def|(p_max%),buffer%(p_max%/2)
DIM x_meta%(127),y_meta%(127),punkte_def1|(32)
ARRAYFILL punkte_def1|(),1
DIM bezier_x&(33),bezier_y&(33)
DIM m$(87)
DIM mk%(60,2)
DIM m_square%(5)
DIM z_editor%(32)
DIM z_ascii%(224),z_kerning&(224*16),z_daten&(224*280),z_pair&(224),z_pair|(224),z_pair_daten|(2000)
DIM sx1%(9),sy1%(9),sx2%(9),sy2%(9),sp1(9),sp2(9)
DIM zeilen_buffer$(60)
rette$=SPACE$(32000)
pfad$=SPACE$(80)
kerning_string$=SPACE$(60)
pfad_pic$=SPACE$(80)
pfad_img$=SPACE$(80)
pfad_vek$=SPACE$(80)
pfad_vek_root$=SPACE$(80)
pfad_cvg$=SPACE$(80)
pfad_fnt$=SPACE$(80)
pfad_cfn$=SPACE$(80)
default_font$=SPACE$(10)
programm$=SPACE$(10)
programm_font$=SPACE$(10)
test_datei$=SPACE$(10)
object$=SPACE$(80)
p_init1$=SPACE$(40)
p_init2$=SPACE$(40)
abc$="CutOut Test"
ma$="M"
da$="D"
cutout_font$="CUTOUTOFN"
calamus_font_grafik$=MKI$(159)+MKI$(15)+MKI$(1)+SPACE$(320)
ok$="OK"
ein_space$=" "
x_y$="X|Y"
erster$="1. "
zweiter$="2. "
help_on$="ON "
help_off$="OFF"
vek$="VEK"
cvg$="CVG"
img$="IMG"
plt$="PLT"
calamus$="CALAMUS"
cutout$="CutOut"
' ****************************************************************************
OPEN "I",#1,"SYS\LANGUAGE.DRV"
LINE INPUT #1,pd_menu$
LINE INPUT #1,pd_datei$
LINE INPUT #1,pd_editieren$
LINE INPUT #1,pd_fenster$
LINE INPUT #1,pd_schnittpunkt$
LINE INPUT #1,pd_bogen$
LINE INPUT #1,pd_text$
LINE INPUT #1,pd_zeicheneditor$
LINE INPUT #1,pd_extra$
LINE INPUT #1,pd_quit$
'
LINE INPUT #1,pd_optionen$
LINE INPUT #1,pd_marker_anzeigen$
LINE INPUT #1,pd_tangenten_anzeigen$
LINE INPUT #1,pd_fangradius_klein$
LINE INPUT #1,pd_polygon_modus$
LINE INPUT #1,pd_schnittpunkt_genau$
LINE INPUT #1,pd_koordinaten$
LINE INPUT #1,pd_element_selektieren$
LINE INPUT #1,pd_polygon_selektieren$
LINE INPUT #1,pd_warnmeldungen$
LINE INPUT #1,pd_skaliere_alles$
LINE INPUT #1,pd_punkte_nivellieren$
LINE INPUT #1,pd_tangente$
LINE INPUT #1,pd_plotflaeche$
LINE INPUT #1,pd_bezier_step_aendern$
LINE INPUT #1,pd_plotter_einstellung$
LINE INPUT #1,pd_kosten_faktor$
LINE INPUT #1,pd_pfad_sichern$
'
LINE INPUT #1,pd_figur$
LINE INPUT #1,pd_rechteck$
LINE INPUT #1,pd_n_eck$
LINE INPUT #1,pd_polygon_outline$
LINE INPUT #1,pd_aequidistante$
LINE INPUT #1,pd_frame$
LINE INPUT #1,pd_polygone_ausrichten$
LINE INPUT #1,pd_polygone_zentrieren$
LINE INPUT #1,pd_polygone_vereinen$
LINE INPUT #1,pd_polygone_fuellen$
LINE INPUT #1,pd_einzelne_punkte_loeschen$
'
LINE INPUT #1,pd_linie$
LINE INPUT #1,pd_bezier_vektor$
LINE INPUT #1,pd_bezier_einfuegen$
LINE INPUT #1,pd_tausche_bezier_vektor$
LINE INPUT #1,pd_knacken$
LINE INPUT #1,pd_trimmen$
LINE INPUT #1,pd_lot$
LINE INPUT #1,pd_verlaengern$
LINE INPUT #1,pd_teilen$
LINE INPUT #1,pd_messen$
LINE INPUT #1,pd_schnittp_2er$
LINE INPUT #1,pd_schnittp_n$
'
LINE INPUT #1,pd_effekt$
LINE INPUT #1,pd_parameter_schraffur$
LINE INPUT #1,pd_polygon_schraffieren$
LINE INPUT #1,pd_alles_schraffieren$
LINE INPUT #1,pd_schatten$
LINE INPUT #1,pd_einpassen$
LINE INPUT #1,pd_kugel$
'
LINE INPUT #1,lade$
LINE INPUT #1,sichere$
LINE INPUT #1,fuege_ein$
LINE INPUT #1,vektor$
LINE INPUT #1,macro$
LINE INPUT #1,daten$
LINE INPUT #1,zeichensatz$
LINE INPUT #1,kein$
LINE INPUT #1,keine$
LINE INPUT #1,ja_nein$
LINE INPUT #1,waehle$
LINE INPUT #1,fehler$
LINE INPUT #1,scannen$
LINE INPUT #1,pre_view$
LINE INPUT #1,ascii_importieren$
LINE INPUT #1,ascii_exportieren$
LINE INPUT #1,schriftblock$
LINE INPUT #1,radius_zu$
LINE INPUT #1,winkel_zu$
LINE INPUT #1,leider$
LINE INPUT #1,winkel_einstellen$
LINE INPUT #1,spiegelachse$
LINE INPUT #1,lupe_mal$
LINE INPUT #1,fensterbereich$
LINE INPUT #1,drehzentrum$
LINE INPUT #1,ordner_exist$
LINE INPUT #1,kein_leer$
LINE INPUT #1,suche_schnittpunkte$
LINE INPUT #1,gleiches_polygon$
LINE INPUT #1,bezugs$
LINE INPUT #1,zentriere$
LINE INPUT #1,huellkurve$
LINE INPUT #1,huellkurve1$
LINE INPUT #1,berechne$
LINE INPUT #1,rechte_taste$
LINE INPUT #1,endpunkt$
LINE INPUT #1,lot_an$
LINE INPUT #1,noname$
LINE INPUT #1,symbol$
LINE INPUT #1,orginal_fenster$
LINE INPUT #1,dmc_font$
LINE INPUT #1,bild_datei_zu$
LINE INPUT #1,stad_laden$
LINE INPUT #1,plotter_ist_off$
LINE INPUT #1,plot_datei$
LINE INPUT #1,kein_treiber$
LINE INPUT #1,schnittstelle_auf$
LINE INPUT #1,polygone_vereinen$
LINE INPUT #1,loesche_einzelne$
LINE INPUT #1,quelle$
LINE INPUT #1,ziel$
LINE INPUT #1,nivelliere$
LINE INPUT #1,alle_daten_l$
LINE INPUT #1,ganzer_zeichensatz$
LINE INPUT #1,font_daten_loeschen$
LINE INPUT #1,zeichen_matrix$
LINE INPUT #1,datei_existiert$
LINE INPUT #1,datei_ueberschreiben$
LINE INPUT #1,glaetten_mit$
LINE INPUT #1,gerade_bezier$
LINE INPUT #1,glaetten$
LINE INPUT #1,bereich$
LINE INPUT #1,path$
LINE INPUT #1,help_mittelpunkt$
LINE INPUT #1,help_radius$
LINE INPUT #1,help_position$
LINE INPUT #1,help_startwinkel$
LINE INPUT #1,help_endwinkel$
LINE INPUT #1,help_polygon$
LINE INPUT #1,help_punkt$
LINE INPUT #1,help_linie$
LINE INPUT #1,help_element$
LINE INPUT #1,help_verrund$
LINE INPUT #1,help_loesche$
LINE INPUT #1,help_trenn$
LINE INPUT #1,help_move$
LINE INPUT #1,help_sel$
LINE INPUT #1,help_move_window$
LINE INPUT #1,help_rahmen$
LINE INPUT #1,help_edit$
LINE INPUT #1,help_bezier$
LINE INPUT #1,help_status$
LINE INPUT #1,help_ortho$
LINE INPUT #1,help_grid$
LINE INPUT #1,help_free$
LINE INPUT #1,help_snap$
LINE INPUT #1,help_editor$
LINE INPUT #1,help_pfad$
CLOSE #1
' ****************************************************************************
integer%=VARPTR(punkte_x%(1))-VARPTR(punkte_x%(0)) ! Länge in Bytes Integer
'
z_editor%(0)=2048 ! Top Line Y
z_editor%(1)=3072 ! Ascent Line Y
z_editor%(2)=6144 ! Half Line Y
z_editor%(3)=11264 ! Base Line Y
z_editor%(4)=13952 ! Descent Line Y
z_editor%(5)=14336 ! Bottom Line Y
'
z_editor%(6)=0 ! Matrix links X
z_editor%(7)=16384 ! Matrix rechts X
z_editor%(8)=1280 ! Kerning links X
z_editor%(9)=1280 ! Kerning links X
z_editor%(10)=1280 ! Kerning links X
z_editor%(11)=1280 ! Kerning links X
z_editor%(12)=1280 ! Kerning links X
z_editor%(13)=1280 ! Kerning links X
z_editor%(14)=1280 ! Kerning links X
z_editor%(15)=1280 ! Kerning links X
z_editor%(16)=15104 ! Kerning rechts X
z_editor%(17)=15104 ! Kerning rechts X
z_editor%(18)=15104 ! Kerning rechts X
z_editor%(19)=15104 ! Kerning rechts X
z_editor%(20)=15104 ! Kerning rechts X
z_editor%(21)=15104 ! Kerning rechts X
z_editor%(22)=15104 ! Kerning rechts X
z_editor%(23)=15104 ! Kerning rechts X
z_editor%(24)=z_editor%(0) ! Kerning Y
z_editor%(25)=(z_editor%(5)-z_editor%(0))/8 ! Kerning Y
z_editor%(26)=z_editor%(24)+z_editor%(25) ! Kerning Y
z_editor%(27)=z_editor%(26)+z_editor%(25) ! Kerning Y
z_editor%(28)=z_editor%(27)+z_editor%(25) ! Kerning Y
z_editor%(29)=z_editor%(28)+z_editor%(25) ! Kerning Y
z_editor%(30)=z_editor%(29)+z_editor%(25) ! Kerning Y
z_editor%(31)=z_editor%(30)+z_editor%(25) ! Kerning Y
z_editor%(32)=0 ! Matrix oben Y
'
' ******************************************************************************
' * *
' * MENU INITIALISIERUNG *
' * *
' ******************************************************************************
'
BMOVE V:serien_nummer$,V:serien_nummer,8
BMOVE V:serien_nummer_vergleich$,V:serien_nummer_vergleich,8
regist_nr%=serien_nummer_vergleich
IF serien_nummer<>(serien_nummer_vergleich XOR magic%)
PRINT "SORRY HACKER"
PAUSE 300
SYSTEM
ENDIF
INLINE zasm_ptr%,4136
INLINE pack_img%,958
INLINE calc_bezier%,1050
INLINE p_num%,360
INLINE find_line%,356
INLINE kontour%,216
INLINE staddec%,184
INLINE imgdec%,228
INLINE findexcept%,52
INLINE findpointexcept%,70
mfang$=MKI$(7)+MKI$(7)+MKI$(1)+MKI$(0)+MKI$(1)
mfang$=mfang$+MKI$(&X1111111111111110)
mfang$=mfang$+MKI$(&X1111111111111110)
mfang$=mfang$+MKI$(&X1100001110000110)
mfang$=mfang$+MKI$(&X1100001110000110)
mfang$=mfang$+MKI$(&X1100001110000110)
mfang$=mfang$+MKI$(&X1100001110000110)
mfang$=mfang$+MKI$(&X1111110001111110)
mfang$=mfang$+MKI$(&X1111110001111110)
mfang$=mfang$+MKI$(&X1111110001111110)
mfang$=mfang$+MKI$(&X1100001110000110)
mfang$=mfang$+MKI$(&X1100001110000110)
mfang$=mfang$+MKI$(&X1100001110000110)
mfang$=mfang$+MKI$(&X1100001110000110)
mfang$=mfang$+MKI$(&X1111111111111110)
mfang$=mfang$+MKI$(&X1111111111111110)
mfang$=mfang$+MKI$(&X0)
'
mfang$=mfang$+MKI$(&X1111111111111110)
mfang$=mfang$+MKI$(&X1000000100000010)
mfang$=mfang$+MKI$(&X1000000100000010)
mfang$=mfang$+MKI$(&X1000000100000010)
mfang$=mfang$+MKI$(&X1000000100000010)
mfang$=mfang$+MKI$(&X1000000100000010)
mfang$=mfang$+MKI$(&X1000000000000010)
mfang$=mfang$+MKI$(&X1111110001111110)
mfang$=mfang$+MKI$(&X1000000000000010)
mfang$=mfang$+MKI$(&X1000000100000010)
mfang$=mfang$+MKI$(&X1000000100000010)
mfang$=mfang$+MKI$(&X1000000100000010)
mfang$=mfang$+MKI$(&X1000000100000010)
mfang$=mfang$+MKI$(&X1000000100000010)
mfang$=mfang$+MKI$(&X1111111111111110)
mfang$=mfang$+MKI$(&X0)
'
mfang_klein$=MKI$(7)+MKI$(7)+MKI$(1)+MKI$(0)+MKI$(1)
mfang_klein$=mfang_klein$+MKI$(&X0)
mfang_klein$=mfang_klein$+MKI$(&X0)
mfang_klein$=mfang_klein$+MKI$(&X11111111111000)
mfang_klein$=mfang_klein$+MKI$(&X11111111111000)
mfang_klein$=mfang_klein$+MKI$(&X11001110011000)
mfang_klein$=mfang_klein$+MKI$(&X11001110011000)
mfang_klein$=mfang_klein$+MKI$(&X11110001111000)
mfang_klein$=mfang_klein$+MKI$(&X11110001111000)
mfang_klein$=mfang_klein$+MKI$(&X11110001111000)
mfang_klein$=mfang_klein$+MKI$(&X11001110011000)
mfang_klein$=mfang_klein$+MKI$(&X11001110011000)
mfang_klein$=mfang_klein$+MKI$(&X11111111111000)
mfang_klein$=mfang_klein$+MKI$(&X11111111111000)
mfang_klein$=mfang_klein$+MKI$(&X0)
mfang_klein$=mfang_klein$+MKI$(&X0)
mfang_klein$=mfang_klein$+MKI$(&X0)
'
mfang_klein$=mfang_klein$+MKI$(&X0)
mfang_klein$=mfang_klein$+MKI$(&X0)
mfang_klein$=mfang_klein$+MKI$(&X0)
mfang_klein$=mfang_klein$+MKI$(&X1111111110000)
mfang_klein$=mfang_klein$+MKI$(&X1000100010000)
mfang_klein$=mfang_klein$+MKI$(&X1000100010000)
mfang_klein$=mfang_klein$+MKI$(&X1000000010000)
mfang_klein$=mfang_klein$+MKI$(&X1110001110000)
mfang_klein$=mfang_klein$+MKI$(&X1000000010000)
mfang_klein$=mfang_klein$+MKI$(&X1000100010000)
mfang_klein$=mfang_klein$+MKI$(&X1000100010000)
mfang_klein$=mfang_klein$+MKI$(&X1111111110000)
mfang_klein$=mfang_klein$+MKI$(&X0)
mfang_klein$=mfang_klein$+MKI$(&X0)
mfang_klein$=mfang_klein$+MKI$(&X0)
mfang_klein$=mfang_klein$+MKI$(&X0)
'
mdaten$=MKI$(7)+MKI$(7)+MKI$(1)+MKI$(0)+MKI$(1)
mdaten$=mdaten$+MKI$(&X1110000000)
mdaten$=mdaten$+MKI$(&X1110000000)
mdaten$=mdaten$+MKI$(&X1110000000)
mdaten$=mdaten$+MKI$(&X1110000000)
mdaten$=mdaten$+MKI$(&X1110000000)
mdaten$=mdaten$+MKI$(&X1110000000)
mdaten$=mdaten$+MKI$(&X1111110001111110)
mdaten$=mdaten$+MKI$(&X1111110001111110)
mdaten$=mdaten$+MKI$(&X1111110001111110)
mdaten$=mdaten$+MKI$(&X1110000000)
mdaten$=mdaten$+MKI$(&X1110000000)
mdaten$=mdaten$+MKI$(&X1110000000)
mdaten$=mdaten$+MKI$(&X1110000000)
mdaten$=mdaten$+MKI$(&X1110000000)
mdaten$=mdaten$+MKI$(&X1110000000)
mdaten$=mdaten$+MKI$(&X0)
'
mdaten$=mdaten$+MKI$(&X100000000)
mdaten$=mdaten$+MKI$(&X100000000)
mdaten$=mdaten$+MKI$(&X100000000)
mdaten$=mdaten$+MKI$(&X100000000)
mdaten$=mdaten$+MKI$(&X100000000)
mdaten$=mdaten$+MKI$(&X100000000)
mdaten$=mdaten$+MKI$(&X0)
mdaten$=mdaten$+MKI$(&X1111110001111110)
mdaten$=mdaten$+MKI$(&X0)
mdaten$=mdaten$+MKI$(&X100000000)
mdaten$=mdaten$+MKI$(&X100000000)
mdaten$=mdaten$+MKI$(&X100000000)
mdaten$=mdaten$+MKI$(&X100000000)
mdaten$=mdaten$+MKI$(&X100000000)
mdaten$=mdaten$+MKI$(&X100000000)
mdaten$=mdaten$+MKI$(&X0)
'
schwer$=MKI$(7)+MKI$(7)+MKI$(-1)+MKI$(0)+MKI$(1)
schwer$=schwer$+MKI$(&X0) !
schwer$=schwer$+MKI$(&X0)
schwer$=schwer$+MKI$(&X11111000000) !
schwer$=schwer$+MKI$(&X11111000000)
schwer$=schwer$+MKI$(&X1100111110000) !
schwer$=schwer$+MKI$(&X1100111110000)
schwer$=schwer$+MKI$(&X10000111111000) !
schwer$=schwer$+MKI$(&X10000111111000)
schwer$=schwer$+MKI$(&X10000111111000) !
schwer$=schwer$+MKI$(&X10000111111000)
schwer$=schwer$+MKI$(&X100000111111100) !
schwer$=schwer$+MKI$(&X100000111111100)
schwer$=schwer$+MKI$(&X100000111111100) !
schwer$=schwer$+MKI$(&X100000111111100)
schwer$=schwer$+MKI$(&X111111011111100) !!
schwer$=schwer$+MKI$(&X111111011111100)
schwer$=schwer$+MKI$(&X111111100000100) !
schwer$=schwer$+MKI$(&X111111100000100)
schwer$=schwer$+MKI$(&X111111100000100) !
schwer$=schwer$+MKI$(&X111111100000100)
schwer$=schwer$+MKI$(&X11111100001000) !
schwer$=schwer$+MKI$(&X11111100001000)
schwer$=schwer$+MKI$(&X11111100001000) !
schwer$=schwer$+MKI$(&X11111100001000)
schwer$=schwer$+MKI$(&X1111100110000) !
schwer$=schwer$+MKI$(&X1111100110000)
schwer$=schwer$+MKI$(&X11111000000) !
schwer$=schwer$+MKI$(&X11111000000)
schwer$=schwer$+MKI$(&X0) !
schwer$=schwer$+MKI$(&X0)
schwer$=schwer$+MKI$(&X0) !
schwer$=schwer$+MKI$(&X0)
pfad_read
reset
RESERVE -64*1024
DIM work%((FRE(0)-80*1024)/4)
daten_ptr%=V:work%(0)
work_space%=DIM?(work%())*4
KEYPAD 8
~RSRC_LOAD("SYS\CUTOUT.RSC")
~RSRC_GADDR(0,tree00&,tree0_adr%)
~RSRC_GADDR(0,tree01&,tree1_adr%)
~RSRC_GADDR(0,tree02&,tree2_adr%)
~RSRC_GADDR(0,tree03&,tree3_adr%)
~RSRC_GADDR(0,tree04&,tree4_adr%)
~RSRC_GADDR(0,tree05&,tree5_adr%)
~RSRC_GADDR(0,tree06&,tree6_adr%)
~RSRC_GADDR(0,tree07&,tree7_adr%)
~RSRC_GADDR(0,tree08&,tree8_adr%)
~RSRC_GADDR(0,tree09&,tree9_adr%)
~RSRC_GADDR(0,tree10&,tree10_adr%)
~RSRC_GADDR(0,tree11&,tree11_adr%)
~RSRC_GADDR(0,tree12&,tree12_adr%)
~RSRC_GADDR(0,tree13&,tree13_adr%)
~RSRC_GADDR(0,tree14&,tree14_adr%)
~RSRC_GADDR(0,tree15&,tree15_adr%)
~RSRC_GADDR(0,tree16&,tree16_adr%)
~RSRC_GADDR(0,tree17&,tree17_adr%)
~RSRC_GADDR(0,tree18&,tree18_adr%)
~RSRC_GADDR(0,tree19&,tree19_adr%)
~RSRC_GADDR(0,tree20&,tree20_adr%)
~RSRC_GADDR(0,tree21&,tree21_adr%)
~RSRC_GADDR(0,tree22&,tree22_adr%)
~RSRC_GADDR(0,tree23&,tree23_adr%)
~RSRC_GADDR(0,tree24&,tree24_adr%)
~RSRC_GADDR(0,tree25&,tree25_adr%)
~RSRC_GADDR(0,tree26&,tree26_adr%)
~RSRC_GADDR(0,tree27&,tree27_adr%)
~RSRC_GADDR(0,tree28&,tree28_adr%)
~RSRC_GADDR(0,tree29&,tree29_adr%)
~RSRC_GADDR(0,tree30&,tree30_adr%)
~RSRC_GADDR(0,tree31&,tree31_adr%)
~RSRC_GADDR(0,tree32&,tree32_adr%)
~RSRC_GADDR(0,tree33&,tree33_adr%)
~RSRC_GADDR(0,tree34&,tree34_adr%)
~RSRC_GADDR(0,tree35&,tree35_adr%)
~RSRC_GADDR(0,tree36&,tree36_adr%)
~RSRC_GADDR(0,tree37&,tree37_adr%)
~RSRC_GADDR(0,tree38&,tree38_adr%)
~RSRC_GADDR(0,tree39&,tree39_adr%)
~RSRC_GADDR(0,tree40&,tree40_adr%)
~RSRC_GADDR(0,tree41&,tree41_adr%)
~FORM_CENTER(tree6_adr%)
~FORM_CENTER(tree7_adr%)
~FORM_CENTER(tree8_adr%)
~FORM_CENTER(tree10_adr%)
~FORM_CENTER(tree11_adr%)
~FORM_CENTER(tree12_adr%)
~FORM_CENTER(tree13_adr%)
~FORM_CENTER(tree14_adr%)
~FORM_CENTER(tree15_adr%)
~FORM_CENTER(tree16_adr%)
~FORM_CENTER(tree17_adr%)
~FORM_CENTER(tree18_adr%)
~FORM_CENTER(tree19_adr%)
~FORM_CENTER(tree20_adr%)
~FORM_CENTER(tree21_adr%)
~FORM_CENTER(tree22_adr%)
~FORM_CENTER(tree23_adr%)
~FORM_CENTER(tree24_adr%)
~FORM_CENTER(tree26_adr%)
~FORM_CENTER(tree27_adr%)
~FORM_CENTER(tree28_adr%)
~FORM_CENTER(tree29_adr%)
~FORM_CENTER(tree30_adr%)
~FORM_CENTER(tree31_adr%)
~FORM_CENTER(tree32_adr%)
~FORM_CENTER(tree33_adr%)
~FORM_CENTER(tree35_adr%)
~FORM_CENTER(tree36_adr%)
~FORM_CENTER(tree37_adr%)
~FORM_CENTER(tree38_adr%)
~FORM_CENTER(tree39_adr%)
~FORM_CENTER(tree40_adr%)
~FORM_CENTER(tree41_adr%)
xt6&=DPEEK(tree6_adr%+16)
yt6&=DPEEK(tree6_adr%+18)
bt6&=DPEEK(tree6_adr%+20)
ht6&=DPEEK(tree6_adr%+22)
xt7&=DPEEK(tree7_adr%+16)
yt7&=DPEEK(tree7_adr%+18)
bt7&=DPEEK(tree7_adr%+20)
ht7&=DPEEK(tree7_adr%+22)
xt8&=DPEEK(tree8_adr%+16)
yt8&=DPEEK(tree8_adr%+18)
bt8&=DPEEK(tree8_adr%+20)
ht8&=DPEEK(tree8_adr%+22)
xt10&=DPEEK(tree10_adr%+16)
yt10&=DPEEK(tree10_adr%+18)
bt10&=DPEEK(tree10_adr%+20)
ht10&=DPEEK(tree10_adr%+22)
xt11&=DPEEK(tree11_adr%+16)
yt11&=DPEEK(tree11_adr%+18)
bt11&=DPEEK(tree11_adr%+20)
ht11&=DPEEK(tree11_adr%+22)
xt12&=DPEEK(tree12_adr%+16)
yt12&=DPEEK(tree12_adr%+18)
bt12&=DPEEK(tree12_adr%+20)
ht12&=DPEEK(tree12_adr%+22)
xt13&=DPEEK(tree13_adr%+16)
yt13&=DPEEK(tree13_adr%+18)
bt13&=DPEEK(tree13_adr%+20)
ht13&=DPEEK(tree13_adr%+22)
xt14&=DPEEK(tree14_adr%+16)
yt14&=DPEEK(tree14_adr%+18)
bt14&=DPEEK(tree14_adr%+20)
ht14&=DPEEK(tree14_adr%+22)
xt15&=DPEEK(tree15_adr%+16)
yt15&=DPEEK(tree15_adr%+18)
bt15&=DPEEK(tree15_adr%+20)
ht15&=DPEEK(tree15_adr%+22)
xt16&=DPEEK(tree16_adr%+16)
yt16&=DPEEK(tree16_adr%+18)
bt16&=DPEEK(tree16_adr%+20)
ht16&=DPEEK(tree16_adr%+22)
xt17&=DPEEK(tree17_adr%+16)
yt17&=DPEEK(tree17_adr%+18)
bt17&=DPEEK(tree17_adr%+20)
ht17&=DPEEK(tree17_adr%+22)
xt18&=DPEEK(tree18_adr%+16)
yt18&=DPEEK(tree18_adr%+18)
bt18&=DPEEK(tree18_adr%+20)
ht18&=DPEEK(tree18_adr%+22)
xt19&=DPEEK(tree19_adr%+16)
yt19&=DPEEK(tree19_adr%+18)
bt19&=DPEEK(tree19_adr%+20)
ht19&=DPEEK(tree19_adr%+22)
xt20&=DPEEK(tree20_adr%+16)
yt20&=DPEEK(tree20_adr%+18)
bt20&=DPEEK(tree20_adr%+20)
ht20&=DPEEK(tree20_adr%+22)
xt21&=DPEEK(tree21_adr%+16)
yt21&=DPEEK(tree21_adr%+18)
bt21&=DPEEK(tree21_adr%+20)
ht21&=DPEEK(tree21_adr%+22)
xt22&=DPEEK(tree22_adr%+16)
yt22&=DPEEK(tree22_adr%+18)
bt22&=DPEEK(tree22_adr%+20)
ht22&=DPEEK(tree22_adr%+22)
xt23&=DPEEK(tree23_adr%+16)
yt23&=DPEEK(tree23_adr%+18)
bt23&=DPEEK(tree23_adr%+20)
ht23&=DPEEK(tree23_adr%+22)
DPOKE tree24_adr%+16,DPEEK(tree24_adr%+16)+200
xt24&=DPEEK(tree24_adr%+16)
yt24&=DPEEK(tree24_adr%+18)
bt24&=DPEEK(tree24_adr%+20)
ht24&=DPEEK(tree24_adr%+22)
xt26&=DPEEK(tree26_adr%+16)
yt26&=DPEEK(tree26_adr%+18)
bt26&=DPEEK(tree26_adr%+20)
ht26&=DPEEK(tree26_adr%+22)
xt27&=DPEEK(tree27_adr%+16)
yt27&=DPEEK(tree27_adr%+18)
bt27&=DPEEK(tree27_adr%+20)
ht27&=DPEEK(tree27_adr%+22)
xt28&=DPEEK(tree28_adr%+16)
yt28&=DPEEK(tree28_adr%+18)
bt28&=DPEEK(tree28_adr%+20)
ht28&=DPEEK(tree28_adr%+22)
xt29&=DPEEK(tree29_adr%+16)
yt29&=DPEEK(tree29_adr%+18)
bt29&=DPEEK(tree29_adr%+20)
ht29&=DPEEK(tree29_adr%+22)
xt30&=DPEEK(tree30_adr%+16)
yt30&=DPEEK(tree30_adr%+18)
bt30&=DPEEK(tree30_adr%+20)
ht30&=DPEEK(tree30_adr%+22)
xt31&=DPEEK(tree31_adr%+16)
yt31&=DPEEK(tree31_adr%+18)
bt31&=DPEEK(tree31_adr%+20)
ht31&=DPEEK(tree31_adr%+22)
xt32&=DPEEK(tree32_adr%+16)
yt32&=DPEEK(tree32_adr%+18)
bt32&=DPEEK(tree32_adr%+20)
ht32&=DPEEK(tree32_adr%+22)
xt35&=DPEEK(tree35_adr%+16)
yt35&=DPEEK(tree35_adr%+18)
bt35&=DPEEK(tree35_adr%+20)
ht35&=DPEEK(tree35_adr%+22)
xt33&=DPEEK(tree33_adr%+16)
yt33&=DPEEK(tree33_adr%+18)
bt33&=DPEEK(tree33_adr%+20)
ht33&=DPEEK(tree33_adr%+22)
xt36&=DPEEK(tree36_adr%+16)
yt36&=DPEEK(tree36_adr%+18)
bt36&=DPEEK(tree36_adr%+20)
ht36&=DPEEK(tree36_adr%+22)
xt37&=DPEEK(tree37_adr%+16)
yt37&=DPEEK(tree37_adr%+18)
bt37&=DPEEK(tree37_adr%+20)
ht37&=DPEEK(tree37_adr%+22)
xt38&=DPEEK(tree38_adr%+16)
yt38&=DPEEK(tree38_adr%+18)
bt38&=DPEEK(tree38_adr%+20)
ht38&=DPEEK(tree38_adr%+22)
xt39&=DPEEK(tree39_adr%+16)
yt39&=DPEEK(tree39_adr%+18)
bt39&=DPEEK(tree39_adr%+20)
ht39&=DPEEK(tree39_adr%+22)
xt40&=DPEEK(tree40_adr%+16)
yt40&=DPEEK(tree40_adr%+18)
bt40&=DPEEK(tree40_adr%+20)
ht40&=DPEEK(tree40_adr%+22)
xt41&=DPEEK(tree41_adr%+16)
yt41&=DPEEK(tree41_adr%+18)
bt41&=DPEEK(tree41_adr%+20)
ht41&=DPEEK(tree41_adr%+22)
bt_output&=OB_W(tree40_adr%,pl100&)
CHAR{{OB_SPEC(tree6_adr%,t_hoehe&)}}=STR$(INT(zeichen_hoehe%/100))
CHAR{{OB_SPEC(tree7_adr%,zabs&)}}=STR$(INT(zeilen_abstand_prozent%))
CHAR{{OB_SPEC(tree9_adr%,z_char&)}}=CHR$(z_ascii_old%+32)
CHAR{{OB_SPEC(tree8_adr%,string_text&)}}=abc$
CHAR{{OB_SPEC(tree12_adr%,bstep&)}}=STR$(b_vari/100)
CHAR{{OB_SPEC(tree13_adr%,punkte&)}}=STR$(pointer%)
CHAR{{OB_SPEC(tree13_adr%,rest&)}}=STR$(p_max%-pointer%)
CHAR{{OB_SPEC(tree13_adr%,version&)}}=revision$
CHAR{{OB_SPEC(tree14_adr%,rx1&)}}=STR$(folie_x%)
CHAR{{OB_SPEC(tree14_adr%,ry1&)}}=STR$(folie_y%)
CHAR{{OB_SPEC(tree14_adr%,rx2&)}}=STR$(folie_x2%)
CHAR{{OB_SPEC(tree14_adr%,ry2&)}}=STR$(folie_y2%)
CHAR{{OB_SPEC(tree14_adr%,rx3&)}}=STR$(folie_x3%)
CHAR{{OB_SPEC(tree14_adr%,ry3&)}}=STR$(folie_y3%)
CHAR{{OB_SPEC(tree15_adr%,p_init1&)}}=p_init1$
CHAR{{OB_SPEC(tree15_adr%,p_init2&)}}=p_init2$
CHAR{{OB_SPEC(tree15_adr%,overcut&)}}=STR$(overcut|/10)
CHAR{{OB_SPEC(tree15_adr%,ma&)}}=ma$
CHAR{{OB_SPEC(tree15_adr%,da&)}}=da$
CHAR{{OB_SPEC(tree17_adr%,outl&)}}="3.0"
CHAR{{OB_SPEC(tree18_adr%,schraffd&)}}=STR$(schraff_dist/100)
CHAR{{OB_SPEC(tree18_adr%,schraffi&)}}=STR$(schraff_inc/100)
CHAR{{OB_SPEC(tree18_adr%,schraffw&)}}=STR$(schraff_winkel)
CHAR{{OB_SPEC(tree18_adr%,schrafix&)}}=STR$(schraff_fix_abst)
CHAR{{OB_SPEC(tree21_adr%,t_step&)}}=STR$(bit_count_max|)
CHAR{{OB_SPEC(tree21_adr%,t_gerade&)}}=STR$(geraden_fehler|)
CHAR{{OB_SPEC(tree21_adr%,t_schmutz&)}}=STR$(schmutz_filter%)
CHAR{{OB_SPEC(tree21_adr%,bschwelle&)}}=STR$(lange_gerade%/100)
CHAR{{OB_SPEC(tree21_adr%,knickwinkel&)}}=STR$(CINT(DEG(knick_winkel_max)))
CHAR{{OB_SPEC(tree21_adr%,bogen_max&)}}=STR$(CINT(DEG(bogen_max*2)))
CHAR{{OB_SPEC(tree21_adr%,abweichung_gerade&)}}=STR$(abweichung_gerade%/100)
CHAR{{OB_SPEC(tree22_adr%,scann_x&)}}="1664"
CHAR{{OB_SPEC(tree22_adr%,scann_y&)}}="800"
CHAR{{OB_SPEC(tree23_adr%,radius&)}}="10"
CHAR{{OB_SPEC(tree27_adr%,calamus_nr&)}}=STR$(calamus_nr%)
CHAR{{OB_SPEC(tree29_adr%,kostfak&)}}=STR$(kostfak)
CHAR{{OB_SPEC(tree31_adr%,anz_rot&)}}="3"
CHAR{{OB_SPEC(tree31_adr%,phi_rot&)}}="90"
OB_STATE(tree15_adr%,rs232&)=state_rs232&+16
OB_STATE(tree15_adr%,cent&)=state_rs232& XOR 1+16
OB_STATE(tree15_adr%,hp&)=state_hp&+16
OB_STATE(tree15_adr%,gp&)=state_hp& XOR 1+16
OB_STATE(tree26_adr%,absolut&)=absolut!+18
OB_STATE(tree26_adr%,relativ&)=absolut!+17
OB_STATE(tree26_adr%,polar&)=absolut!+17
IF gdu=1
OB_STATE(tree15_adr%,gdu01&)=17
ELSE
IF gdu=2.5
OB_STATE(tree15_adr%,gdu025&)=17
ELSE
IF gdu=5
OB_STATE(tree15_adr%,gdu05&)=17
ELSE
OB_STATE(tree15_adr%,gdu1&)=17
ENDIF
ENDIF
ENDIF
OB_STATE(tree1_adr%,lock&)=1
IF mimaki!
OB_STATE(tree15_adr%,gdu05&)=17
OB_STATE(tree15_adr%,gdu01&)=8
OB_STATE(tree15_adr%,gdu025&)=8
OB_STATE(tree15_adr%,gdu1&)=8
OB_STATE(tree15_adr%,rs232&)=17
OB_STATE(tree15_adr%,mgl&)=17
OB_STATE(tree15_adr%,cent&)=16
OB_STATE(tree15_adr%,hp&)=16
OB_STATE(tree15_adr%,gp&)=16
ELSE
OB_STATE(tree15_adr%,mgl&)=8
ENDIF
~WIND_GET(0,4) ! get desk size
BMOVE GINTOUT+2,tree0_adr%+16,8 ! set into rsc
BMOVE GINTOUT+2,tree1_adr%+16,8 ! set into rsc
BMOVE GINTOUT+2,tree2_adr%+16,8 ! set into rsc
BMOVE GINTOUT+2,tree3_adr%+16,8 ! set into rsc
BMOVE GINTOUT+2,tree4_adr%+16,8 ! set into rsc
BMOVE GINTOUT+2,tree5_adr%+16,8 ! set into rsc
BMOVE GINTOUT+2,tree9_adr%+16,8 ! set into rsc
BMOVE GINTOUT+2,tree25_adr%+16,8 ! set into rsc
BMOVE GINTOUT+2,tree34_adr%+16,8 ! set into rsc
wind_newdesk(tree0_adr%,0) ! install Datei Baum
IF default_font$<>""
datei$=ein_space$
IF EXIST(pfad_fnt$+"\"+default_font$)
load_font(pfad_fnt$+"\"+default_font$)
programm_font$=LEFT$(default_font$,LEN(default_font$)-4)
ELSE
make_new_font(-1)
ENDIF
ELSE
make_new_font(-1)
ENDIF
m$(0)=""
m$(1)=" CUTOUT"
m$(2)="--------------------"
m$(3)=CHR$(2)
m$(4)=CHR$(3)
m$(5)=CHR$(4)
m$(6)=CHR$(5)
m$(7)=CHR$(6)
m$(8)=CHR$(7)
m$(9)=CHR$(8)
m$(10)=""
m$(11)=pd_menu$
m$(12)=pd_datei$
m$(13)=pd_editieren$
m$(14)=pd_fenster$
m$(15)=pd_schnittpunkt$
m$(16)=pd_bogen$
m$(17)="----------------------"
m$(18)=pd_text$
m$(19)=pd_zeicheneditor$
m$(20)=m$(17)
m$(21)=pd_extra$
m$(22)=m$(17)
m$(23)=pd_quit$
m$(24)=""
m$(25)=pd_optionen$
m$(26)=pd_marker_anzeigen$
m$(27)=pd_tangenten_anzeigen$
m$(28)=pd_fangradius_klein$
m$(29)=pd_polygon_modus$
m$(30)=pd_schnittpunkt_genau$
m$(31)=pd_koordinaten$
m$(32)=pd_element_selektieren$
m$(33)=pd_polygon_selektieren$
m$(34)=pd_warnmeldungen$
m$(35)="---------------------------"
m$(36)=pd_skaliere_alles$
m$(37)=m$(35)
m$(38)=pd_punkte_nivellieren$
m$(39)=pd_tangente$
m$(40)=m$(35)
m$(41)=pd_plotflaeche$
m$(42)=pd_bezier_step_aendern$
m$(43)=pd_plotter_einstellung$
m$(44)=pd_kosten_faktor$
m$(45)=pd_pfad_sichern$
m$(46)=""
m$(47)=pd_figur$
m$(48)=pd_rechteck$
m$(49)=pd_n_eck$
m$(50)=pd_polygon_outline$
m$(51)=pd_aequidistante$
m$(52)=pd_frame$
m$(53)="---------------------------"
m$(54)=pd_polygone_ausrichten$
m$(55)=pd_polygone_zentrieren$
m$(56)=pd_polygone_vereinen$
m$(57)=pd_polygone_fuellen$
m$(58)=m$(53)
m$(59)=pd_einzelne_punkte_loeschen$
m$(60)=""
m$(61)=pd_linie$
m$(62)=pd_bezier_vektor$
m$(63)=pd_bezier_einfuegen$
m$(64)=pd_tausche_bezier_vektor$
m$(65)=m$(53)
m$(66)=pd_knacken$
m$(67)=pd_trimmen$
m$(68)=pd_lot$
m$(69)=pd_verlaengern$
m$(70)=pd_teilen$
m$(71)=pd_messen$
m$(72)=m$(53)
m$(73)=pd_schnittp_2er$
m$(74)=pd_schnittp_n$
m$(75)=""
m$(76)=pd_effekt$
m$(77)=pd_parameter_schraffur$
m$(78)=pd_polygon_schraffieren$
m$(79)=pd_alles_schraffieren$
m$(80)="------------------------"
m$(81)=pd_schatten$
m$(82)=pd_einpassen$
m$(83)=m$(80)
m$(84)=pd_kugel$
m$(85)=""
m$(86)=""
MENU m$()
IF fangklein!
MENU 28,1
ENDIF
IF polygonmode!
MENU 29,1
ENDIF
IF warn!
MENU 34,1
ENDIF
CLIP 0,0,639,399 OFFSET 0,0
DEFTEXT 1,0,0,6
COLOR 1
TEXT 400,7,"Zoom X:"
TEXT 400,15,"Zoom Y:"
TEXT 540,7,"X:"
TEXT 540,15,"Y:"
DEFTEXT 1,0,0,4
TEXT 624,7,"mm"
TEXT 624,15,"mm"
LINE 536,0,536,20
LINE 396,0,396,20
'
~FORM_DIAL(3,0,0,0,0,0,0,desk_breite&,desk_hoehe&) !redraw all
'
layer!=FALSE
zoom=1
x_layer%=folie_x%
y_layer%=folie_y%
x_layero%=x_layer%
y_layero%=y_layer%
res_x%=x_layer%
res_y%=y_layer%
x_offset&=0
y_offset&=0
res_x_old%=x_layer%
res_y_old%=y_layer%
x_offset_old&=0
y_offset_old&=0
pointer%=0
get_desktop
scrb_old&=scrb&
scrh_old&=scrh&
CLOSEW 1
programm$=noname$
INT{WINDTAB+2}=&X111111000000
INT{WINDTAB+4}=scrx&
INT{WINDTAB+6}=scry&
INT{WINDTAB+8}=scrb&
INT{WINDTAB+10}=scrh&
help_titel
OPENW 1
calc_slid
~WIND_GET(1,4,x_win&,y_win&,b_window&,h_window&)
neues_polygon!=TRUE
do_redraw
DEFMOUSE 3
p_zoom(zoom*100,zoom*100)
CHAR{{OB_SPEC(tree14_adr%,rx1&)}}=STR$(x_layer%)
CHAR{{OB_SPEC(tree14_adr%,ry1&)}}=STR$(y_layer%)
' test_vollbild
'
~OBJC_OFFSET(tree28_adr%,gtprewin&,gtxv&,gtyv&)
gtxv&=gtxv&-x_win&+1
gtyv&=gtyv&-y_win&+1
'
ON MENU MESSAGE GOSUB message
ON MENU BUTTON 1,1,1 GOSUB button
ON MENU GOSUB menu
ON MENU KEY GOSUB key
' ON ERROR GOSUB fehler
'
'
REPEAT
ON MENU
UNTIL end!
'
IF modified!
IF pointer%>0
ALERT 3,"| "+sichere$+daten$,1,ja_nein$,i%
IF i%=1
@save_vektor
ENDIF
ENDIF
ENDIF
'
' Bei fertigen Programmen hier nur QUIT
'
reset
~WIND_GET(0,10)
IF DPEEK(GINTOUT+2)
ALERT 1,"Accessories",1,"Close|Quit",i%
IF i%=2
QUIT
ENDIF
REPEAT
~WIND_GET(0,10)
UNTIL DPEEK(GINTOUT+2)=0
ENDIF
RESERVE ! XBIOS(2)-HIMEM+FRE(0)-16384
'
PROCEDURE fehler
ALERT 1,fehler$,1,leider$,i%
' RESUME NEXT
RETURN
'
'
PROCEDURE get_undo
LOCAL dp%
dp%=daten_ptr%
IF (pointer%*9+1<work_space%) AND (NOT layer_geladen!)
LONG{dp%}=pointer%
ADD dp%,4
undo!=TRUE
BMOVE VARPTR(punkte_x%(0)),dp%,pointer%*4
ADD dp%,pointer%*4
BMOVE VARPTR(punkte_y%(0)),dp%,pointer%*4
ADD dp%,pointer%*4
BMOVE VARPTR(punkte_def|(0)),dp%,pointer%
undo!=TRUE
ELSE
undo!=FALSE
ENDIF
RETURN
'
PROCEDURE put_undo
LOCAL dp%
IF undo!
dp%=daten_ptr%
pointer%=LONG{dp%}
ADD dp%,4
BMOVE dp%,VARPTR(punkte_x%(0)),pointer%*4
ADD dp%,pointer%*4
BMOVE dp%,VARPTR(punkte_y%(0)),pointer%*4
ADD dp%,pointer%*4
BMOVE dp%,VARPTR(punkte_def|(0)),pointer%
undo!=FALSE
do_redraw
ENDIF
RETURN
'
PROCEDURE output_drucker
LOCAL handle&,x_resi&,y_resi&,z_old
IF GDOS?
ERASE work%()
IF FRE(0)>250000
RESERVE -250000
handle&=V_OPNWK(21)
IF handle&<>0
V~H=handle&
x_resi&=INTOUT(0)
y_resi&=INTOUT(1)
~V_CLRWK()
z_old=zoom
zoom=4
redraw_ohne(0)
~V_UPDWK()
~V_CLSWK()
zoom=z_old
ELSE
ENDIF
RESERVE
ELSE
ENDIF
DIM work%((FRE(0)-80*1024)/4)
daten_ptr%=V:work%(0)
work_space%=DIM?(work%())*4
ELSE
ENDIF
RETURN
'
'
PROCEDURE scan_a1
ALERT 3,"| SCAN Hochformat: ",1,"A3|A2|A1",i%
SELECT i%
CASE 1
scann_x%=INT(17*400/8) !17
scann_y%=INT(12*400) !12
CASE 2
scann_x%=INT(25*400/8)
scann_y%=INT(17*400)
CASE 3
scann_x%=INT(34*400/8)
scann_y%=INT(25*400)
ENDSELECT
scan_graphtec(3,400,0,0,scann_x%,scann_y%)
RETURN
'
PROCEDURE scan_graphtec(device&,dpi&,x_0%,y_0%,bytes_x%,lines_y%)
LOCAL command_bytes&,bytes_to_transfer%,transfer_dir&
LOCAL y_offset%,block&,command_bytes&,bytes_to_transfer%
' IF FN test_unit_ready(device&)=0
set_graphtec_window(device&,dpi&,x_0%,y_0%,bytes_x%,lines_y%)
command_bytes&=10
block&=&HFFFF DIV bytes_x% DIV 3
bytes_to_transfer%=bytes_x%*block&*3
transfer_dir&=0 ! LESEN
command|(0)=&H28
command|(1)=0
command|(2)=0
command|(3)=0
command|(4)=0
command|(5)=0
command|(6)=0
command|(7)=0
command|(8)=0
command|(9)=0
WORD{V:command|(7)}=block&
'
anzahl&=lines_y% DIV block&
rest&=lines_y% MOD block&
y_offset%=0
FOR i%=1 TO anzahl&
$c+
fehler%=C:scsi%(device&,command_bytes&,bytes_to_transfer%,transfer_dir&,L:V:command|(0),L:daten_ptr%+y_offset%)
$c-
ADD y_offset%,block&*bytes_x%
NEXT i%
IF rest&<>0
bytes_to_transfer%=bytes_x%*rest&*3
WORD{V:command|(7)}=rest&
$c+
fehler%=C:scsi%(device&,command_bytes&,bytes_to_transfer%,transfer_dir&,L:V:command|(0),L:daten_ptr%+y_offset%)
$c-
ENDIF
' status&=AND(CARD(fehler%),&X11110)
' message&=CARD(SWAP(fehler%))
layer!=TRUE
layer_geladen!=TRUE
voll_bild!=TRUE
outlined!=FALSE
do_change_aufloesung(bytes_x%*8,lines_y%,1)
init_bit_blit
p_zoom(zoom*100,zoom*100)
do_redraw
' ENDIF
RETURN
'
PROCEDURE set_graphtec_window(device&,dpi&,x_0%,y_0%,bytes_x%,lines_y%)
LOCAL command_bytes&,bytes_to_transfer%,transfer_dir&
command_bytes&=10
bytes_to_transfer%=53
transfer_dir&=1 ! LESEN (1=SCHREIBEN)
command|(0)=&H24
command|(1)=0
command|(2)=0
command|(3)=0
command|(4)=0
command|(5)=0
command|(6)=0
command|(7)=0
command|(8)=bytes_to_transfer%
command|(9)=0
FOR i%=0 TO 6
buffer|(i%)=0
NEXT i%
FOR i%=38 TO 47
buffer|(i%)=0
NEXT i%
buffer|(7)=45 ! Window Descriptor Block Length
buffer|(8)=0 ! Window ID
buffer|(9)=0 ! reserved
WORD{V:buffer|(10)}=dpi& ! X resolution
WORD{V:buffer|(12)}=dpi& ! Y resolution
LONG{V:buffer|(14)}=x_0%*24 ! X Upper Left
LONG{V:buffer|(18)}=y_0%*3 ! Y Upper Left
LONG{V:buffer|(22)}=bytes_x%*24 ! Width
LONG{V:buffer|(26)}=lines_y%*3 ! Length
buffer|(30)=0 ! reserved
buffer|(31)=0 ! Kontrast
buffer|(32)=0 ! reserved
buffer|(33)=0 ! Image composition
buffer|(34)=1 ! Bits per Pixel
buffer|(35)=0 ! reserved
buffer|(36)=0 ! reserved
buffer|(37)=0 ! Reverse Image
buffer|(48)=2 ! Cell length
buffer|(49)=5 ! Function Code
buffer|(50)=1 ! Fine Line
buffer|(51)=2 ! Cell length
buffer|(52)=6 ! Function Code
buffer|(53)=1 ! Scann Speed
$c+
fehler%=C:scsi%(device&,command_bytes&,bytes_to_transfer%,transfer_dir&,L:V:command|(0),L:V:buffer|(0))
$c-
RETURN
'
FUNCTION test_unit_ready(device&)
command_bytes&=6
bytes_to_transfer%=1
transfer_dir&=0 ! LESEN (1=SCHREIBEN)
command|(0)=0
command|(1)=0
command|(2)=0
command|(3)=0
command|(4)=bytes_to_transfer%
command|(5)=0
'
$c+
fehler%=C:scsi%(device&,command_bytes&,L:bytes_to_transfer%,transfer_dir&,L:V:command|(0),L:V:buffer|(0))
$c-
status&=AND(CARD(fehler%),&X11110)
message&=CARD(SWAP(fehler%))
'
RETURN status&
ENDFUNC
'
'
PROCEDURE gt_info(i$)
CHAR{{OB_SPEC(tree28_adr%,gtstate&)}}=i$
~OBJC_DRAW(tree28_adr%,gtstate&,8,xt28&,yt28&,bt28&,ht28&)
RETURN
'
PROCEDURE dpi_change(prex0&,prey0&,prex0_min&,prey0_min&)
CHAR{{OB_SPEC(tree28_adr%,gtdpi&)}}=STR$(gtdpiv&)
~OBJC_DRAW(tree28_adr%,gtdpi&,8,xt28&,yt28&,bt28&,ht28&)
CHAR{{OB_SPEC(tree28_adr%,gtb&)}}=STR$(AND(INT(gtbv&/25.4*gtdpiv&),&HFFF8))
CHAR{{OB_SPEC(tree28_adr%,gth&)}}=STR$(AND(INT(gthv&/25.4*gtdpiv&),&HFFF8))
~OBJC_DRAW(tree28_adr%,gtb&,8,xt28&,yt28&,bt28&,ht28&)
~OBJC_DRAW(tree28_adr%,gth&,8,xt28&,yt28&,bt28&,ht28&)
CHAR{{OB_SPEC(tree28_adr%,gtx&)}}=STR$(AND(INT((prex0&-prex0_min&)/25.4*gtdpiv&),&HFFF8))
CHAR{{OB_SPEC(tree28_adr%,gty&)}}=STR$(AND(INT((prey0&-prey0_min&)/25.4*gtdpiv&),&HFFF8))
~OBJC_DRAW(tree28_adr%,gtx&,8,xt28&,yt28&,bt28&,ht28&)
~OBJC_DRAW(tree28_adr%,gty&,8,xt28&,yt28&,bt28&,ht28&)
RETURN
'
PROCEDURE gt_6000
LOCAL prex0&,prey0&,prex0_min&,prey0_min&,x_changed&,y_changed&
LOCAL prex&,prey&,gthalbton&
DEFMOUSE 0
SETMOUSE xt28&+240,yt28&+310,0
CLIP 0,0,desk_breite&,desk_hoehe& OFFSET x_win&,y_win&
~OBJC_OFFSET(tree28_adr%,gtprewin&,prex&,prey&)
gthalbton&=1
prex0&=prex&-x_win&+1
prey0&=prey&-y_win&+1
prex0_min&=prex0&
prey0_min&=prey0&
prex0_max&=prex0&+217
prey0_max&=prey0&+297
prex0&=gtxv&
prey0&=gtyv&
'
CHAR{{OB_SPEC(tree28_adr%,gtx&)}}=STR$(AND(INT((prex0&-prex0_min&)/25.4*gtdpiv&),&HFFF8))
CHAR{{OB_SPEC(tree28_adr%,gty&)}}=STR$(AND(INT((prey0&-prey0_min&)/25.4*gtdpiv&),&HFFF8))
CHAR{{OB_SPEC(tree28_adr%,gtb&)}}=STR$(AND(INT(gtbv&/25.4*gtdpiv&),&HFFF8))
CHAR{{OB_SPEC(tree28_adr%,gth&)}}=STR$(AND(INT(gthv&/25.4*gtdpiv&),&HFFF8))
CHAR{{OB_SPEC(tree28_adr%,gtdpi&)}}=STR$(gtdpiv&)
CHAR{{OB_SPEC(tree28_adr%,gtstate&)}}=waehle$
GET xt28&-4,yt28&-4,xt28&+bt28&+4,yt28&+ht28&+4,rette$
~OBJC_DRAW(tree28_adr%,0,8,xt28&,yt28&,bt28&,ht28&)
smfdb%(0)=V:prebuf$
smfdb%(1)=208
smfdb%(2)=292
smfdb%(3)=smfdb%(1)/16
smfdb%(5)=1
dmfdb%(0)=XBIOS(3)
dmfdb%(1)=desk_breite&
dmfdb%(2)=desk_hoehe&
dmfdb%(3)=dmfdb%(1)/16
dmfdb%(5)=1
p%(0)=0
p%(1)=0
p%(2)=207
p%(3)=291
p%(4)=prex&+1
p%(5)=prey&+1
p%(6)=p%(4)+207
p%(7)=p%(5)+291
p%(8)=3
BITBLT smfdb%(),dmfdb%(),p%()
DEFFILL 1,1,1
GRAPHMODE 3
BOX prex0&,prey0&,prex0&+gtbv&,prey0&+gthv&
PBOX prex0&+gtbv&-8,prey0&+gthv&-8,prex0&+gtbv&,prey0&+gthv&
REPEAT
DO
~FORM_DO(tree28_adr%,0)
IF INT{GINTOUT}>0 AND INT{GINTOUT}<100
exit_button&=DPEEK(GINTOUT)
OB_STATE(tree28_adr%,exit_button&)=0
IF exit_button&<>gtprewin&
~OBJC_DRAW(tree28_adr%,exit_button&,8,xt28&,yt28&,bt28&,ht28&)
ENDIF
ENDIF
SELECT exit_button&
CASE gtdpimin&
IF gtdpiv&>100
IF gtdpiv&=480
gtdpiv&=400
ELSE
IF gtdpiv&=600
gtdpiv&=480
ELSE
SUB gtdpiv&,100
ENDIF
ENDIF
dpi_change(prex0&,prey0&,prex0_min&,prey0_min&)
ENDIF
CASE gtdpiplu&
IF gtdpiv&<600
IF gtdpiv&=400
gtdpiv&=480
ELSE
IF gtdpiv&=480
gtdpiv&=600
ELSE
ADD gtdpiv&,100
ENDIF
ENDIF
dpi_change(prex0&,prey0&,prex0_min&,prey0_min&)
ENDIF
CASE gtprewin&
MOUSE x_mouse%,y_mouse%,taste|
IF x_mouse%>prex0&+gtbv&-8 AND x_mouse%<prex0&+gtbv& AND y_mouse%>prey0&+gthv&-8 AND y_mouse%<prey0&+gthv&
DEFMOUSE 3
REPEAT
MOUSE x_mouse%,y_mouse%,taste|
IF x_mouse%<>x_mouse_old% OR y_mouse%<>y_mouse_old%
BOX prex0&,prey0&,prex0&+gtbv&,prey0&+gthv&
PBOX prex0&+gtbv&-8,prey0&+gthv&-8,prex0&+gtbv&,prey0&+gthv&
IF x_mouse%-prex0_min&<217 AND x_mouse%-prex0&>16
gtbv&=x_mouse%-prex0&
i%=AND(INT(gtbv&/25.4*gtdpiv&),&HFFF0)
gtbv&=CINT(i%*25.4/gtdpiv&)
ENDIF
IF y_mouse%-prey0_min&<298 AND y_mouse%-prey0&>16
gthv&=y_mouse%-prey0&
ENDIF
BOX prex0&,prey0&,prex0&+gtbv&,prey0&+gthv&
PBOX prex0&+gtbv&-8,prey0&+gthv&-8,prex0&+gtbv&,prey0&+gthv&
SHOWM
x_mouse_old%=x_mouse%
y_mouse_old%=y_mouse%
CHAR{{OB_SPEC(tree28_adr%,gtb&)}}=STR$(AND(INT(gtbv&/25.4*gtdpiv&),&HFFF0))
CHAR{{OB_SPEC(tree28_adr%,gth&)}}=STR$(INT(gthv&/25.4*gtdpiv&))
~OBJC_DRAW(tree28_adr%,gtb&,8,xt28&,yt28&,bt28&,ht28&)
~OBJC_DRAW(tree28_adr%,gth&,8,xt28&,yt28&,bt28&,ht28&)
ENDIF
UNTIL taste|=0
DEFMOUSE 0
ELSE
IF x_mouse%>prex0& AND x_mouse%<prex0&+gtbv& AND y_mouse%>prey0& AND y_mouse%<prey0&+gthv&
x_mouse_old%=x_mouse%
y_mouse_old%=y_mouse%
DEFMOUSE 3
REPEAT
MOUSE x_mouse%,y_mouse%,taste|
IF x_mouse%<>x_mouse_old% OR y_mouse%<>y_mouse_old%
x_changed&=x_mouse%-x_mouse_old%
y_changed&=y_mouse%-y_mouse_old%
BOX prex0&,prey0&,prex0&+gtbv&,prey0&+gthv&
PBOX prex0&+gtbv&-8,prey0&+gthv&-8,prex0&+gtbv&,prey0&+gthv&
IF prex0&+x_changed&>=prex0_min& AND prex0&+x_changed&+gtbv&<prex0_max&
ADD prex0&,x_changed&
ENDIF
IF prey0&+y_changed&>=prey0_min& AND prey0&+y_changed&+gthv&<prey0_max&
ADD prey0&,y_changed&
ENDIF
BOX prex0&,prey0&,prex0&+gtbv&,prey0&+gthv&
PBOX prex0&+gtbv&-8,prey0&+gthv&-8,prex0&+gtbv&,prey0&+gthv&
SHOWM
x_mouse_old%=x_mouse%
y_mouse_old%=y_mouse%
CHAR{{OB_SPEC(tree28_adr%,gtx&)}}=STR$(AND(INT((prex0&-prex0_min&)/25.4*gtdpiv&),&HFFF8))
CHAR{{OB_SPEC(tree28_adr%,gty&)}}=STR$(AND(INT((prey0&-prey0_min&)/25.4*gtdpiv&),&HFFF8))
~OBJC_DRAW(tree28_adr%,gtx&,8,xt28&,yt28&,bt28&,ht28&)
~OBJC_DRAW(tree28_adr%,gty&,8,xt28&,yt28&,bt28&,ht28&)
ENDIF
UNTIL taste|=0
DEFMOUSE 0
ENDIF
ENDIF
CASE gtpresca&
gt_info(scannen$+pre_view$)
HIDEM
gt6000%=VARPTR(gt6000$)
$C+
VOID C:gt6000%(1,50,3,3,gthalbton&,0,0,26,292,L:V:prebuf$,L:V:prebuf$+8000)
$C-
OUT (2),13
trigger_0
DEFMOUSE 3
SHOWM
BOX prex0&,prey0&,prex0&+gtbv&,prey0&+gthv&
PBOX prex0&+gtbv&-8,prey0&+gthv&-8,prex0&+gtbv&,prey0&+gthv&
smfdb%(0)=V:prebuf$
BITBLT smfdb%(),dmfdb%(),p%()
BOX prex0&,prey0&,prex0&+gtbv&,prey0&+gthv&
PBOX prex0&+gtbv&-8,prey0&+gthv&-8,prex0&+gtbv&,prey0&+gthv&
gt_info(waehle$)
ENDSELECT
EXIT IF exit_button&=gtcancel&
EXIT IF exit_button&=gtscan&
LOOP
IF exit_button&=gtcancel&
PUT xt28&-4,yt28&-4,rette$
ok!=TRUE
ENDIF
IF exit_button&=gtscan&
IF OB_STATE(tree28_adr%,gthart&)=1
gthalbton&=0
ELSE
IF OB_STATE(tree28_adr%,gtweich&)=1
gthalbton&=16
ELSE
IF OB_STATE(tree28_adr%,gtraster&)=1
gthalbton&=32
ELSE
gthalbton&=1
ENDIF
ENDIF
ENDIF
IF OB_STATE(tree28_adr%,gtrot&)=1
gtfarbev&=0
ELSE
IF OB_STATE(tree28_adr%,gtgruen&)=1
gtfarbev&=1
ELSE
IF OB_STATE(tree28_adr%,gtblau&)=1
gtfarbev&=2
ELSE
gtfarbev&=3
ENDIF
ENDIF
ENDIF
IF OB_STATE(tree28_adr%,k0&)=1
gtkontrav&=0
ELSE
IF OB_STATE(tree28_adr%,k1&)=1
gtkontrav&=1
ELSE
IF OB_STATE(tree28_adr%,k2&)=1
gtkontrav&=2
ELSE
IF OB_STATE(tree28_adr%,k3&)=1
gtkontrav&=3
ELSE
IF OB_STATE(tree28_adr%,k4&)=1
gtkontrav&=4
ELSE
IF OB_STATE(tree28_adr%,k5&)=1
gtkontrav&=5
ELSE
gtkontrav&=6
ENDIF
ENDIF
ENDIF
ENDIF
ENDIF
ENDIF
gt_info(scannen$+bereich$)
gtxorig&=CINT(AND(INT((prex0&+2-prex0_min&)/25.4*gtdpiv&),&HFFF8)/8)
gtyorig&=CINT((prey0&+2-prey0_min&)/25.4*gtdpiv&)
gtxbytes&=CINT(AND(INT(gtbv&/25.4*gtdpiv&),&HFFF0)/8)
gtyzeilen&=CINT(gthv&/25.4*gtdpiv&)
IF gtxbytes&*(gtyzeilen&+1)<work_space%
HIDEM
gt6000%=VARPTR(gt6000$)
$C+
i%=C:gt6000%(0,gtdpiv&,gtfarbev&,gtkontrav&,gthalbton&,gtxorig&,gtyorig&,gtxbytes&,gtyzeilen&,L:daten_ptr%,L:daten_ptr%+work_space%)
$C-
OUT (2),13
trigger_0
DEFMOUSE 3
SHOWM
ELSE
i%=-1
ENDIF
IF i%>=0
gt_info(waehle$)
PUT xt28&-4,yt28&-4,rette$
layer!=TRUE
layer_geladen!=TRUE
voll_bild!=TRUE
outlined!=FALSE
do_change_aufloesung(AND(INT(gtbv&/25.4*gtdpiv&),&HFFF0),INT(gthv&/25.4*gtdpiv&),1)
init_bit_blit
p_zoom(zoom*100,zoom*100)
do_redraw
ok!=TRUE
ELSE
FOR i%=1 TO 5
gt_info(fehler$)
PAUSE 15
gt_info(" ")
PAUSE 15
NEXT i%
gt_info(waehle$)
ok!=FALSE
ENDIF
ENDIF
UNTIL ok!
gtxv&=prex0&
gtyv&=prey0&
~WIND_GET(1,4)
clip(x_window&,y_window&,b_window&,h_window&,INT{GINTOUT+2},INT{GINTOUT+4})
set_clip_offset
GRAPHMODE 1
DEFFILL 0,0
DEFMOUSE 3
init_bit_blit
RETURN
'
PROCEDURE set_clip_offset
INT{WINDTAB+64}=INT{WINDTAB+64}-x_offset&
INT{WINDTAB+66}=INT{WINDTAB+66}-y_offset&
RETURN
'
PROCEDURE helpo(help$)
TITLEW #1,ein_space$+help$+ein_space$
set_clip_offset
RETURN
'
PROCEDURE help(help$)
TITLEW #1,ein_space$+waehle$+help$+ein_space$
set_clip_offset
RETURN
'
PROCEDURE help_titel
TITLEW #1,ein_space$+pfad_vek$+"\"+programm$+".VEK "
set_clip_offset
DEFMOUSE 3
DEFLINE 1
COLOR 1
GRAPHMODE 1
p_xy_info("X:","Y:",0)
SHOWM
trigger_0
zeit%=TIMER
RETURN
'
PROCEDURE polygon_fill
REPEAT
DEFMOUSE 0
GET xt20&-4,yt20&-4,xt20&+bt20&+4,yt20&+ht20&+4,rette$
SETMOUSE xt20&+bt20&/2,yt20&+160,0
~OBJC_DRAW(tree20_adr%,0,8,xt20&,yt20&,bt20&,ht20&)
~FORM_DO(tree20_adr%,0)
exit_button&=DPEEK(GINTOUT)
OB_STATE(tree20_adr%,exit_button&)=0
PUT xt20&-4,yt20&-4,rette$
IF OB_STATE(tree20_adr%,fill1&)=1
DEFFILL 1,2,1
ELSE IF OB_STATE(tree20_adr%,fill2&)=1
DEFFILL 1,2,2
ELSE IF OB_STATE(tree20_adr%,fill3&)=1
DEFFILL 1,2,3
ELSE IF OB_STATE(tree20_adr%,fill4&)=1
DEFFILL 1,2,4
ELSE IF OB_STATE(tree20_adr%,fill5&)=1
DEFFILL 1,2,5
ELSE IF OB_STATE(tree20_adr%,fill6&)=1
DEFFILL 1,2,6
ELSE IF OB_STATE(tree20_adr%,fill7&)=1
DEFFILL 1,2,8
ENDIF
DEFMOUSE mdaten$
help(help_polygon$)
IF exit_button&<>fillcancel&
REPEAT
trigger_0
wait_taste
IF taste|<>2
FILL x_mouse%,y_mouse%
ENDIF
UNTIL taste|=2
ENDIF
UNTIL exit_button&=fillcancel&
~FRE(0)
DEFFILL 1,1
help_titel
RETURN
'
' *****************************************************************************
' * TANGENTE NIVELLIEREN *
' * *
' * VERÄNDERT VAR: Punkte_X%(), Punkte_Y%() *
' * *
' *****************************************************************************
'
PROCEDURE do_niv_tangente(found_quelle%,von%,bis%,dreh_x%,dreh_y%)
LOCAL phi,strecke
dx=SUB(dreh_x%,punkte_x%(found%))
dy=SUB(dreh_y%,punkte_y%(found%))
strecke=SQR(dx*dx+dy*dy)
get_phi(dreh_x%,dreh_y%,punkte_x%(found_quelle%),punkte_y%(found_quelle%),phi)
redraw_von_bis(von%,bis%,0)
punkte_x%(found%)=CINT(dreh_x%-strecke*COS(phi))
punkte_y%(found%)=CINT(dreh_y%-strecke*SIN(phi))
redraw_von_bis(von%,bis%,1)
RETURN
'
PROCEDURE tangente_nivellieren
LOCAL found_quelle%,quelle_def|
LOCAL von%,bis%,f%,dreh_x%,dreh_y%
IF pointer%>1
show_cursor_fang
REPEAT
trigger_0
GRAPHMODE 1
REPEAT
wait_taste
EXIT IF taste|=2
find(x_mouse%*100/zoom,y_mouse%*100/zoom)
quelle_def|=punkte_def|(found%)
UNTIL (quelle_def|>da| AND quelle_def|<b3|)
IF taste|<>2
found_quelle%=found%
IF quelle_def|=b1|
IF punkte_def|(found_quelle%-1)=b3|
found%=found_quelle%-2
von%=found_quelle%-4
bis%=von%+3
dreh_x%=punkte_x%(found_quelle%-1)
dreh_y%=punkte_y%(found_quelle%-1)
do_niv_tangente(found_quelle%,von%,bis%,dreh_x%,dreh_y%)
ELSE
IF punkte_def|(found_quelle%-1)=da|
found%=found_quelle%
found_quelle%=found%-2
von%=found%-1
bis%=von%+3
dreh_x%=punkte_x%(found%-1)
dreh_y%=punkte_y%(found%-1)
do_niv_tangente(found_quelle%,von%,bis%,dreh_x%,dreh_y%)
ELSE
IF punkte_def|(found_quelle%-1)=ma|
found%=found_quelle%
REPEAT
INC found%
UNTIL punkte_def|(found%)=ma|
DEC found%
IF punkte_def|(found%)=b3|
DEC found%
von%=found%-2
bis%=von%+3
dreh_x%=punkte_x%(found_quelle%-1)
dreh_y%=punkte_y%(found_quelle%-1)
do_niv_tangente(found_quelle%,von%,bis%,dreh_x%,dreh_y%)
ELSE
IF punkte_def|(found%)=da|
f%=found_quelle%
found_quelle%=found%-1
found%=f%
von%=found%-1
bis%=von%+3
dreh_x%=punkte_x%(found_quelle%+1)
dreh_y%=punkte_y%(found_quelle%+1)
do_niv_tangente(found_quelle%,von%,bis%,dreh_x%,dreh_y%)
ENDIF
ENDIF
ENDIF
ENDIF
ENDIF
ELSE
IF quelle_def|=b2|
IF punkte_def|(found_quelle%+2)=b1|
found%=found_quelle%+2
von%=found_quelle%+1
bis%=von%+3
dreh_x%=punkte_x%(found_quelle%+1)
dreh_y%=punkte_y%(found_quelle%+1)
do_niv_tangente(found_quelle%,von%,bis%,dreh_x%,dreh_y%)
ELSE
IF punkte_def|(found_quelle%+2)=da|
found%=found_quelle%
found_quelle%=found%+2
von%=found%-2
bis%=von%+3
dreh_x%=punkte_x%(found%+1)
dreh_y%=punkte_y%(found%+1)
do_niv_tangente(found_quelle%,von%,bis%,dreh_x%,dreh_y%)
ELSE
IF punkte_def|(found_quelle%+2)=ma|
found%=found_quelle%
REPEAT
DEC found%
UNTIL punkte_def|(found%)=ma|
INC found%
IF punkte_def|(found%)=b1|
von%=found%-1
bis%=von%+3
dreh_x%=punkte_x%(found_quelle%+1)
dreh_y%=punkte_y%(found_quelle%+1)
do_niv_tangente(found_quelle%,von%,bis%,dreh_x%,dreh_y%)
ELSE
IF punkte_def|(found%)=da|
f%=found_quelle%
found_quelle%=found%
found%=f%
von%=found%-2
bis%=von%+3
dreh_x%=punkte_x%(found_quelle%-1)
dreh_y%=punkte_y%(found_quelle%-1)
do_niv_tangente(found_quelle%,von%,bis%,dreh_x%,dreh_y%)
ENDIF
ENDIF
ENDIF
ENDIF
ENDIF
ENDIF
ENDIF
ENDIF
UNTIL taste|=2
DEFMOUSE 3
ENDIF
RETURN
'
' *****************************************************************************
' * ASCII Editor *
' * *
' * *
' * ' ******************************************************************************
' * *
' * CUTOUT *
' * *
' * 27.02.1992 *
' * *
' ******************************************************************************
'
'
$B+
$I-
INLINE scsi%,933
DIM buffer|(512*2)
DIM command|(12)
' VAR:
' apl_id&=APPL_INIT()
magic%=14031952
'
' serien_nummer$="REGIST00"
' serien_nummer_vergleich$="REGIST11"
serien_nummer$=MKD$(101)
serien_nummer_vergleich$=MKD$(101 XOR magic%)
'
fang_schnittpunkt|=4
buffer%=0
buffer_max%=0
poly_len%=0
bits%=0
punkt_eintrag&=0
x_start&=0
y_start&=0
edi_max&=0
m=0
m_neu=0
bit_count|=0
pixel!=FALSE
'
regist_nr%=0
revision$="1.59"
zeit%=TIMER
calamus_nr%=0
ortho|=45
ortho=RAD(ortho|)
ortho2=ortho/2
x_win&=0 ! Window X pos aktuell
y_win&=0 ! Window Y pos aktuell
x_window&=0 ! Window X pos aktuell
y_window&=0 ! Window Y pos aktuell
b_window&=0 ! Window Breite aktuell
h_window&=0 ! Window Höhe aktuell
~WIND_GET(0,4,scrx&,scry&,scrb&,scrh&) ! maximaler Desktop
wmx%=scrb&-62
wmy%=scrh&-57+scry&
desk_breite&=scrb&
desk_hoehe&=scrh&+scry&
gross_bildschirm!=FALSE
IF desk_breite&>640 OR desk_hoehe&>400
gross_bildschirm!=TRUE
ENDIF
ADD scrx&,42 ! Position Window X+Menuleiste
SUB scrb&,42 ! Breite Window
scrb_old&=scrb&
scrh_old&=scrh&
res_x%=0 ! Auflösung x in mm
res_y%=0 ! Auflösung y in mm
res_x_old%=0
res_y_old%=0
x_layer%=0
y_layer%=0
x_layero%=0
y_layero%=0
x_offset&=0 ! Nullpunkt x im Fenster
y_offset&=0 ! Nullpunkt y im Fenster
x_offset_old&=0
y_offset_old&=0
x_mouse%=0
y_mouse%=0
x_mouse_old%=0
y_mouse_old%=0
x_mouse_0%=0
y_mouse_0%=0
objectbox_x0%=0
objectbox_y0%=0
objectbox_x1%=0
objectbox_y1%=0
grid%=10 ! raster mm
schraff_dist=201
schraff_inc=0
schraff_fix_abst=0
schraff_winkel=0
schraff_start%=0
schraff_y_min%=0
bit_count_max|=6
geraden_fehler|=1
lange_gerade%=4000
schmutz_filter%=20
knick_winkel_max=RAD(140)
bogen_max=PI/2/2
abweichung_gerade%=0.5*100
last_poly_s%=-1
last_poly_e%=-1
taste|=0
zoom=1
zoom_old=1
zoom_100=1
pointer%=0 ! Zeiger auf Punkteliste
found%=0 ! gefundener Punkt bei SNAP
found_t%=0 ! gefundener Kurvenparameter
schnittpunkt_genau%=16 ! Zerlegung Bezier in Teile
anz_schnittpunkte%=0 ! Anzahl Schnittpunkte
b_vari=100
i%=0 ! allgemeiner Schleifenzähler
ii%=0
iii%=0
d0%=0
dx%=0
dy%=0
dx=0
dy=0
schnitt_laenge=0
kostfak=1
gkosten=0
px0%=0
py0%=0
px1%=0
py1%=0
px2%=0
py2%=0
px3%=0
py3%=0
m_square_breite&=&H3000
m_square_hoehe&=&H3000
kerning_256|=m_square_breite& DIV 256
len_pair_daten&=0
z_hoehe_def%=16384 ! Höhe des definierten Zsatzes
z_breite_def%=16384 ! Breite "
zeichen_hoehe%=3000 ! gewünschte Höhe in 1/100 mm
versal_def%=0 ! Versal Höhe in 1/100 mm
z_ascii_scale=zeichen_hoehe%/z_hoehe_def% ! Scaling
z_ascii_scale_old=z_ascii_scale ! save Scaling
global_kerning%=1280 ! globales Kerning
zeilen_abstand_prozent%=125 ! relativer Zeilen Abstand
zeilen_abstand%=zeichen_hoehe%*zeilen_abstand_prozent%/100-zeichen_hoehe%
z_cursor_x_spalte%=0 ! Start String
z_cursor_x%=0 ! ASCII Zeichen Cursor X
z_cursor_y%=0 ! ASCII Zeichen Cursor y
z_cursor_x_old%=0 ! letztes Zeichen Cursor X
z_cursor_y_old%=0 ! letztes Zeichen Cursor y
z_ascii_old%=0 ! letztes Zeichen ASCII+32
z_satz_pointer%=0 ! Pointer auf Zeichensatz
state_rs232&=0 ! Centronics aktiv
state_hp&=0 ! HPGL aktiv
folie_x%=1188 ! Folien Grö₧e
folie_y%=840
plotter_x_min%=0
plotter_y_min%=0
gdu=0 ! 100*Plottereinheit
sel_start%=0
sel_end%=0
gtxv&=0
gtyv&=0
gtbv&=216
gthv&=297
gtdpiv&=300
gtfarbev&=3
gtkontrav&=3
exit_button&=0
cursor_x&=0
cursor_y&=0
ofn_ver|=0
overcut|=0
geschlossen%=0
'
phi_x_3d=0
phi_y_3d=0
a2_3d=0
'
daten_ptr%=0
work_space%=0
'
' CONST:
'
IF FRE(0)>4000000
p_max%=99999
ELSE
p_max%=60000
ENDIF
ma|=0
da|=1
b1|=2
b2|=3
b3|=4
ein_drittel=1/3
fmin=2.225073858507E-307
fmin1=0.005
max1=0.995
pimal2=PI*2
pihalbe=PI/2
pidrittel=PI/3
fang_rad%=8*100 ! FANGRADIUS
p_at%=XBIOS(3)+76 ! PRINT AT FÜR X,Y
p_at_zoom%=p_at%-12 ! PRINT AT FÜR ZOOM
x_bytes%=(scrb&+42)/8 ! BYTES IN X RICHTUNG DESKTOP
'
' CONST: Menuleiste
'
tree00&=0
tree0_adr%=0
datei&=3
eintrag&=4
mfenster&=10
mtext&=5
mzedi&=6
spezial&=7
all_clear&=8
bbogen&=9
mschnitt&=11
'
tree01&=1
tree1_adr%=0
back_main&=3
fwd_main&=4
gerade&=5
kurve&=6
schliess&=7
verrunde&=8
loeschen&=9
lock&=10
snap&=11
bild&=12
zircel&=13
bezier4&=14
schere&=15
' fenster&=15
'
tree02&=2
tree2_adr%=0
back_datei&=3
fwd_datei&=4
l_vek&=5
l_merge&=6
r_macro&=7
r_cvg&=8
l_img&=9
l_pic&=10
ordner&=11
s_vek&=12
s_plt&=13
a_plotter&=14
'
tree03&=3
tree3_adr%=0
back_fenster&=3
fwd_fenster&=4
fmove&=5
blitz&=6
fcopy&=7
fzoom&=8
fzoomp&=9
fdreh&=10
fspiegel&=11
fkursiv&=12
dreh3d&=13
drehxp&=14
drehxm&=15
drehym&=16
drehyp&=17
floesch&=18
fzoom1&=19
'
tree04&=4
tree4_adr%=0
back_spezial&=3
gtepson&=4
handy&=5
kontour&=6
filter&=7
trace&=8
smooth&=9
simag&=10
'
tree05&=5
tree5_adr%=0
back_text&=3
fwd_text&=4
z_edit&=5
z_editor&=6
z_string&=7
z_t_hoehe&=8
z_t_abstand&=9
z_g_kerning&=10
z_read_ascii&=11
l_font&=12
s_font&=14
c_font&=13
'
tree06&=6
tree6_adr%=0
t_hoehe&=1
'
tree07&=7
tree7_adr%=0
zabs&=1
'
tree08&=8 ! String Text
tree8_adr%=0
string_text&=1
breite&=3
string_breite&=4
versal&=5
string_versal&=6
pfad&=7
do_kerning&=8
string_kreis&=9
string_kreis_von&=10
string_kreis_bis&=11
fontname&=13
c_text&=14
icon_pair&=15
icon_trep&=16
'
tree09&=9 ! Zeichen Editor
tree9_adr%=0
back_editor&=3
m_matrix&=4
z_matrix&=5
move_matrix&=6
kerning_links&=7
kerning_rechts&=8
kerning_auto&=9
z_get&=10
z_muell&=11
z_up&=13
z_down&=14
z_char&=15
'
tree10&=10
tree10_adr%=0
b_kerning&=2
g_kerning&=3
'
tree11&=11 ! Optimier
tree11_adr%=0
del_ma&=4
del_ge&=6
del_el&=8
'
tree12&=12
tree12_adr%=0
bstep&=1
'
tree13&=13 ! Info
tree13_adr%=0
vernr&=7
version&=4
firma&=4
strasse&=7
stadt&=10
punkte&=15
rest&=17
'
tree14&=14 ! Auflösung
tree14_adr%=0
rx1&=8
ry1&=10
rx2&=12
ry2&=13
rx3&=16
ry3&=17
get_pf&=19
r1&=4
r2&=5
r3&=6
'
tree15&=15 ! Plotter INIT
tree15_adr%=0
p_init1&=3
p_init2&=4
gdu01&=9
gdu025&=10
gdu05&=11
gdu1&=12
overcut&=16
cent&=18
rs232&=20
hp&=23
gp&=24
mgl&=25
ma&=29
da&=30
'
tree16&=16 ! Pfade und Parameter
tree16_adr%=0
pv&=5
pp&=7
pfi&=9
pg&=11
pf&=13
df&=15
p1&=17
p2&=19
schnitt&=21
gdu&=23
foliex&=25
foliey&=27
warn&=29
cancel&=31
'
tree17&=17
tree17_adr%=0
outl&=1
outl_anz&=2
'
tree18&=18
tree18_adr%=0
schraffd&=1
schraffi&=2
schrafix&=3
schraffw&=4
schraffa&=7
schrafff&=8
'
tree19&=19
tree19_adr%=0
necka&=1
neckp&=2
'
tree20&=20 ! Füll
tree20_adr%=0
fill1&=3
fill2&=5
fill3&=7
fill4&=9
fill5&=11
fill6&=13
fill7&=15
fillcancel&=17
'
tree21&=21 ! Trace
tree21_adr%=0
t_step&=7
t_gerade&=8
t_schmutz&=9
bschwelle&=21
knickwinkel&=22
bogen_max&=23
abweichung_gerade&=24
nur_gerade&=13
trace_cancel&=14
gerade_bezier&=30
'
tree22&=22
tree22_adr%=0
scann_x&=1
scann_y&=2
'
tree23&=23
tree23_adr%=0
radius&=1
'
tree24&=24
tree24_adr%=0
grau&=6
stark&=7
selgrau0&=4
selgrau&=5
sellinie&=8
alle&=9
auswahl&=10
'
tree25&=25 ! Bogen
tree25_adr%=0
backboge&=3
vkreis&=4
kreis3&=5
kreisbog&=6
bogen3&=7
bogen2&=8
ellipse&=9
elbogen&=10
eckrund&=11
'
tree26&=26 ! Koordinaten
tree26_adr%=0
absolut&=2
relativ&=3
polar&=4
'
tree27&=27 ! Calamus Versions Nr.
tree27_adr%=0
calamus_nr&=1
'
tree28&=28 ! GT 6000
tree28_adr%=0
gtscan&=47
gtx&=38
gty&=44
gtb&=42
gth&=43
gtcancel&=46
gtpresca&=45
gtdpi&=35
gtdpimin&=33
gtdpiplu&=34
gtprewin&=1
gtstate&=5
gtkeiner&=9
gtraster&=10
gtweich&=11
gthart&=12
gtkeine&=15
gtrot&=18
gtgruen&=17
gtblau&=16
k0&=22
k1&=23
k2&=24
k3&=25
k4&=26
k5&=27
k6&=28
'
tree29&=29 ! Kosten
tree29_adr%=0
kostfak&=1
sl&=2
gkosten&=4
'
tree30&=30 ! Select Filter
tree30_adr%=0
abs_filter&=1
'
tree31&=31 ! Select Fenster
tree31_adr%=0
ohnecopy&=1
mitcopy&=6
anz_rot&=3
phi_rot&=4
numohne&=5
ausricht_vector&=7
'
tree32&=32 ! Select Spiegel
tree32_adr%=0
anbox&=2
anachse&=1
'
tree33&=33
tree33_adr%=0
teil&=1
'
tree34&=34 ! Schnittpunkt
tree34_adr%=0
backschn&=3
fwdschn&=4
trimm&=5
knack&=6
lot&=7
teilen&=8
lang&=9
schnitt2&=10
schnittn&=11
delseg&=12
delel&=13
schmelz&=14
'
tree35&=35 ! Select Copy
tree35_adr%=0
copysing&=1
copymul&=2
cx&=4
cy&=5
canz&=6
cdist&=7
'
tree36&=36 ! Ausrichten
tree36_adr%=0
a_olinks&=1
a_oben&=2
a_orechts&=3
a_links&=4
a_mitte&=5
a_rechts&=6
a_ulinks&=7
a_unten&=8
a_urechts&=9
'
tree37&=37 ! Scalieren
tree37_adr%=0
scale_interactiv&=1
scale_numerisch&=2
scale_breite&=4
scale_hoehe&=5
'
tree38&=38 ! Ordner
tree38_adr%=0
ordnert&=1
ordnerok&=2
ordnerca&=3
'
tree39&=39 ! Kerning
tree39_adr%=0
kerning_box&=1
kerning_minus&=3
kerning_plus&=4
kerning_last&=2
kerning_next&=5
kerning_exit&=6
kerning_minus2&=9
kerning_plus2&=10
kerning_last2&=8
kerning_next2&=11
kerning_clear&=7
kerning_info&=13
kerning_pair&=15
'
tree40&=40 ! Plotter OUTPUT
tree40_adr%=0
pl100&=3
plschieber&=4
plschere&=7
plschereauf&=5
plscherezu&=6
plschere&=7
'
tree41&=41 ! Select Neigen
tree41_adr%=0
neige_grad&=2
neige_vertical&=3
neige_horizontal&=4
neige_interaktiv&=5
'
' FLAG:
'
undo!=FALSE
geschlossen!=FALSE
ok!=FALSE ! allgemein
layer_geladen!=FALSE ! ist Layer geladen
layer!=FALSE ! soll Layer gezeigt werden
window_fulled!=TRUE ! ist Fenster schon gro₧
voll_bild!=FALSE ! ist Fenster komplett auf Crt
eintragen!=FALSE ! ist eintragen aktiv
bogen!=FALSE
mtext!=FALSE
meditor!=FALSE
datei!=FALSE
fenster!=FALSE
schnittpunktm!=FALSE
loeschen!=FALSE ! ist loeschen aktiv
neues_polygon!=TRUE ! erster Punkt im Polygon
found!=FALSE ! gefunden bei Fangradius
marker!=FALSE ! sollen Marker gezeigt werden
marker_select!=FALSE ! soll Marker selectiert
modified!=FALSE ! wurde Vektorbild geändert
font_geladen!=FALSE ! ist ein Font geladen
outlined!=FALSE ! wurde Bitmap schon outlined
auto_schraff!=TRUE
schraff_fix_abst!=FALSE
einpassen!=FALSE
tangente!=FALSE
tangenten_lock!=TRUE
warn!=FALSE
gp_gl!=FALSE ! HPGL oder GPGL
tasten_rep!=FALSE
absolut!=TRUE
relativ!=FALSE
polar!=FALSE
absolut_old!=FALSE
polar_old!=FALSE
fangklein!=FALSE ! Fangradius gro₧
fadenkreuz!=FALSE
polygonmode!=TRUE ! Polygonmodus
ortho!=FALSE
grid!=FALSE
scrolled!=FALSE
move!=FALSE
drei_d!=FALSE
status_wechsel!=FALSE
grid_wechsel!=FALSE
swap!=FALSE
'
' ARRAY:
'
DIM smfdb%(8),dmfdb%(8),p%(8)
DIM z_smfdb%(8),z_dmfdb%(8),z_p%(8),q_dmfdb%(8)
DIM punkte_x%(p_max%),punkte_y%(p_max%),punkte_def|(p_max%),buffer%(p_max%/2)
DIM x_meta%(127),y_meta%(127),punkte_def1|(32)
ARRAYFILL punkte_def1|(),1
DIM bezier_x&(33),bezier_y&(33)
DIM m$(87)
DIM mk%(60,2)
DIM m_square%(5)
DIM z_editor%(32)
DIM z_ascii%(224),z_kerning&(224*16),z_daten&(224*280),z_pair&(224),z_pair|(224),z_pair_daten|(2000)
DIM sx1%(9),sy1%(9),sx2%(9),sy2%(9),sp1(9),sp2(9)
DIM zeilen_buffer$(60)
rette$=SPACE$(32000)
pfad$=SPACE$(80)
kerning_string$=SPACE$(60)
pfad_pic$=SPACE$(80)
pfad_img$=SPACE$(80)
pfad_vek$=SPACE$(80)
pfad_vek_root$=SPACE$(80)
pfad_cvg$=SPACE$(80)
pfad_fnt$=SPACE$(80)
pfad_cfn$=SPACE$(80)
default_font$=SPACE$(10)
programm$=SPACE$(10)
programm_font$=SPACE$(10)
test_datei$=SPACE$(10)
object$=SPACE$(80)
p_init1$=SPACE$(40)
p_init2$=SPACE$(40)
abc$="CutOut Test"
ma$="M"
da$="D"
cutout_font$="CUTOUTOFN"
calamus_font_grafik$=MKI$(159)+MKI$(15)+MKI$(1)+SPACE$(320)
ok$="OK"
ein_space$=" "
x_y$="X|Y"
erster$="1. "
zweiter$="2. "
help_on$="ON "
help_off$="OFF"
vek$="VEK"
cvg$="CVG"
img$="IMG"
plt$="PLT"
calamus$="CALAMUS"
cutout$="CutOut"
' ****************************************************************************
OPEN "I",#1,"SYS\LANGUAGE.DRV"
LINE INPUT #1,pd_menu$
LINE INPUT #1,pd_datei$
LINE INPUT #1,pd_editieren$
LINE INPUT #1,pd_fenster$
LINE INPUT #1,pd_schnittpunkt$
LINE INPUT #1,pd_bogen$
LINE INPUT #1,pd_text$
LINE INPUT #1,pd_zeicheneditor$
LINE INPUT #1,pd_extra$
LINE INPUT #1,pd_quit$
'
LINE INPUT #1,pd_optionen$
LINE INPUT #1,pd_marker_anzeigen$
LINE INPUT #1,pd_tangenten_anzeigen$
LINE INPUT #1,pd_fangradius_klein$
LINE INPUT #1,pd_polygon_modus$
LINE INPUT #1,pd_schnittpunkt_genau$
LINE INPUT #1,pd_koordinaten$
LINE INPUT #1,pd_element_selektieren$
LINE INPUT #1,pd_polygon_selektieren$
LINE INPUT #1,pd_warnmeldungen$
LINE INPUT #1,pd_skaliere_alles$
LINE INPUT #1,pd_punkte_nivellieren$
LINE INPUT #1,pd_tangente$
LINE INPUT #1,pd_plotflaeche$
LINE INPUT #1,pd_bezier_step_aendern$
LINE INPUT #1,pd_plotter_einstellung$
LINE INPUT #1,pd_kosten_faktor$
LINE INPUT #1,pd_pfad_sichern$
'
LINE INPUT #1,pd_figur$
LINE INPUT #1,pd_rechteck$
LINE INPUT #1,pd_n_eck$
LINE INPUT #1,pd_polygon_outline$
LINE INPUT #1,pd_aequidistante$
LINE INPUT #1,pd_frame$
LINE INPUT #1,pd_polygone_ausrichten$
LINE INPUT #1,pd_polygone_zentrieren$
LINE INPUT #1,pd_polygone_vereinen$
LINE INPUT #1,pd_polygone_fuellen$
LINE INPUT #1,pd_einzelne_punkte_loeschen$
'
LINE INPUT #1,pd_linie$
LINE INPUT #1,pd_bezier_vektor$
LINE INPUT #1,pd_bezier_einfuegen$
LINE INPUT #1,pd_tausche_bezier_vektor$
LINE INPUT #1,pd_knacken$
LINE INPUT #1,pd_trimmen$
LINE INPUT #1,pd_lot$
LINE INPUT #1,pd_verlaengern$
LINE INPUT #1,pd_teilen$
LINE INPUT #1,pd_messen$
LINE INPUT #1,pd_schnittp_2er$
LINE INPUT #1,pd_schnittp_n$
'
LINE INPUT #1,pd_effekt$
LINE INPUT #1,pd_parameter_schraffur$
LINE INPUT #1,pd_polygon_schraffieren$
LINE INPUT #1,pd_alles_schraffieren$
LINE INPUT #1,pd_schatten$
LINE INPUT #1,pd_einpassen$
LINE INPUT #1,pd_kugel$
'
LINE INPUT #1,lade$
LINE INPUT #1,sichere$
LINE INPUT #1,fuege_ein$
LINE INPUT #1,vektor$
LINE INPUT #1,macro$
LINE INPUT #1,daten$
LINE INPUT #1,zeichensatz$
LINE INPUT #1,kein$
LINE INPUT #1,keine$
LINE INPUT #1,ja_nein$
LINE INPUT #1,waehle$
LINE INPUT #1,fehler$
LINE INPUT #1,scannen$
LINE INPUT #1,pre_view$
LINE INPUT #1,ascii_importieren$
LINE INPUT #1,ascii_exportieren$
LINE INPUT #1,schriftblock$
LINE INPUT #1,radius_zu$
LINE INPUT #1,winkel_zu$
LINE INPUT #1,leider$
LINE INPUT #1,winkel_einstellen$
LINE INPUT #1,spiegelachse$
LINE INPUT #1,lupe_mal$
LINE INPUT #1,fensterbereich$
LINE INPUT #1,drehzentrum$
LINE INPUT #1,ordner_exist$
LINE INPUT #1,kein_leer$
LINE INPUT #1,suche_schnittpunkte$
LINE INPUT #1,gleiches_polygon$
LINE INPUT #1,bezugs$
LINE INPUT #1,zentriere$
LINE INPUT #1,huellkurve$
LINE INPUT #1,huellkurve1$
LINE INPUT #1,berechne$
LINE INPUT #1,rechte_taste$
LINE INPUT #1,endpunkt$
LINE INPUT #1,lot_an$
LINE INPUT #1,noname$
LINE INPUT #1,symbol$
LINE INPUT #1,orginal_fenster$
LINE INPUT #1,dmc_font$
LINE INPUT #1,bild_datei_zu$
LINE INPUT #1,stad_laden$
LINE INPUT #1,plotter_ist_off$
LINE INPUT #1,plot_datei$
LINE INPUT #1,kein_treiber$
LINE INPUT #1,schnittstelle_auf$
LINE INPUT #1,polygone_vereinen$
LINE INPUT #1,loesche_einzelne$
LINE INPUT #1,quelle$
LINE INPUT #1,ziel$
LINE INPUT #1,nivelliere$
LINE INPUT #1,alle_daten_l$
LINE INPUT #1,ganzer_zeichensatz$
LINE INPUT #1,font_daten_loeschen$
LINE INPUT #1,zeichen_matrix$
LINE INPUT #1,datei_existiert$
LINE INPUT #1,datei_ueberschreiben$
LINE INPUT #1,glaetten_mit$
LINE INPUT #1,gerade_bezier$
LINE INPUT #1,glaetten$
LINE INPUT #1,bereich$
LINE INPUT #1,path$
LINE INPUT #1,help_mittelpunkt$
LINE INPUT #1,help_radius$
LINE INPUT #1,help_position$
LINE INPUT #1,help_startwinkel$
LINE INPUT #1,help_endwinkel$
LINE INPUT #1,help_polygon$
LINE INPUT #1,help_punkt$
LINE INPUT #1,help_linie$
LINE INPUT #1,help_element$
LINE INPUT #1,help_verrund$
LINE INPUT #1,help_loesche$
LINE INPUT #1,help_trenn$
LINE INPUT #1,help_move$
LINE INPUT #1,help_sel$
LINE INPUT #1,help_move_window$
LINE INPUT #1,help_rahmen$
LINE INPUT #1,help_edit$
LINE INPUT #1,help_bezier$
LINE INPUT #1,help_status$
LINE INPUT #1,help_ortho$
LINE INPUT #1,help_grid$
LINE INPUT #1,help_free$
LINE INPUT #1,help_snap$
LINE INPUT #1,help_editor$
LINE INPUT #1,help_pfad$
CLOSE #1
' ****************************************************************************
integer%=VARPTR(punkte_x%(1))-VARPTR(punkte_x%(0)) ! Länge in Bytes Integer
'
z_editor%(0)=2048 ! Top Line Y
z_editor%(1)=3072 ! Ascent Line Y
z_editor%(2)=6144 ! Half Line Y
z_editor%(3)=11264 ! Base Line Y
z_editor%(4)=13952 ! Descent Line Y
z_editor%(5)=14336 ! Bottom Line Y
'
z_editor%(6)=0 ! Matrix links X
z_editor%(7)=16384 ! Matrix rechts X
z_editor%(8)=1280 ! Kerning links X
z_editor%(9)=1280 ! Kerning links X
z_editor%(10)=1280 ! Kerning links X
z_editor%(11)=1280 ! Kerning links X
z_editor%(12)=1280 ! Kerning links X
z_editor%(13)=1280 ! Kerning links X
z_editor%(14)=1280 ! Kerning links X
z_editor%(15)=1280 ! Kerning links X
z_editor%(16)=15104 ! Kerning rechts X
z_editor%(17)=15104 ! Kerning rechts X
z_editor%(18)=15104 ! Kerning rechts X
z_editor%(19)=15104 ! Kerning rechts X
z_editor%(20)=15104 ! Kerning rechts X
z_editor%(21)=15104 ! Kerning rechts X
z_editor%(22)=15104 ! Kerning rechts X
z_editor%(23)=15104 ! Kerning rechts X
z_editor%(24)=z_editor%(0) ! Kerning Y
z_editor%(25)=(z_editor%(5)-z_editor%(0))/8 ! Kerning Y
z_editor%(26)=z_editor%(24)+z_editor%(25) ! Kerning Y
z_editor%(27)=z_editor%(26)+z_editor%(25) ! Kerning Y
z_editor%(28)=z_editor%(27)+z_editor%(25) ! Kerning Y
z_editor%(29)=z_editor%(28)+z_editor%(25) ! Kerning Y
z_editor%(30)=z_editor%(29)+z_editor%(25) ! Kerning Y
z_editor%(31)=z_editor%(30)+z_editor%(25) ! Kerning Y
z_editor%(32)=0 ! Matrix oben Y
'
' ******************************************************************************
' * *
' * MENU INITIALISIERUNG *
' * *
' ******************************************************************************
'
BMOVE V:serien_nummer$,V:serien_nummer,8
BMOVE V:serien_nummer_vergleich$,V:serien_nummer_vergleich,8
regist_nr%=serien_nummer_vergleich
IF serien_nummer<>(serien_nummer_vergleich XOR magic%)
PRINT "SORRY HACKER"
PAUSE 300
SYSTEM
ENDIF
INLINE zasm_ptr%,4136
INLINE pack_img%,958
INLINE calc_bezier%,1050
INLINE p_num%,360
INLINE find_line%,356
INLINE kontour%,216
INLINE staddec%,184
INLINE imgdec%,228
INLINE findexcept%,52
INLINE findpointexcept%,70
mfang$=MKI$(7)+MKI$(7)+MKI$(1)+MKI$(0)+MKI$(1)
mfang$=mfang$+MKI$(&X1111111111111110)
mfang$=mfang$+MKI$(&X1111111111111110)
mfang$=mfang$+MKI$(&X1100001110000110)
mfang$=mfang$+MKI$(&X1100001110000110)
mfang$=mfang$+MKI$(&X1100001110000110)
mfang$=mfang$+MKI$(&X1100001110000110)
mfang$=mfang$+MKI$(&X1111110001111110)
mfang$=mfang$+MKI$(&X1111110001111110)
mfang$=mfang$+MKI$(&X1111110001111110)
mfang$=mfang$+MKI$(&X1100001110000110)
mfang$=mfang$+MKI$(&X1100001110000110)
mfang$=mfang$+MKI$(&X1100001110000110)
mfang$=mfang$+MKI$(&X1100001110000110)
mfang$=mfang$+MKI$(&X1111111111111110)
mfang$=mfang$+MKI$(&X1111111111111110)
mfang$=mfang$+MKI$(&X0)
'
mfang$=mfang$+MKI$(&X1111111111111110)
mfang$=mfang$+MKI$(&X1000000100000010)
mfang$=mfang$+MKI$(&X1000000100000010)
mfang$=mfang$+MKI$(&X1000000100000010)
mfang$=mfang$+MKI$(&X1000000100000010)
mfang$=mfang$+MKI$(&X1000000100000010)
mfang$=mfang$+MKI$(&X1000000000000010)
mfang$=mfang$+MKI$(&X1111110001111110)
mfang$=mfang$+MKI$(&X1000000000000010)
mfang$=mfang$+MKI$(&X1000000100000010)
mfang$=mfang$+MKI$(&X1000000100000010)
mfang$=mfang$+MKI$(&X1000000100000010)
mfang$=mfang$+MKI$(&X1000000100000010)
mfang$=mfang$+MKI$(&X1000000100000010)
mfang$=mfang$+MKI$(&X1111111111111110)
mfang$=mfang$+MKI$(&X0)
'
mfang_klein$=MKI$(7)+MKI$(7)+MKI$(1)+MKI$(0)+MKI$(1)
mfang_klein$=mfang_klein$+MKI$(&X0)
mfang_klein$=mfang_klein$+MKI$(&X0)
mfang_klein$=mfang_klein$+MKI$(&X11111111111000)
mfang_klein$=mfang_klein$+MKI$(&X11111111111000)
mfang_klein$=mfang_klein$+MKI$(&X11001110011000)
mfang_klein$=mfang_klein$+MKI$(&X11001110011000)
mfang_klein$=mfang_klein$+MKI$(&X11110001111000)
mfang_klein$=mfang_klein$+MKI$(&X11110001111000)
mfang_klein$=mfang_klein$+MKI$(&X11110001111000)
mfang_klein$=mfang_klein$+MKI$(&X11001110011000)
mfang_klein$=mfang_klein$+MKI$(&X11001110011000)
mfang_klein$=mfang_klein$+MKI$(&X11111111111000)
mfang_klein$=mfang_klein$+MKI$(&X11111111111000)
mfang_klein$=mfang_klein$+MKI$(&X0)
mfang_klein$=mfang_klein$+MKI$(&X0)
mfang_klein$=mfang_klein$+MKI$(&X0)
'
mfang_klein$=mfang_klein$+MKI$(&X0)
mfang_klein$=mfang_klein$+MKI$(&X0)
mfang_klein$=mfang_klein$+MKI$(&X0)
mfang_klein$=mfang_klein$+MKI$(&X1111111110000)
mfang_klein$=mfang_klein$+MKI$(&X1000100010000)
mfang_klein$=mfang_klein$+MKI$(&X1000100010000)
mfang_klein$=mfang_klein$+MKI$(&X1000000010000)
mfang_klein$=mfang_klein$+MKI$(&X1110001110000)
mfang_klein$=mfang_klein$+MKI$(&X1000000010000)
mfang_klein$=mfang_klein$+MKI$(&X1000100010000)
mfang_klein$=mfang_klein$+MKI$(&X1000100010000)
mfang_klein$=mfang_klein$+MKI$(&X1111111110000)
mfang_klein$=mfang_klein$+MKI$(&X0)
mfang_klein$=mfang_klein$+MKI$(&X0)
mfang_klein$=mfang_klein$+MKI$(&X0)
mfang_klein$=mfang_klein$+MKI$(&X0)
'
mdaten$=MKI$(7)+MKI$(7)+MKI$(1)+MKI$(0)+MKI$(1)
mdaten$=mdaten$+MKI$(&X1110000000)
mdaten$=mdaten$+MKI$(&X1110000000)
mdaten$=mdaten$+MKI$(&X1110000000)
mdaten$=mdaten$+MKI$(&X1110000000)
mdaten$=mdaten$+MKI$(&X1110000000)
mdaten$=mdaten$+MKI$(&X1110000000)
mdaten$=mdaten$+MKI$(&X1111110001111110)
mdaten$=mdaten$+MKI$(&X1111110001111110)
mdaten$=mdaten$+MKI$(&X1111110001111110)
mdaten$=mdaten$+MKI$(&X1110000000)
mdaten$=mdaten$+MKI$(&X1110000000)
mdaten$=mdaten$+MKI$(&X1110000000)
mdaten$=mdaten$+MKI$(&X1110000000)
mdaten$=mdaten$+MKI$(&X1110000000)
mdaten$=mdaten$+MKI$(&X1110000000)
mdaten$=mdaten$+MKI$(&X0)
'
mdaten$=mdaten$+MKI$(&X100000000)
mdaten$=mdaten$+MKI$(&X100000000)
mdaten$=mdaten$+MKI$(&X100000000)
mdaten$=mdaten$+MKI$(&X100000000)
mdaten$=mdaten$+MKI$(&X100000000)
mdaten$=mdaten$+MKI$(&X100000000)
mdaten$=mdaten$+MKI$(&X0)
mdaten$=mdaten$+MKI$(&X1111110001111110)
mdaten$=mdaten$+MKI$(&X0)
mdaten$=mdaten$+MKI$(&X100000000)
mdaten$=mdaten$+MKI$(&X100000000)
mdaten$=mdaten$+MKI$(&X100000000)
mdaten$=mdaten$+MKI$(&X100000000)
mdaten$=mdaten$+MKI$(&X100000000)
mdaten$=mdaten$+MKI$(&X100000000)
mdaten$=mdaten$+MKI$(&X0)
'
schwer$=MKI$(7)+MKI$(7)+MKI$(-1)+MKI$(0)+MKI$(1)
schwer$=schwer$+MKI$(&X0) !
schwer$=schwer$+MKI$(&X0)
schwer$=schwer$+MKI$(&X11111000000) !
schwer$=schwer$+MKI$(&X11111000000)
schwer$=schwer$+MKI$(&X1100111110000) !
schwer$=schwer$+MKI$(&X1100111110000)
schwer$=schwer$+MKI$(&X10000111111000) !
schwer$=schwer$+MKI$(&X10000111111000)
schwer$=schwer$+MKI$(&X10000111111000) !
schwer$=schwer$+MKI$(&X10000111111000)
schwer$=schwer$+MKI$(&X100000111111100) !
schwer$=schwer$+MKI$(&X100000111111100)
schwer$=schwer$+MKI$(&X100000111111100) !
schwer$=schwer$+MKI$(&X100000111111100)
schwer$=schwer$+MKI$(&X111111011111100) !!
schwer$=schwer$+MKI$(&X111111011111100)
schwer$=schwer$+MKI$(&X111111100000100) !
schwer$=schwer$+MKI$(&X111111100000100)
schwer$=schwer$+MKI$(&X111111100000100) !
schwer$=schwer$+MKI$(&X111111100000100)
schwer$=schwer$+MKI$(&X11111100001000) !
schwer$=schwer$+MKI$(&X11111100001000)
schwer$=schwer$+MKI$(&X11111100001000) !
schwer$=schwer$+MKI$(&X11111100001000)
schwer$=schwer$+MKI$(&X1111100110000) !
schwer$=schwer$+MKI$(&X1111100110000)
schwer$=schwer$+MKI$(&X11111000000) !
schwer$=schwer$+MKI$(&X11111000000)
schwer$=schwer$+MKI$(&X0) !
schwer$=schwer$+MKI$(&X0)
schwer$=schwer$+MKI$(&X0) !
schwer$=schwer$+MKI$(&X0)
pfad_read
reset
RESERVE -64*1024
DIM work%((FRE(0)-80*1024)/4)
daten_ptr%=V:work%(0)
work_space%=DIM?(work%())*4
KEYPAD 8
~RSRC_LOAD("SYS\CUTOUT.RSC")
~RSRC_GADDR(0,tree00&,tree0_adr%)
~RSRC_GADDR(0,tree01&,tree1_adr%)
~RSRC_GADDR(0,tree02&,tree2_adr%)
~RSRC_GADDR(0,tree03&,tree3_adr%)
~RSRC_GADDR(0,tree04&,tree4_adr%)
~RSRC_GADDR(0,tree05&,tree5_adr%)
~RSRC_GADDR(0,tree06&,tree6_adr%)
~RSRC_GADDR(0,tree07&,tree7_adr%)
~RSRC_GADDR(0,tree08&,tree8_adr%)
~RSRC_GADDR(0,tree09&,tree9_adr%)
~RSRC_GADDR(0,tree10&,tree10_adr%)
~RSRC_GADDR(0,tree11&,tree11_adr%)
~RSRC_GADDR(0,tree12&,tree12_adr%)
~RSRC_GADDR(0,tree13&,tree13_adr%)
~RSRC_GADDR(0,tree14&,tree14_adr%)
~RSRC_GADDR(0,tree15&,tree15_adr%)
~RSRC_GADDR(0,tree16&,tree16_adr%)
~RSRC_GADDR(0,tree17&,tree17_adr%)
~RSRC_GADDR(0,tree18&,tree18_adr%)
~RSRC_GADDR(0,tree19&,tree19_adr%)
~RSRC_GADDR(0,tree20&,tree20_adr%)
~RSRC_GADDR(0,tree21&,tree21_adr%)
~RSRC_GADDR(0,tree22&,tree22_adr%)
~RSRC_GADDR(0,tree23&,tree23_adr%)
~RSRC_GADDR(0,tree24&,tree24_adr%)
~RSRC_GADDR(0,tree25&,tree25_adr%)
~RSRC_GADDR(0,tree26&,tree26_adr%)
~RSRC_GADDR(0,tree27&,tree27_adr%)
~RSRC_GADDR(0,tree28&,tree28_adr%)
~RSRC_GADDR(0,tree29&,tree29_adr%)
~RSRC_GADDR(0,tree30&,tree30_adr%)
~RSRC_GADDR(0,tree31&,tree31_adr%)
~RSRC_GADDR(0,tree32&,tree32_adr%)
~RSRC_GADDR(0,tree33&,tree33_adr%)
~RSRC_GADDR(0,tree34&,tree34_adr%)
~RSRC_GADDR(0,tree35&,tree35_adr%)
~RSRC_GADDR(0,tree36&,tree36_adr%)
~RSRC_GADDR(0,tree37&,tree37_adr%)
~RSRC_GADDR(0,tree38&,tree38_adr%)
~RSRC_GADDR(0,tree39&,tree39_adr%)
~RSRC_GADDR(0,tree40&,tree40_adr%)
~RSRC_GADDR(0,tree41&,tree41_adr%)
~FORM_CENTER(tree6_adr%)
~FORM_CENTER(tree7_adr%)
~FORM_CENTER(tree8_adr%)
~FORM_CENTER(tree10_adr%)
~FORM_CENTER(tree11_adr%)
~FORM_CENTER(tree12_adr%)
~FORM_CENTER(tree13_adr%)
~FORM_CENTER(tree14_adr%)
~FORM_CENTER(tree15_adr%)
~FORM_CENTER(tree16_adr%)
~FORM_CENTER(tree17_adr%)
~FORM_CENTER(tree18_adr%)
~FORM_CENTER(tree19_adr%)
~FORM_CENTER(tree20_adr%)
~FORM_CENTER(tree21_adr%)
~FORM_CENTER(tree22_adr%)
~FORM_CENTER(tree23_adr%)
~FORM_CENTER(tree24_adr%)
~FORM_CENTER(tree26_adr%)
~FORM_CENTER(tree27_adr%)
~FORM_CENTER(tree28_adr%)
~FORM_CENTER(tree29_adr%)
~FORM_CENTER(tree30_adr%)
~FORM_CENTER(tree31_adr%)
~FORM_CENTER(tree32_adr%)
~FORM_CENTER(tree33_adr%)
~FORM_CENTER(tree35_adr%)
~FORM_CENTER(tree36_adr%)
~FORM_CENTER(tree37_adr%)
~FORM_CENTER(tree38_adr%)
~FORM_CENTER(tree39_adr%)
~FORM_CENTER(tree40_adr%)
~FORM_CENTER(tree41_adr%)
xt6&=DPEEK(tree6_adr%+16)
yt6&=DPEEK(tree6_adr%+18)
bt6&=DPEEK(tree6_adr%+20)
ht6&=DPEEK(tree6_adr%+22)
xt7&=DPEEK(tree7_adr%+16)
yt7&=DPEEK(tree7_adr%+18)
bt7&=DPEEK(tree7_adr%+20)
ht7&=DPEEK(tree7_adr%+22)
xt8&=DPEEK(tree8_adr%+16)
yt8&=DPEEK(tree8_adr%+18)
bt8&=DPEEK(tree8_adr%+20)
ht8&=DPEEK(tree8_adr%+22)
xt10&=DPEEK(tree10_adr%+16)
yt10&=DPEEK(tree10_adr%+18)
bt10&=DPEEK(tree10_adr%+20)
ht10&=DPEEK(tree10_adr%+22)
xt11&=DPEEK(tree11_adr%+16)
yt11&=DPEEK(tree11_adr%+18)
bt11&=DPEEK(tree11_adr%+20)
ht11&=DPEEK(tree11_adr%+22)
xt12&=DPEEK(tree12_adr%+16)
yt12&=DPEEK(tree12_adr%+18)
bt12&=DPEEK(tree12_adr%+20)
ht12&=DPEEK(tree12_adr%+22)
xt13&=DPEEK(tree13_adr%+16)
yt13&=DPEEK(tree13_adr%+18)
bt13&=DPEEK(tree13_adr%+20)
ht13&=DPEEK(tree13_adr%+22)
xt14&=DPEEK(tree14_adr%+16)
yt14&=DPEEK(tree14_adr%+18)
bt14&=DPEEK(tree14_adr%+20)
ht14&=DPEEK(tree14_adr%+22)
xt15&=DPEEK(tree15_adr%+16)
yt15&=DPEEK(tree15_adr%+18)
bt15&=DPEEK(tree15_adr%+20)
ht15&=DPEEK(tree15_adr%+22)
xt16&=DPEEK(tree16_adr%+16)
yt16&=DPEEK(tree16_adr%+18)
bt16&=DPEEK(tree16_adr%+20)
ht16&=DPEEK(tree16_adr%+22)
xt17&=DPEEK(tree17_adr%+16)
yt17&=DPEEK(tree17_adr%+18)
bt17&=DPEEK(tree17_adr%+20)
ht17&=DPEEK(tree17_adr%+22)
xt18&=DPEEK(tree18_adr%+16)
yt18&=DPEEK(tree18_adr%+18)
bt18&=DPEEK(tree18_adr%+20)
ht18&=DPEEK(tree18_adr%+22)
xt19&=DPEEK(tree19_adr%+16)
yt19&=DPEEK(tree19_adr%+18)
bt19&=DPEEK(tree19_adr%+20)
ht19&=DPEEK(tree19_adr%+22)
xt20&=DPEEK(tree20_adr%+16)
yt20&=DPEEK(tree20_adr%+18)
bt20&=DPEEK(tree20_adr%+20)
ht20&=DPEEK(tree20_adr%+22)
xt21&=DPEEK(tree21_adr%+16)
yt21&=DPEEK(tree21_adr%+18)
bt21&=DPEEK(tree21_adr%+20)
ht21&=DPEEK(tree21_adr%+22)
xt22&=DPEEK(tree22_adr%+16)
yt22&=DPEEK(tree22_adr%+18)
bt22&=DPEEK(tree22_adr%+20)
ht22&=DPEEK(tree22_adr%+22)
xt23&=DPEEK(tree23_adr%+16)
yt23&=DPEEK(tree23_adr%+18)
bt23&=DPEEK(tree23_adr%+20)
ht23&=DPEEK(tree23_adr%+22)
DPOKE tree24_adr%+16,DPEEK(tree24_adr%+16)+200
xt24&=DPEEK(tree24_adr%+16)
yt24&=DPEEK(tree24_adr%+18)
bt24&=DPEEK(tree24_adr%+20)
ht24&=DPEEK(tree24_adr%+22)
xt26&=DPEEK(tree26_adr%+16)
yt26&=DPEEK(tree26_adr%+18)
bt26&=DPEEK(tree26_adr%+20)
ht26&=DPEEK(tree26_adr%+22)
xt27&=DPEEK(tree27_adr%+16)
yt27&=DPEEK(tree27_adr%+18)
bt27&=DPEEK(tree27_adr%+20)
ht27&=DPEEK(tree27_adr%+22)
xt28&=DPEEK(tree28_adr%+16)
yt28&=DPEEK(tree28_adr%+18)
bt28&=DPEEK(tree28_adr%+20)
ht28&=DPEEK(tree28_adr%+22)
xt29&=DPEEK(tree29_adr%+16)
yt29&=DPEEK(tree29_adr%+18)
bt29&=DPEEK(tree29_adr%+20)
ht29&=DPEEK(tree29_adr%+22)
xt30&=DPEEK(tree30_adr%+16)
yt30&=DPEEK(tree30_adr%+18)
bt30&=DPEEK(tree30_adr%+20)
ht30&=DPEEK(tree30_adr%+22)
xt31&=DPEEK(tree31_adr%+16)
yt31&=DPEEK(tree31_adr%+18)
bt31&=DPEEK(tree31_adr%+20)
ht31&=DPEEK(tree31_adr%+22)
xt32&=DPEEK(tree32_adr%+16)
yt32&=DPEEK(tree32_adr%+18)
bt32&=DPEEK(tree32_adr%+20)
ht32&=DPEEK(tree32_adr%+22)
xt35&=DPEEK(tree35_adr%+16)
yt35&=DPEEK(tree35_adr%+18)
bt35&=DPEEK(tree35_adr%+20)
ht35&=DPEEK(tree35_adr%+22)
xt33&=DPEEK(tree33_adr%+16)
yt33&=DPEEK(tree33_adr%+18)
bt33&=DPEEK(tree33_adr%+20)
ht33&=DPEEK(tree33_adr%+22)
xt36&=DPEEK(tree36_adr%+16)
yt36&=DPEEK(tree36_adr%+18)
bt36&=DPEEK(tree36_adr%+20)
ht36&=DPEEK(tree36_adr%+22)
xt37&=DPEEK(tree37_adr%+16)
yt37&=DPEEK(tree37_adr%+18)
bt37&=DPEEK(tree37_adr%+20)
ht37&=DPEEK(tree37_adr%+22)
xt38&=DPEEK(tree38_adr%+16)
yt38&=DPEEK(tree38_adr%+18)
bt38&=DPEEK(tree38_adr%+20)
ht38&=DPEEK(tree38_adr%+22)
xt39&=DPEEK(tree39_adr%+16)
yt39&=DPEEK(tree39_adr%+18)
bt39&=DPEEK(tree39_adr%+20)
ht39&=DPEEK(tree39_adr%+22)
xt40&=DPEEK(tree40_adr%+16)
yt40&=DPEEK(tree40_adr%+18)
bt40&=DPEEK(tree40_adr%+20)
ht40&=DPEEK(tree40_adr%+22)
xt41&=DPEEK(tree41_adr%+16)
yt41&=DPEEK(tree41_adr%+18)
bt41&=DPEEK(tree41_adr%+20)
ht41&=DPEEK(tree41_adr%+22)
bt_output&=OB_W(tree40_adr%,pl100&)
CHAR{{OB_SPEC(tree6_adr%,t_hoehe&)}}=STR$(INT(zeichen_hoehe%/100))
CHAR{{OB_SPEC(tree7_adr%,zabs&)}}=STR$(INT(zeilen_abstand_prozent%))
CHAR{{OB_SPEC(tree9_adr%,z_char&)}}=CHR$(z_ascii_old%+32)
CHAR{{OB_SPEC(tree8_adr%,string_text&)}}=abc$
CHAR{{OB_SPEC(tree12_adr%,bstep&)}}=STR$(b_vari/100)
CHAR{{OB_SPEC(tree13_adr%,punkte&)}}=STR$(pointer%)
CHAR{{OB_SPEC(tree13_adr%,rest&)}}=STR$(p_max%-pointer%)
CHAR{{OB_SPEC(tree13_adr%,version&)}}=revision$
CHAR{{OB_SPEC(tree14_adr%,rx1&)}}=STR$(folie_x%)
CHAR{{OB_SPEC(tree14_adr%,ry1&)}}=STR$(folie_y%)
CHAR{{OB_SPEC(tree14_adr%,rx2&)}}=STR$(folie_x2%)
CHAR{{OB_SPEC(tree14_adr%,ry2&)}}=STR$(folie_y2%)
CHAR{{OB_SPEC(tree14_adr%,rx3&)}}=STR$(folie_x3%)
CHAR{{OB_SPEC(tree14_adr%,ry3&)}}=STR$(folie_y3%)
CHAR{{OB_SPEC(tree15_adr%,p_init1&)}}=p_init1$
CHAR{{OB_SPEC(tree15_adr%,p_init2&)}}=p_init2$
CHAR{{OB_SPEC(tree15_adr%,overcut&)}}=STR$(overcut|/10)
CHAR{{OB_SPEC(tree15_adr%,ma&)}}=ma$
CHAR{{OB_SPEC(tree15_adr%,da&)}}=da$
CHAR{{OB_SPEC(tree17_adr%,outl&)}}="3.0"
CHAR{{OB_SPEC(tree18_adr%,schraffd&)}}=STR$(schraff_dist/100)
CHAR{{OB_SPEC(tree18_adr%,schraffi&)}}=STR$(schraff_inc/100)
CHAR{{OB_SPEC(tree18_adr%,schraffw&)}}=STR$(schraff_winkel)
CHAR{{OB_SPEC(tree18_adr%,schrafix&)}}=STR$(schraff_fix_abst)
CHAR{{OB_SPEC(tree21_adr%,t_step&)}}=STR$(bit_count_max|)
CHAR{{OB_SPEC(tree21_adr%,t_gerade&)}}=STR$(geraden_fehler|)
CHAR{{OB_SPEC(tree21_adr%,t_schmutz&)}}=STR$(schmutz_filter%)
CHAR{{OB_SPEC(tree21_adr%,bschwelle&)}}=STR$(lange_gerade%/100)
CHAR{{OB_SPEC(tree21_adr%,knickwinkel&)}}=STR$(CINT(DEG(knick_winkel_max)))
CHAR{{OB_