home *** CD-ROM | disk | FTP | other *** search
/ M.u.C.S. Disc 2000 / MUCS2000.iso / sigisoft / painter / ms-dos / painter.lst < prev    next >
Encoding:
File List  |  1997-10-06  |  76.7 KB  |  3,152 lines

  1. SCREEN 17
  2. CLOSE #1
  3. TRON #97
  4. CLEAR
  5. ccc%=1
  6. graf%=1
  7. ON ERROR GOSUB fehler
  8. RESTORE aaa
  9. DEFLINE 1,bh,0,0
  10. DIM menue$(97)
  11. kreis_1a%=0
  12. kreis_2a%=360
  13. ka%=1
  14. fu%=1
  15. grk=1
  16. modus%=1
  17. DEFMOUSE 3
  18. REPEAT
  19.   READ menue$(d%)
  20.   INC d%
  21. UNTIL d%=96
  22. GET 0,0,640,403,z$
  23. GET 0,0,640,403,l$
  24. GET 0,0,640,403,g$
  25. IF EXIST("FEHLER.SHB")=TRUE
  26.   CLOSE #1
  27.   a$="FEHLER.SHB"
  28.   bild$=""
  29.   DEFMOUSE 3
  30.   OPEN "I",#1,a$
  31.   bild$=INPUT$(CVI(INPUT$(2,#1)),#1)
  32.   CLOSE #1
  33.   PUT 0,0,bild$,modus%
  34.   CLOSE #1
  35.   GET 0,0,640,403,z$
  36. ENDIF
  37. MENU menue$()
  38. ON MENU  GOSUB auswerten
  39. PRINT AT(68,1);MALLOC(-1)
  40. REPEAT
  41.   ON MENU
  42. UNTIL void
  43. PROCEDURE auswerten
  44.   PRINT AT(68,1);MALLOC(-1)
  45.   ON ERROR GOSUB fehler
  46.   MENU KILL
  47.   LOCAL d%,dd%
  48.   CLIP 0,0,640,403
  49.   ld$=menue$(MENU(0))
  50.   COLOR ccc%
  51.   GRAPHMODE graf%
  52.   DEFMOUSE 5
  53.   PUT 0,0,z$
  54.   SHOWM
  55.   IF ld$=" Unfill "
  56.     GOSUB unfill
  57.   ENDIF
  58.   IF ld$=" Kreis Ausschnitt "
  59.     GOSUB kreis_aus
  60.   ENDIF
  61.   IF ld$=" Spiegel - Modus "
  62.     DEFMOUSE 3
  63.     ALERT 3,"Spiegel Modus ",5,"_Horizontal|_Vertikal|_Alle|_Quer|_Zurück",b|
  64.     IF b|=5
  65.       b|=0
  66.     ENDIF
  67.     PUT 0,0,z$
  68.   ENDIF
  69.   IF ld$=" Lade Schrift "
  70.     DEFMOUSE 3
  71.     FREEFONT
  72.     CHDIR "SCHRIFT"
  73.     FILESELECT "*.FNT",fo$,fo$
  74.     LOADFONT fo$
  75.     CHDIR ".."
  76.   ENDIF
  77.   IF ld$=" Kreis    2 "
  78.     a|=3
  79.     GOSUB zeichne_2
  80.   ENDIF
  81.   IF ld$=" Ellipse  2 "
  82.     a|=1
  83.     GOSUB zeichne_2
  84.   ENDIF
  85.   IF ld$=" Rechteck 2 "
  86.     a|=2
  87.     GOSUB zeichne_2
  88.   ENDIF
  89.   IF ld$=" Betriebssystem "
  90.     HIDEM
  91.     CLS
  92.     SHELL "ECHO Mit Exit zurück zum Zeichenprogramm"
  93.     SHELL ""
  94.     SHOWM
  95.     PUT 0,0,z$
  96.   ENDIF
  97.   IF ld$=" Stiftgröße "
  98.     GRAPHMODE 1
  99.     COLOR 1
  100.     GET 0,0,640,403,l$
  101.     HIDEM
  102.     PRINT AT(1,1);"X - Koordinate ";
  103.     FORM INPUT 3,Xkord$
  104.     Xkord%=VAL(Xkord$)
  105.     PRINT AT(1,2);"Y - Koordinate ";
  106.     FORM INPUT 3,Ykord$
  107.     Ykord%=VAL(Ykord$)
  108.     PUT 0,0,z$
  109.   ENDIF
  110.   IF ld$=" SZL - Linie "
  111.     GOSUB  Lang_linie
  112.   ENDIF
  113.   IF ld$=" Pyramide "
  114.     GOSUB pyramide2
  115.   ENDIF
  116.   IF ld$=" Draw 2 "
  117.     GOSUB draw2m
  118.   ENDIF
  119.   IF ld$=" Punkt Laden "
  120.     DEFMOUSE 3
  121.     a$=""
  122.     FILESELECT #"Bildpunkte laden","*.LST",a$,a$
  123.     IF EXIST(a$)=-1
  124.       CLS
  125.       OPEN "I",#1,a$
  126.       x=0
  127.       y=0
  128.       REPEAT
  129.         INPUT #1,x,y
  130.         DRAW x,y
  131.       UNTIL EOF(#1)
  132.     ENDIF
  133.     CLOSE #1
  134.   ENDIF
  135.   IF ld$=" Punkt Speichern "
  136.     DEFMOUSE 3
  137.     ALERT 3,"PC -Konverter|Bild konvertieren ",1,"_Konvert|_Zurück",d%
  138.     IF d%=1
  139.       OPEN "O",#1,"DATA.LST"
  140.       FOR x=0 TO 640
  141.         FOR y=0 TO 403
  142.           IF POINT(x,y)=1
  143.             PRINT #1;x;",";y;",";
  144.             COLOR 0
  145.             DRAW x,y
  146.           ELSE
  147.             COLOR 1
  148.             DRAW x,y
  149.           ENDIF
  150.         NEXT y
  151.       NEXT x
  152.     ENDIF
  153.     CLOSE #1
  154.   ENDIF
  155.   IF ld$=" Rastern "
  156.     GOSUB rastm2
  157.   ENDIF
  158.   IF ld$=" Raster Modus "
  159.     GET 0,0,640,403,l$
  160.     GRAPHMODE 1
  161.     COLOR 1
  162.     PRINT AT(1,1);"Raster Modus"
  163.     PRINT AT(1,2);"für Raster Funktion "
  164.     PRINT AT(1,4);"X Koordinate   (0 - 640)"
  165.     PRINT AT(1,5);"Alter Wert ";Xrast%
  166.     PRINT AT(1,6);"Neuer Wert ";
  167.     FORM INPUT 3,Xrast$
  168.     Xrast%=VAL(Xrast$)
  169.     PRINT AT(1,8);"Y Koordinate   (0 - ";403;")"
  170.     PRINT AT(1,9);"Alter Wert ";Yrast%
  171.     PRINT AT(1,10);"Neuer Wert ";
  172.     FORM INPUT 3,Yrast$
  173.     Yrast%=VAL(Yrast$)
  174.     PUT 0,0,z$
  175.   ENDIF
  176.   IF ld$=" Sprühbereich "
  177.     GET 0,0,640,403,l$
  178.     GRAPHMODE 1
  179.     PRINT AT(1,1);" Ausschnitt - Bestimmung "
  180.     PRINT AT(1,2);" für Sprühdose "
  181.     PRINT AT(1,3);"X - Positon   (0 - 640) ";
  182.     FORM INPUT 3,S_bereich_x$
  183.     S_bereich_x%=VAL(S_bereich_x$)
  184.     PRINT AT(1,4);"Y - Position  (0 - ";403;")";
  185.     FORM INPUT 3,S_bereich_y$
  186.     S_bereich_y%=VAL(S_bereich_y$)
  187.     PUT 0,0,z$
  188.   ENDIF
  189.   IF ld$=" Z - Modus "
  190.     GET 0,0,640,403,l$
  191.     GRAPHMODE 1
  192.     COLOR 1
  193.     PRINT AT(1,1);"Einstellung Z -Modus"
  194.     PRINT AT(1,2);"für Z - Box  und Z Kreis "
  195.     PRINT AT(1,4);"Größe  (1-99) ";
  196.     FORM INPUT 2,Z_linie_g$
  197.     z_linie_g%=VAL(Z_linie_g$)
  198.     PUT 0,0,z$
  199.   ENDIF
  200.   IF ld$=" V - Modus "
  201.     DEFMOUSE 3
  202.     ALERT 3,"Verschiebe Modus                        ",3,"_ 1 | _2 |_ 3 | _4 ",ver_mod%
  203.   ENDIF
  204.   IF ld$=" Block Modus "
  205.     DEFMOUSE 3
  206.     ALERT 3,"Block Modus ?       ",1," _1 |_ 2 |_ 3 | _4 ",modus%
  207.   ENDIF
  208.   IF ld$=" Sprühdose 1 "
  209.     IF S_bereich_x%=FALSE OR S_bereich_y%=FALSE
  210.       S_bereich_x%=15
  211.       S_bereich_y%=15
  212.     ENDIF
  213.     REPEAT
  214.       SHOWM
  215.       WHILE MOUSEK=1
  216.         HIDEM
  217.         W%=RANDOM(S_bereich_x%)
  218.         e%=RANDOM(S_bereich_y%)
  219.         DRAW MOUSEX+W%,MOUSEY+e%
  220.       WEND
  221.     UNTIL MOUSEK=2
  222.   ENDIF
  223.   IF ld$=" Verschieben 1 "
  224.     GOSUB vermod1
  225.   ENDIF
  226.   IF ld$=" Verschieben 2 "
  227.     GOSUB vermod2
  228.   ENDIF
  229.   IF ld$=" Zeichenlupe "
  230.     REPEAT
  231.       @Glass(62,32,8)
  232.     UNTIL MOUSEK=2
  233.     GOSUB Grund
  234.   ENDIF
  235.   IF ld$=" Z - Kreis "
  236.     GOSUB zkreis90
  237.   ENDIF
  238.   IF ld$=" Z - Box "
  239.     GOSUB zbox90
  240.   ENDIF
  241.   IF ld$=" Drucke Bild "
  242.     DEFMOUSE 3
  243.     ALERT 3,"Bild ausdrucken|Programm GRAPHICS.EXE|sollte zuvor|gestartet werden.",1,"_Druck|_Zurück",d%
  244.     IF d%=2
  245.       GOTO yya
  246.     ENDIF
  247.     xxa:
  248.     dda%=0
  249.     ~INTR($17,_AH=2,_DX=0)
  250.     IF BTST(_AH,3)
  251.       ALERT 3,"Drucker Übertragungsfehler|Bitte Drucker überprüfen",1,"_Weiter|_Abbruch",dda%
  252.       IF dda%=1
  253.         GOTO xxa
  254.       ENDIF
  255.       IF dda%=2
  256.         GOTO yya
  257.       ENDIF
  258.     ELSE
  259.       HIDEM
  260.       HARDCOPY
  261.       SHOWM
  262.     ENDIF
  263.   ENDIF
  264.   yya:
  265.   IF ld$=" Lade Bild "
  266.     GOSUB lade_bild_1
  267.   ENDIF
  268.   IF ld$=" Text "
  269.     GOSUB text90
  270.   ENDIF
  271.   IF ld$=" Update Bild "
  272.     bild$=""
  273.     a$="UPDATE.SHB"
  274.     GET 0,0,640,403,bild$
  275.     CLOSE #1
  276.     HIDEM
  277.     OPEN "O",#1,a$
  278.     PRINT #1,MKI$(LEN(bild$));bild$
  279.     CLOSE #1
  280.     SHOWM
  281.   ENDIF
  282.   IF ld$=" Undo "
  283.     SWAP l$,g$
  284.     PUT 0,0,l$
  285.   ENDIF
  286.   IF ld$=" Copyright "
  287.     DEFMOUSE 3
  288.     ALERT 0,"Sigi Painter V 6.0  (c) 1998 by Siegfried Hübner|Obere Vorstadt 21|91575 Windsbach ",0,"Free Soft (frei kopierbar)",d%
  289.   ENDIF
  290.   IF ld$=" Save Block "
  291.     GET 0,0,640,403,z$
  292.     bild$=""
  293.     DEFMOUSE 3
  294.     ALERT FALSE,"Bitte markieren Sie mit|der Maus den Bereich den|Sie speichern möchten.",1," _OK  ",d%
  295.     PUT FALSE,FALSE,Boxbild$,modus%
  296.     GOSUB hilfs_maus
  297.     WHILE MOUSEK=FALSE
  298.       MOUSE x%,y%,k%
  299.       BOX a%,b%,x%,y%
  300.       PAUSE 3
  301.       BOX a%,b%,x%,y%
  302.     WEND
  303.     WHILE MOUSEK=1 AND MOUSEY<404
  304.       GET a%,b%,x%,y%,bild$
  305.       DEFMOUSE 3
  306.       FILESELECT #"Bildausschnitt abspeichern","*.SHA",a$,a$
  307.       IF a$=""
  308.         a$="FEHLER.SHA"
  309.       ENDIF
  310.       OPEN "O",#1,a$
  311.       ON ERROR GOSUB fehler
  312.       PRINT #1,MKI$(LEN(bild$));bild$
  313.       CLOSE #1
  314.     WEND
  315.     PUT 0,0,z$
  316.   ENDIF
  317.   IF ld$=" Lade Block "
  318.     a$=""
  319.     DEFMOUSE 3
  320.     FILESELECT #"Bildausschnitt einladen","*.SHA",a$,a$
  321.     IF EXIST(a$)
  322.       OPEN "I",#1,a$
  323.       block$=INPUT$(CVI(INPUT$(2,#1)),#1)
  324.       CLOSE #1
  325.       HIDEM
  326.       PUT 0,0,z$
  327.       DO
  328.         REPEAT
  329.           MOUSE x,y,mousek
  330.           PUT x,y,block$,3
  331.           REPEAT
  332.           UNTIL x<>MOUSEX OR y<>MOUSEY OR MOUSEK<>FALSE
  333.           PUT x,y,block$,3
  334.         UNTIL MOUSEK<>FALSE
  335.         EXIT IF MOUSEK=1
  336.         PUT x,y,block$,1
  337.         GET 0,0,640,403,z$
  338.       LOOP
  339.       PUT x,y,block$,modus%
  340.     ENDIF
  341.     SHOWM
  342.   ENDIF
  343.   IF ld$=" Invers "
  344.     GRAPHMODE 3
  345.     FOR y%=0 TO 480-1
  346.       LINE 0,y%,639,y%
  347.     NEXT y%
  348.   ENDIF
  349.   IF ld$=" Grafikmodus "
  350.     GET 0,0,640,403,l$
  351.     DEFMOUSE 3
  352.     ALERT 3, "Grafikmodus ?",5," _1 |_2 | _3 | _4 |_Abbruch",graf%
  353.     IF graf%=5
  354.       graf%=1
  355.     ENDIF
  356.     PUT 0,0,z$
  357.   ENDIF
  358.   IF ld$=" Kantenform "
  359.     DEFMOUSE 3
  360.     ALERT 3,"Kantenform|Quadrat,Rechteck",1,"_Eckig|_Rund",ka%
  361.   ENDIF
  362.   IF ld$=" G-Spiegel "
  363.     k%=403-1
  364.     DEFMOUSE 5
  365.     REPEAT
  366.       x%=MOUSEX
  367.       y%=MOUSEY
  368.       IF MOUSEK=1
  369.         HIDEM
  370.         DRAW x%,y% TO 639-b%,k%-a%
  371.       ELSE
  372.         SHOWM
  373.       ENDIF
  374.       b%=x%
  375.       a%=y%
  376.     UNTIL MOUSEK=2
  377.   ENDIF
  378.   IF ld$=" Baumstamm "
  379.     GOSUB hilfs_strich
  380.     GRAPHMODE 1
  381.     COLOR 1
  382.     DEFMOUSE 3
  383.     ALERT 3,"Baumstamm               ?",2,"_(=====|(_=====)|=====_)",d%
  384.     bh=0
  385.     HIDEM
  386.     REPEAT
  387.       WHILE MOUSEK=1
  388.         PAUSE 5
  389.         INC bh
  390.         SELECT d%
  391.         CASE 1
  392.           DEFLINE 1,bh,2,0
  393.         CASE 3
  394.           DEFLINE 1,bh,0,2
  395.         CASE 2
  396.           DEFLINE 1,bh,2,2
  397.         ENDSELECT
  398.         GOSUB bh
  399.       WEND
  400.     UNTIL MOUSEK=2
  401.     IF f%<100
  402.       DEFFILL f%
  403.     ELSE
  404.       DEFFILL muster$
  405.     ENDIF
  406.     PUT 0,0,z$
  407.   ENDIF
  408.   IF ld$=" Größe M-Kreis "
  409.     PUT 0,0,l$
  410.     GRAPHMODE 1
  411.     COLOR 1
  412.     DEFLINE 1,0,0,0
  413.     HIDEM
  414.     IF ccc%=0
  415.       COLOR 1
  416.     ENDIF
  417.     REPEAT
  418.       IF MOUSEK=1
  419.         REPEAT
  420.         UNTIL MOUSEK<>1
  421.         INC grk
  422.         CIRCLE 320,175,grk,kreis_1a%,kreis_2a%
  423.         IF grk=100
  424.           grk=1
  425.           PUT 0,0,l$
  426.         ENDIF
  427.       ENDIF
  428.     UNTIL MOUSEK=2
  429.     PUT 0,0,z$
  430.   ENDIF
  431.   IF ld$=" M-Kreis "
  432.     GRAPHMODE 1
  433.     COLOR 1
  434.     REPEAT
  435.       MOUSE x%,y%,k%
  436.       SHOWM
  437.       IF MOUSEK=1
  438.         HIDEM
  439.         IF fu%=1
  440.           CIRCLE x%,y%,grk,kreis_1a%,kreis_2a%
  441.         ELSE
  442.           PCIRCLE x%,y%,grk,kreis_1a%,kreis_2a%
  443.         ENDIF
  444.       ENDIF
  445.     UNTIL MOUSEK=2
  446.   ENDIF
  447.   IF ld$=" Strichart "
  448.     GET 0,0,640,403,l$
  449.     GRAPHMODE 1
  450.     COLOR 1
  451.     INPUT "Strichart (0-6) ";kj
  452.     GOSUB hilfs_strich
  453.     PUT 0,0,z$
  454.   ENDIF
  455.   IF ld$=" Strichdicke "
  456.     GOSUB hilfs_strich
  457.     GRAPHMODE 1
  458.     COLOR 1
  459.     bh=0
  460.     HIDEM
  461.     REPEAT
  462.       WHILE MOUSEK=1
  463.         PAUSE 5
  464.         INC bh
  465.         DEFLINE 0,bh,0,0
  466.         GOSUB bh
  467.       WEND
  468.     UNTIL MOUSEK=2
  469.     PUT 0,0,z$
  470.   ENDIF
  471.   IF ld$=" G-Rays "
  472.     GOSUB rays90
  473.   ENDIF
  474.   IF ld$=" Zeichenfarbe "
  475.     DEFMOUSE 3
  476.     ALERT 3,"Zeichenfarbe ?   ",2,"_Hintergrund|_Weiß",ccc%
  477.     INC ccc%
  478.   ENDIF
  479.   IF ld$=" Hintergrund "
  480.     HIDEM
  481.     REPEAT
  482.       IF MOUSEK=1
  483.         REPEAT
  484.         UNTIL MOUSEK<>1
  485.         ADD si%,50
  486.         ADD fa%,1
  487.         IF si%=1500
  488.           si%=0
  489.         ENDIF
  490.         SETCOLOR 0,fa%,si%*5,1
  491.       ENDIF
  492.     UNTIL MOUSEK=2
  493.     PUT 0,0,z$
  494.   ENDIF
  495.   IF ld$=" Füllfarbe "
  496.     GOSUB fill90
  497.   ENDIF
  498.   IF ld$=" Fülle aus "
  499.     DEFMOUSE 3
  500.     ALERT 3,"Fülle|Quadrat,Rechteck|Kreis,Ellipse",1,"_leer|_voll",fu%
  501.   ENDIF
  502.   IF ld$=" Save Bild "
  503.     bild$=""
  504.     a$=""
  505.     GET 0,0,640,403,bild$
  506.     CLOSE #1
  507.     DEFMOUSE 3
  508.     FILESELECT #"Bild abspeichern","*.SHB",a$,a$
  509.     OPEN "O",#1,a$
  510.     PRINT #1,MKI$(LEN(bild$));bild$
  511.     CLOSE #1
  512.   ENDIF
  513.   IF ld$=" Lösche Bild "
  514.     GET 0,0,640,403,z$
  515.     DEFMOUSE 3
  516.     ALERT 3,"Wollen Sie das Bild|wirklich löschen",2,"_Ja|_Nein",d%
  517.     IF d%=1
  518.       CLS
  519.     ENDIF
  520.   ENDIF
  521.   IF ld$=" X-Ellips "
  522.     GOSUB xelips90
  523.   ENDIF
  524.   IF ld$=" Ellipse "
  525.     GOSUB ellipse
  526.   ENDIF
  527.   IF ld$=" Prisma "
  528.     GOSUB quader
  529.   ENDIF
  530.   IF ld$=" Draw "
  531.     REPEAT
  532.       MOUSE x%,y%,k%
  533.       IF MOUSEK=1
  534.         HIDEM
  535.         DRAW x%,y% TO b%+Xkord%,a%+Ykord%
  536.         SELECT b|
  537.         CASE 0
  538.           DRAW x%,y% TO b%+Xkord%,a%+Ykord%
  539.         CASE 1
  540.           DRAW x%,y% TO b%+Xkord%,a%+Ykord%
  541.           DRAW 639-x%,y% TO 639-b%+Xkord%,a%+Ykord%
  542.         CASE 3
  543.           DRAW x%,y% TO b%+Xkord%,a%+Ykord%
  544.           DRAW 639-x%,y% TO 639-b%+Xkord%,a%+Ykord%
  545.           DRAW x%,403-1-y% TO b%+Xkord%,403-1-a%+Ykord%
  546.           DRAW 639-x%,403-1-y% TO 639-b%+Xkord%,403-1-a%+Ykord%
  547.         CASE 4
  548.           DRAW x%,y% TO b%+Xkord%,a%+Ykord%
  549.           DRAW 639-x%,403-1-y% TO 639-b%+Xkord%,403-1-a%+Ykord%
  550.         CASE 2
  551.           DRAW x%,y% TO b%+Xkord%,a%+Ykord%
  552.           DRAW x%,403-1-y% TO b%+Xkord%,403-1-a%+Ykord%
  553.         ENDSELECT
  554.       ELSE
  555.         SHOWM
  556.       ENDIF
  557.       b%=x%
  558.       a%=y%
  559.     UNTIL MOUSEK=2
  560.   ENDIF
  561.   IF ld$=" Rechteck "
  562.     GOSUB rechteck
  563.   ENDIF
  564.   IF ld$=" Quadrat "
  565.     GOSUB quadrat
  566.   ENDIF
  567.   IF ld$=" Line "
  568.     GOSUB line
  569.   ENDIF
  570.   IF ld$=" X-Kreis "
  571.     GOSUB xkreis90
  572.   ENDIF
  573.   IF ld$=" Kreis "
  574.     GOSUB kreis
  575.   ENDIF
  576.   IF ld$=" Punkt "
  577.     REPEAT
  578.       MOUSE x%,y%,k%
  579.       WHILE MOUSEK=1
  580.         HIDEM
  581.         DRAW x%,y% TO x%+Xkord%,y%+Ykord%
  582.         SELECT b|
  583.         CASE 0
  584.           DRAW x%,y% TO x%+Xkord%,y%+Ykord%
  585.         CASE 1
  586.           DRAW x%,y% TO x%+Xkord%,y%+Ykord%
  587.           DRAW 639-x%,y% TO 639-x%+Xkord%,y%+Ykord%
  588.         CASE 3
  589.           DRAW x%,y% TO x%+Xkord%,y%+Ykord%
  590.           DRAW 639-x%,y% TO 639-x%+Xkord%,y%+Ykord%
  591.           DRAW x%,403-1-y% TO x%+Xkord%,403-1-y%+Ykord%
  592.           DRAW 639-x%,403-1-y% TO 639-x%+Xkord%,403-1-y%+Ykord%
  593.         CASE 4
  594.           DRAW x%,y% TO x%+Xkord%,y%+Ykord%
  595.           DRAW 639-x%,403-1-y% TO 639-x%+Xkord%,403-1-y%+Ykord%
  596.         CASE 2
  597.           DRAW x%,y% TO x%+Xkord%,y%+Ykord%
  598.           DRAW x%,403-1-y% TO x%+Xkord%,403-1-y%+Ykord%
  599.         ENDSELECT
  600.       WEND
  601.       SHOWM
  602.     UNTIL MOUSEK=2
  603.   ENDIF
  604.   IF ld$=" Ende "
  605.     DEFMOUSE 3
  606.     ALERT 3,"Wollen sie das Programm   |verlassen",2,"_Ja|_Nein",d%
  607.     IF d%=1
  608.       TROFF
  609.       SHOWM
  610.       SCREEN 3
  611.       END
  612.     ENDIF
  613.   ENDIF
  614.   DEFMOUSE 3
  615.   SHOWM
  616.   g$=z$
  617.   GET 0,0,640,403,z$
  618.   MENU menue$()
  619.   ON MENU  GOSUB auswerten
  620.   PRINT AT(68,1);MALLOC(-1)
  621. RETURN
  622. PROCEDURE hh_strich
  623.   BOX 100,60,300,100
  624.   DRAW 100,80 TO 300,80
  625. RETURN
  626. PROCEDURE hilfs_strich
  627.   PUT 0,0,l$
  628.   GRAPHMODE 1
  629.   IF ccc%=0
  630.     COLOR 1
  631.   ENDIF
  632.   DEFLINE kj,bh,0,0
  633.   GOSUB hh_strich
  634. RETURN
  635. PROCEDURE bh
  636.   DRAW 100,80 TO 300,80
  637.   IF bh=40
  638.     bh=0
  639.     DEFLINE 1,bh,0,0
  640.     BOX 100,60,300,100
  641.   ENDIF
  642. RETURN
  643. PROCEDURE hilfs_maus
  644.   SHOWM
  645.   GRAPHMODE 3
  646.   REPEAT
  647.   UNTIL MOUSEK
  648.   MOUSE x%,y%,k%
  649.   a%=x%
  650.   b%=y%
  651.   REPEAT
  652.   UNTIL MOUSEK<>1
  653.   HIDEM
  654. RETURN
  655. PROCEDURE lade_bild_1
  656.   langh=0
  657.   GET 0,0,640,403,z$
  658.   iij$=""
  659.   CLOSE #1
  660.   a$=""
  661.   bild$=""
  662.   DEFMOUSE 3
  663.   FILESELECT #"Lade Bild (SHB,Atari Format)","*.*",a$,a$
  664.   iij$=RIGHT$(a$,3)
  665.   IF iij$="SHB"
  666.     IF EXIST(a$)
  667.       CLS
  668.       OPEN "I",#1,a$
  669.       bild$=INPUT$(CVI(INPUT$(2,#1)),#1)
  670.       CLOSE #1
  671.       PUT 0,0,bild$,modus%
  672.       GET 0,0,640,403,z$
  673.     ELSE
  674.       PUT 0,0,z$
  675.     ENDIF
  676.   ENDIF
  677.   IF NOT iij$="SHB"
  678.     IF EXIST(a$)
  679.       CLS
  680.       OPEN "I",#1,a$
  681.       IF LOF(#1)>31999
  682.         langh=LOF(#1)-32000
  683.         SEEK #1,langh
  684.         BGET #1,$A000:0,32000
  685.         GRAPHMODE 3
  686.         FOR y%=0 TO 480-1
  687.           LINE 0,y%,639,y%
  688.         NEXT y%
  689.       ENDIF
  690.     ELSE
  691.       ALERT 3,"Unbekanntes Bildformat|Kann Bildformat nicht laden ",1,"_Schade",d%
  692.       PUT 0,0,z$
  693.     ENDIF
  694.   ENDIF
  695.   CLOSE #1
  696. RETURN
  697. DATA Info, Copyright ,""
  698. DATA Disk, Lade Bild , Save Bild ,~, Lade Block , Save Block ,~, Update Bild ,~, Betriebssystem ,~, Ende ,""
  699. DATA Arbeit," Draw "," Draw 2 "
  700. DATA  Punkt ,~, Line , SZL - Linie ,~, G-Rays , G-Spiegel ,~, Quadrat , Rechteck ,~, Kreis , Ellipse ,~, Kreis    2 , Ellipse  2 , Rechteck 2 ,""
  701. DATA Arbeit2, Prisma , Pyramide ,~, Z - Box , Z - Kreis ,~, M-Kreis ,~, X-Kreis , X-Ellips ,~," Zeichenlupe "
  702. DATA "~", Verschieben 1 , Verschieben 2 ,~, Sprühdose 1 ,""
  703. DATA Extra, Invers , Rastern , Unfill ,~, Text ,~, Undo ,""
  704. DATA Einstellen, Füllfarbe , Hintergrund , Zeichenfarbe ," Baumstamm "
  705. DATA  Strichart , Strichdicke ," Kantenform "
  706. DATA  Fülle aus , Grafikmodus , Größe M-Kreis , Kreis Ausschnitt , Drucke Bild ,~, Lösche Bild ,""
  707. DATA Einstellen2 , Block Modus , V - Modus , Z - Modus , Sprühbereich , Raster Modus , Stiftgröße , Spiegel - Modus ,""
  708. DATA Sonstiges , Punkt Speichern , Punkt Laden ,~, Lade Schrift ,""
  709. PROCEDURE fehler
  710.   try
  711.   HIDEM
  712.   GRAPHMODE graf%
  713.   bild$=""
  714.   a$="FEHLER.SHB"
  715.   GET 0,0,640,403,bild$
  716.   CLOSE #1
  717.   DEFMOUSE 3
  718.   OPEN "O",#1,a$
  719.   PRINT #1,MKI$(LEN(bild$));bild$
  720.   CLOSE #1
  721.   GET 0,0,640,403,z$
  722.   catch
  723. RETURN
  724. PROCEDURE quader
  725.   REPEAT
  726.     IF MOUSEK=1
  727.       @quater
  728.     ENDIF
  729.   UNTIL MOUSEK=2
  730. RETURN
  731. PROCEDURE quater
  732.   GRAPHMODE 3
  733.   br%=0
  734.   hdif%=0
  735.   x1%=0
  736.   y1%=0
  737.   x2%=0
  738.   y2%=0
  739.   k%=0
  740.   x%=0
  741.   y%=0
  742.   x3%=0
  743.   y3%=0
  744.   x4%=0
  745.   y4%=0
  746.   br1_2%=0
  747.   br2_3%=0
  748.   ho1_3%=0
  749.   ho2_3%=0
  750.   ho1_2%=0
  751.   Var_1=0
  752.   var1=0
  753.   Var_2=0
  754.   var2=0
  755.   var_3=0
  756.   var3=0
  757.   br1_3%=0
  758.   REPEAT
  759.     MOUSE x1%,y1%,k%
  760.   UNTIL k%=0
  761.   x2%=x1%
  762.   y2%=y1%
  763.   REPEAT
  764.     LINE x1%,y1%,x2%,y2%
  765.     REPEAT
  766.       MOUSE x%,y%,k%
  767.     UNTIL x2%<>x% OR y2%<>y% OR k%
  768.     LINE x1%,y1%,x2%,y2%
  769.     x2%=x%
  770.     y2%=y%
  771.   UNTIL k%
  772.   IF k%=1
  773.     LINE x1%,y1%,x2%,y2%
  774.   ENDIF
  775.   REPEAT
  776.   UNTIL MOUSEK=0 OR k%=2
  777.   x3%=x2%
  778.   y3%=y2%
  779.   REPEAT
  780.     DRAW x2%,y2% TO x3%,y3% TO x1%,y1%
  781.     REPEAT
  782.       MOUSE x%,y%,k%
  783.     UNTIL x3%<>x% OR y3%<>y% OR k%
  784.     DRAW x2%,y2% TO x3%,y3% TO x1%,y1%
  785.     x3%=x%
  786.     y3%=y%
  787.   UNTIL k%
  788.   IF k%=1
  789.     DRAW x2%,y2% TO x3%,y3% TO x3%-br%,y3%-hdif% TO x1%,y1%
  790.   ENDIF
  791.   REPEAT
  792.   UNTIL MOUSEK=0 OR k%=2
  793.   x4%=x3%
  794.   y4%=y3%
  795.   br1_2%=x2%-x1%
  796.   br1_3%=x1%-x3%
  797.   br2_3%=x3%-x2%
  798.   ho1_3%=y1%-y3%
  799.   ho2_3%=y2%-y3%
  800.   ho1_2%=y2%-y1%
  801.   Var_1=ho1_2%/(br1_2%+1.0E-12)
  802.   var1=y1%-Var_1*x1%
  803.   Var_2=br2_3%/(ho2_3%+1.0E-12)
  804.   var2=x3%+Var_2*y3%
  805.   var_3=ho1_3%/(br1_3%+1.0E-12)
  806.   var3=y1%-var_3*x1%
  807.   REPEAT
  808.     @setprisma
  809.     REPEAT
  810.       MOUSE x%,y%,k%
  811.     UNTIL x4%<>x% OR y4%<>y% OR k%
  812.     @setprisma
  813.     x4%=x%
  814.     y4%=y%
  815.   UNTIL k%
  816.   IF k%=1
  817.     @setprisma
  818.   ENDIF
  819.   DEFLINE 1,bh,0,0
  820.   REPEAT
  821.   UNTIL MOUSEK=0 OR k%=2
  822. RETURN
  823. PROCEDURE setprisma
  824.   var1=(y4%+ho2_3%)-Var_1*(x4%-br2_3%)
  825.   var2=x4%+Var_2*y4%
  826.   var3=y4%-var_3*x4%
  827.   DEFLINE 1,bh,0,0
  828.   IF var1>var1
  829.     IF var2>var2
  830.       DRAW x3%,y3% TO x4%,y4% TO x4%+br1_3%,y4%+ho1_3% TO x1%,y1%
  831.       DEFLINE 1,bh,0,0
  832.       DRAW x2%,y2% TO x4%-br2_3%,y4%+ho2_3% TO x4%,y4%
  833.     ELSE
  834.       DRAW x2%,y2% TO x4%-br2_3%,y4%+ho2_3% TO x4%,y4% TO x3%,y3%
  835.       IF var3>var3
  836.         DRAW x1%,y1% TO x4%+br1_3%,y4%+ho1_3% TO x4%,y4%
  837.         DEFLINE 1,bh,0,0
  838.       ELSE
  839.         DEFLINE 1,bh,0,0
  840.         DRAW x1%,y1% TO x4%+br1_3%,y4%+ho1_3% TO x4%,y4%
  841.       ENDIF
  842.     ENDIF
  843.     LINE x4%+br1_3%,y4%+ho1_3%,x4%-br2_3%,y4%+ho2_3%
  844.   ELSE
  845.     DRAW x1%,y1% TO x4%+br1_3%,y4%+ho1_3% TO x4%-br2_3%,y4%+ho2_3% TO x2%,y2%
  846.     IF var3>var3
  847.       DRAW x3%,y3% TO x4%,y4% TO x4%+br1_3%,y4%+ho1_3%
  848.       DEFLINE 1,bh,0,0
  849.       LINE x4%-br2_3%,y4%+ho2_3%,x4%,y4%
  850.     ELSE
  851.       IF var2>var2
  852.         DEFLINE 1,bh,0,0
  853.         DRAW x3%,y3% TO x4%,y4% TO x4%-br2_3%,y4%+ho2_3%
  854.       ELSE
  855.         DRAW x3%,y3% TO x4%,y4% TO x4%-br2_3%,y4%+ho2_3%
  856.         DEFLINE 1,bh,0,0
  857.       ENDIF
  858.       LINE x4%,y4%,x4%+br1_3%,y4%+ho1_3%
  859.     ENDIF
  860.   ENDIF
  861. RETURN
  862. PROCEDURE Hals
  863.   DEFLINE 0,bh,0,0
  864.   COLOR 1
  865.   SHOWM
  866.   PUT 0,0,l$
  867.   GRAPHMODE 1
  868.   DEFMOUSE 3
  869. RETURN
  870. PROCEDURE Grund
  871.   GRAPHMODE graf%
  872.   DEFFILL 0
  873.   DEFLINE 1,bh,0,0
  874. RETURN
  875. PROCEDURE Glass(W%,h%,M%)
  876.   LOCAL Mx%,my%,Mk%
  877.   GRAPHMODE 3
  878.   REPEAT
  879.     HIDEM
  880.     MOUSE Mx%,my%,Mk%
  881.     BOX Mx%,my%,Mx%+W%-1,my%+h%-1
  882.     REPEAT
  883.     UNTIL MOUSEX<>Mx% OR MOUSEY<>my% OR MOUSEK
  884.     BOX Mx%,my%,Mx%+W%-1,my%+h%-1
  885.   UNTIL Mk%
  886.   SHOWM
  887.   IF Mk%=1
  888.     GET 0,0,640,403,z$
  889.     GRAPHMODE 1
  890.     GET Mx%,my%,Mx%+W%-1,my%+h%-1,Part$
  891.     @Magnify(W%,h%,M%)
  892.     PUT 0,0,z$
  893.     PUT Mx%,my%,Part$
  894.   ENDIF
  895.   GRAPHMODE graf%
  896. RETURN
  897. PROCEDURE Magnify(W%,h%,M%)
  898.   LOCAL Sx%,sy%,By%,Mw%,Px%,Mgx%,Mgx2%,Mgy%,Mgy2%,Mx%,my%,a$,I%,J%,Rx%,Ry%
  899.   DEFFILL 4
  900.   COLOR 1
  901.   CLS
  902.   GRAPHMODE 1
  903.   Sx%=6
  904.   sy%=6
  905.   PRINT AT(64,10);" Lupen-Bedienung"
  906.   PRINT AT(64,11);" ---------------"
  907.   PRINT AT(64,12);"  - Maustaste - "
  908.   PRINT AT(64,13);"Links = zeichnen"
  909.   PRINT AT(64,14);"Rechts = löschen"
  910.   PRINT AT(64,15);"Taste = zum Bild"
  911.   PRINT AT(64,16);"-----------------"
  912.   PRINT AT(64,17);"Sind Sie im Bild "
  913.   PRINT AT(64,18);"Dann Abbruch der "
  914.   PRINT AT(64,19);"   Lupe durch    "
  915.   PRINT AT(64,20);"   drücken der   "
  916.   PRINT AT(64,21);"rechten Maustaste"
  917.   BOX Sx%-2,sy%-2,Sx%+W%+1,sy%+h%+1
  918.   PUT 6,6,Part$
  919.   By%=403-1-M%*h%
  920.   Mw%=M%*W%
  921.   DRAW 0,By% TO Mw%,By%
  922.   DRAW Mw%,By% TO Mw%,403-1
  923.   Py%=I%+sy%
  924.   Mgy%=By%+1
  925.   Mgy2%=Mgy%+M%-1
  926.   DEC W%
  927.   DEC h%
  928.   DEFFILL 8
  929.   FOR I%=0 TO h%
  930.     Px%=Sx%
  931.     Mgx%=0
  932.     Mgx2%=M%-1
  933.     FOR J%=0 TO W%
  934.       IF POINT(Px%,Py%)
  935.         PBOX Mgx%,Mgy%,Mgx2%,Mgy2%
  936.       ENDIF
  937.       ADD Mgx%,M%
  938.       ADD Mgx2%,M%
  939.       INC Px%
  940.     NEXT J%
  941.     ADD Mgy%,M%
  942.     ADD Mgy2%,M%
  943.     INC Py%
  944.   NEXT I%
  945.   DO
  946.     a$=INKEY$
  947.     EXIT IF a$>CHR$(0)
  948.     MOUSE Mx%,my%,mousek
  949.     IF MOUSEK
  950.       Rx%=Mx% DIV M%
  951.       Ry%=(my%-By%) DIV M%
  952.       IF Rx%<=W% AND Ry%<=h% AND Ry%>=0
  953.         IF MOUSEK=1
  954.           DEFFILL 8
  955.           COLOR 1
  956.         ELSE
  957.           DEFFILL 0
  958.           COLOR 0
  959.         ENDIF
  960.         PBOX M%*Rx%,By%+M%*Ry%+1,M%*Rx%+M%-1,By%+M%*Ry%+M%
  961.         DRAW Sx%+Rx%,sy%+Ry%
  962.       ENDIF
  963.     ENDIF
  964.   LOOP
  965.   GRAPHMODE graf%
  966.   GET Sx%,sy%,Sx%+W%,sy%+h%,Part$
  967. RETURN
  968. PROCEDURE Verschieben_2
  969.   PUT 0,0,z$
  970.   REPEAT
  971.   UNTIL MOUSEK=0
  972.   IF ver_mod%=0
  973.     ver_mod%=1
  974.   ENDIF
  975.   SELECT verschieben
  976.   CASE 1
  977.     REPEAT
  978.       IF MOUSEK=1 AND MOUSEY<404
  979.         GET 0,1,MOUSEX,MOUSEY,Ver$
  980.         PUT 0,0,Ver$,ver_mod%
  981.       ENDIF
  982.     UNTIL MOUSEK=2
  983.   CASE 2
  984.     REPEAT
  985.       IF MOUSEK=1 AND MOUSEY<404
  986.         GET 0,0,MOUSEX,MOUSEY,Ver$
  987.         PUT 0,1,Ver$,ver_mod%
  988.       ENDIF
  989.     UNTIL MOUSEK=2
  990.   CASE 3
  991.     REPEAT
  992.       IF MOUSEK=1 AND MOUSEY<404
  993.         GET 1,0,MOUSEX,MOUSEY,Ver$
  994.         PUT 0,0,Ver$,ver_mod%
  995.       ENDIF
  996.     UNTIL MOUSEK=2
  997.   CASE 4
  998.     REPEAT
  999.       IF MOUSEK=1 AND MOUSEY<404
  1000.         GET 0,0,MOUSEX,MOUSEY,Ver$
  1001.         PUT 1,0,Ver$,ver_mod%
  1002.       ENDIF
  1003.     UNTIL MOUSEK=2
  1004.   CASE 5
  1005.     REPEAT
  1006.       IF MOUSEK=1 AND MOUSEY<404
  1007.         GET 0,1,MOUSEX,MOUSEY,Ver$
  1008.         PUT 1,0,Ver$,ver_mod%
  1009.       ENDIF
  1010.     UNTIL MOUSEK=2
  1011.   CASE 6
  1012.     REPEAT
  1013.       IF MOUSEK=1 AND MOUSEY<404
  1014.         GET 1,0,MOUSEX,MOUSEY,Ver$
  1015.         PUT 0,1,Ver$,ver_mod%
  1016.       ENDIF
  1017.     UNTIL MOUSEK=2
  1018.   CASE 7
  1019.     REPEAT
  1020.       IF MOUSEK=1 AND MOUSEY<404
  1021.         GET 1,1,MOUSEX,MOUSEY,Ver$
  1022.         PUT 0,0,Ver$,ver_mod%
  1023.       ENDIF
  1024.     UNTIL MOUSEK=2
  1025.   CASE 8
  1026.     REPEAT
  1027.       IF MOUSEK=1 AND MOUSEY<404
  1028.         GET 1,1,MOUSEX,MOUSEY,Ver$
  1029.         PUT 1,0,Ver$,ver_mod%
  1030.       ENDIF
  1031.     UNTIL MOUSEK=2
  1032.   CASE 9
  1033.     REPEAT
  1034.       IF MOUSEK=1 AND MOUSEY<404
  1035.         GET MOUSEX,0,MOUSEX,MOUSEY,Ver$
  1036.         PUT MOUSEX,1,Ver$,ver_mod%
  1037.       ENDIF
  1038.     UNTIL MOUSEK=2
  1039.   CASE 10
  1040.     REPEAT
  1041.       IF MOUSEK=1 AND MOUSEY<404
  1042.         GET 0,MOUSEY,MOUSEX,MOUSEY,Ver$
  1043.         PUT 1,MOUSEY,Ver$,ver_mod%
  1044.       ENDIF
  1045.     UNTIL MOUSEK=2
  1046.   ENDSELECT
  1047. RETURN
  1048. PROCEDURE Verschieben_4
  1049.   PUT 0,0,z$
  1050.   REPEAT
  1051.   UNTIL MOUSEK=0
  1052.   IF ver_mod%=0
  1053.     ver_mod%=1
  1054.   ENDIF
  1055.   SELECT verschieben_2
  1056.   CASE 1
  1057.     REPEAT
  1058.       MOUSE x%,y%,k%
  1059.       IF MOUSEK=1 AND MOUSEY<404 AND y%<404
  1060.         GET 0,y%,639,403-1,Ver$
  1061.         PUT 0,y%+1,Ver$,ver_mod%
  1062.         COLOR 0
  1063.         DEFLINE 1,bh,0,0
  1064.         DRAW 0,y% TO 639,y%
  1065.       ENDIF
  1066.     UNTIL MOUSEK=2
  1067.   CASE 2
  1068.     REPEAT
  1069.       MOUSE x%,y%,k%
  1070.       IF MOUSEK=1 AND MOUSEY<404 AND y%<404
  1071.         GET 0,y%+1,639,403-1,Ver$
  1072.         PUT 0,y%,Ver$,ver_mod%
  1073.         COLOR 0
  1074.         DEFLINE 1,bh,0,0
  1075.         DRAW 0,403-1 TO 639,403-1
  1076.       ENDIF
  1077.     UNTIL MOUSEK=2
  1078.   CASE 3
  1079.     REPEAT
  1080.       MOUSE x%,y%,k%
  1081.       IF MOUSEK=1 AND MOUSEY<404
  1082.         GET x%,0,639,403-1,Ver$
  1083.         PUT x%+1,0,Ver$,ver_mod%
  1084.         COLOR 0
  1085.         DEFLINE 1,bh,0,0
  1086.         DRAW x%,0 TO x%,403-1
  1087.       ENDIF
  1088.     UNTIL MOUSEK=2
  1089.   CASE 4
  1090.     REPEAT
  1091.       MOUSE x%,y%,k%
  1092.       IF MOUSEK=1 AND MOUSEY<404
  1093.         GET 1,0,x%,403-1,Ver$
  1094.         PUT 0,0,Ver$,ver_mod%
  1095.         COLOR 0
  1096.         DEFLINE 1,bh,0,0
  1097.         DRAW x%,0 TO x%,403-1
  1098.       ENDIF
  1099.     UNTIL MOUSEK=2
  1100.   CASE 5
  1101.     REPEAT
  1102.       MOUSE x%,y%,k%
  1103.       IF MOUSEK=1 AND MOUSEY<404 AND y%<404
  1104.         GET 0,0,639,y%-1,Ver$
  1105.         PUT 0,1,Ver$,ver_mod%
  1106.         COLOR 0
  1107.         DEFLINE 1,bh,0,0
  1108.         DRAW 0,0 TO 639,0
  1109.       ENDIF
  1110.     UNTIL MOUSEK=2
  1111.   CASE 6
  1112.     REPEAT
  1113.       MOUSE x%,y%,k%
  1114.       IF MOUSEK=1 AND MOUSEY<404
  1115.         GET 0,y%+1,639,403-1,Ver$
  1116.         PUT 0,y%,Ver$,ver_mod%
  1117.         COLOR 0
  1118.         DEFLINE 1,bh,0,0
  1119.         DRAW 0,y% TO 639,y%
  1120.       ENDIF
  1121.     UNTIL MOUSEK=2
  1122.   CASE 7
  1123.     REPEAT
  1124.       MOUSE x%,y%,k%
  1125.       IF MOUSEK=1 AND MOUSEY<404
  1126.         GET 0,0,x%-1,403-1,Ver$
  1127.         PUT 1,0,Ver$,ver_mod%
  1128.         COLOR 0
  1129.         DEFLINE 1,bh,0,0
  1130.         DRAW 0,0 TO 0,403-1
  1131.       ENDIF
  1132.     UNTIL MOUSEK=2
  1133.   CASE 8
  1134.     REPEAT
  1135.       MOUSE x%,y%,k%
  1136.       IF MOUSEK=1 AND MOUSEY<404
  1137.         GET 1,0,x%-1,403-1,Ver$
  1138.         PUT 0,0,Ver$,ver_mod%
  1139.         COLOR 0
  1140.         DEFLINE 1,bh,0,0
  1141.         DRAW 0,0 TO 639,0
  1142.       ENDIF
  1143.     UNTIL MOUSEK=2
  1144.   ENDSELECT
  1145.   GET 0,0,640,403,z$
  1146. RETURN
  1147. PROCEDURE pyramide2
  1148.   CLR Var1%,Var2%,Var3%,Var4%,hdif%,br%
  1149.   DEFMOUSE 5
  1150.   REPEAT
  1151.     MOUSE x%,y%,k%
  1152.   UNTIL MOUSEK=1
  1153.   HIDEM
  1154.   GRAPHMODE 3
  1155.   REPEAT
  1156.     MOUSE x1%,y1%,k%
  1157.   UNTIL k%=0
  1158.   x2%=x1%
  1159.   y2%=y1%
  1160.   REPEAT
  1161.     DRAW x1%,y1% TO x2%,y2%
  1162.     REPEAT
  1163.       MOUSE x%,y%,k%
  1164.     UNTIL x2%<>x% OR y2%<>y% OR k%=1
  1165.     DRAW x1%,y1% TO x2%,y2%
  1166.     x2%=x%
  1167.     y2%=y%
  1168.   UNTIL k%=1
  1169.   REPEAT
  1170.   UNTIL MOUSEK=0
  1171.   x3%=x2%
  1172.   y3%=y2%
  1173.   br%=x2%-x1%
  1174.   hdif%=y2%-y1%
  1175.   REPEAT
  1176.     DRAW x1%,y1% TO x2%,y2% TO x3%,y3% TO x3%-br%,y3%-hdif% TO x1%,y1%
  1177.     REPEAT
  1178.       MOUSE x%,y%,k%
  1179.     UNTIL x3%<>x% OR y3%<>y% OR k%=1
  1180.     DRAW x1%,y1% TO x2%,y2% TO x3%,y3% TO x3%-br%,y3%-hdif% TO x1%,y1%
  1181.     x3%=x%
  1182.     y3%=y%
  1183.   UNTIL k%=1
  1184.   REPEAT
  1185.   UNTIL MOUSEK=0
  1186.   x4%=x3%-br%
  1187.   y4%=y3%-hdif%
  1188.   X5%=x3%
  1189.   Y5%=y3%
  1190.   Vdif%=x3%-x2%
  1191.   Ho%=y2%-y3%
  1192.   Var_1=INT(Vdif%/(Ho%+1.0E-12))
  1193.   Var1%=(Var_1*y4%+x4%)
  1194.   Var3%=Var_1*y3%+x3%
  1195.   Var_2=hdif%/(br%+1.0E-12)
  1196.   Var2%=y3%-INT(Var_2*x3%)
  1197.   Var4%=y1%-INT(Var_2*x1%)
  1198.   REPEAT
  1199.     @Setpyramide
  1200.     REPEAT
  1201.       MOUSE x%,y%,k%
  1202.     UNTIL X5%<>x% OR Y5%<>y% OR k%=1
  1203.     @Setpyramide
  1204.     X5%=x%
  1205.     Y5%=y%
  1206.   UNTIL k%=1
  1207.   @Setpyramide
  1208.   REPEAT
  1209.   UNTIL MOUSEK=0
  1210.   GRAPHMODE graf%
  1211. RETURN
  1212. PROCEDURE Setpyramide
  1213.   Var1%=Var_1*(Y5%+Ho%)+X5%-Vdif%
  1214.   Var2%=Y5%-(Var_2*X5%)
  1215.   IF y3%<y2%
  1216.     IF Var2%<Var2%
  1217.       DRAW x3%,y3% TO X5%,Y5% TO x4%,y4% TO x3%,y3%
  1218.       IF Var2%<Var4%
  1219.         DRAW x1%,y1% TO x2%,y2% TO X5%,Y5% TO x1%,y1%
  1220.         IF X5%<(x3%+x1%)/2
  1221.           DRAW x2%,y2% TO x3%,y3%
  1222.           DRAW x1%,y1% TO x4%,y4%
  1223.         ELSE
  1224.           DRAW x4%,y4% TO x1%,y1%
  1225.           DRAW x2%,y2% TO x3%,y3%
  1226.         ENDIF
  1227.       ELSE
  1228.         IF Var1%>Var3%
  1229.           DRAW X5%,Y5% TO x1%,y1% TO x4%,y4%
  1230.           DRAW X5%,Y5% TO x2%,y2% TO x3%,y3%
  1231.         ELSE
  1232.           DRAW X5%,Y5% TO x2%,y2% TO x3%,y3%
  1233.           IF Var1%>Var1%
  1234.             DRAW x4%,y4% TO x1%,y1% TO X5%,Y5%
  1235.           ELSE
  1236.             DRAW X5%,Y5% TO x1%,y1% TO x4%,y4%
  1237.           ENDIF
  1238.         ENDIF
  1239.         DRAW x1%,y1% TO x2%,y2%
  1240.       ENDIF
  1241.     ELSE
  1242.       IF Var1%<Var1%
  1243.         DRAW x2%,y2% TO x1%,y1% TO X5%,Y5% TO x2%,y2% TO x3%,y3% TO X5%,Y5%
  1244.         DRAW x1%,y1% TO x4%,y4% TO X5%,Y5%
  1245.       ELSE
  1246.         DRAW X5%,Y5% TO x4%,y4% TO x1%,y1% TO x2%,y2% TO X5%,Y5% TO x1%,y1%
  1247.         IF Var1%<Var3%
  1248.           DRAW x2%,y2% TO x3%,y3% TO X5%,Y5%
  1249.         ELSE
  1250.           DRAW x2%,y2% TO x3%,y3% TO X5%,Y5%
  1251.         ENDIF
  1252.       ENDIF
  1253.       DRAW x3%,y3% TO x4%,y4%
  1254.     ENDIF
  1255.   ELSE
  1256.     DRAW x1%,y1% TO x2%,y2% TO x3%,y3% TO x4%,y4% TO x1%,y1%
  1257.     IF Var1%<Var1%
  1258.       IF Var2%<Var2%
  1259.         DRAW x3%,y3% TO X5%,Y5% TO x4%,y4%
  1260.         IF Var3%>Var1%
  1261.           DRAW X5%,Y5% TO x2%,y2%
  1262.         ELSE
  1263.           DRAW x2%,y2% TO X5%,Y5%
  1264.         ENDIF
  1265.         DRAW x1%,y1% TO X5%,Y5%
  1266.       ELSE
  1267.         IF Var3%>Var1%
  1268.           DRAW x1%,y1% TO X5%,Y5% TO x2%,y2%
  1269.           DRAW x3%,y3% TO X5%,Y5%
  1270.         ELSE
  1271.           DRAW x2%,y2% TO X5%,Y5% TO x3%,y3%
  1272.           IF Var4%>Var2%
  1273.             DRAW x1%,y1% TO X5%,Y5%
  1274.           ELSE
  1275.             DRAW x1%,y1% TO X5%,Y5%
  1276.           ENDIF
  1277.         ENDIF
  1278.         DRAW x4%,y4% TO X5%,Y5%
  1279.       ENDIF
  1280.     ELSE
  1281.       DRAW x4%,y4% TO X5%,Y5% TO x1%,y1%
  1282.       IF Var4%>Var2%
  1283.         DRAW X5%,Y5% TO x2%,y2%
  1284.         DRAW x3%,y3% TO X5%,Y5%
  1285.       ELSE
  1286.         IF Var2%>Var2%
  1287.           DRAW X5%,Y5% TO x3%,y3%
  1288.         ELSE
  1289.           DRAW x3%,y3% TO X5%,Y5%
  1290.         ENDIF
  1291.         DRAW x2%,y2% TO X5%,Y5%
  1292.       ENDIF
  1293.     ENDIF
  1294.   ENDIF
  1295. RETURN
  1296. PROCEDURE Lang_linie
  1297.   DEFMOUSE 3
  1298.   LOCAL Mx%,my%,x1%,y1%,br%,Ho%
  1299.   ALERT 3,"Was kann ich für Sie tun ?",1,"_Linienzug|_Strahlen|L_inie",Linienflag%
  1300.   IF Linienflag%=3
  1301.     Linienflag%=0
  1302.   ENDIF
  1303.   REPEAT
  1304.   UNTIL MOUSEK=1
  1305.   HIDEM
  1306.   GRAPHMODE 3
  1307.   REPEAT
  1308.     MOUSE Mx%,my%,k%
  1309.   UNTIL k%=0
  1310.   x1%=Mx%
  1311.   y1%=my%
  1312.   Start17:
  1313.   REPEAT
  1314.     DRAW Mx%,my% TO x1%,y1%
  1315.     REPEAT
  1316.       MOUSE x%,y%,k%
  1317.     UNTIL x1%<>x% OR y1%<>y% OR k%
  1318.     DRAW Mx%,my% TO x1%,y1%
  1319.     GRAPHMODE 3
  1320.     x1%=x%
  1321.     y1%=y%
  1322.   UNTIL k%
  1323.   REPEAT
  1324.   UNTIL MOUSEK=0
  1325.   IF k%=1
  1326.     IF Linienflag%=0
  1327.       br%=x%-Mx%
  1328.       Ho%=y%-my%
  1329.       REPEAT
  1330.         REPEAT
  1331.           DRAW Mx%,my% TO x1%,y1%
  1332.           REPEAT
  1333.             MOUSE x%,y%,k%
  1334.           UNTIL x1%<>x% OR y1%<>y% OR k%
  1335.           DRAW Mx%,my% TO x1%,y1%
  1336.           x1%=x%
  1337.           y1%=y%
  1338.           Mx%=x%-br%
  1339.           my%=y%-Ho%
  1340.         UNTIL k%
  1341.         IF k%=1
  1342.           DRAW Mx%,my% TO x1%,y1%
  1343.         ENDIF
  1344.         REPEAT
  1345.         UNTIL MOUSEK=0
  1346.       UNTIL k%=2
  1347.       GOTO Ende
  1348.     ENDIF
  1349.     DRAW Mx%,my% TO x1%,y1%
  1350.     IF Linienflag%=1
  1351.       Mx%=x%
  1352.       my%=y%
  1353.     ENDIF
  1354.     GOTO Start17
  1355.   ENDIF
  1356.   REPEAT
  1357.   UNTIL MOUSEK=0
  1358.   Ende:
  1359.   GRAPHMODE graf%
  1360. RETURN
  1361. PROCEDURE ellipse
  1362.   REPEAT
  1363.     GOSUB hilfs_maus
  1364.     WHILE MOUSEK=FALSE
  1365.       MOUSE x%,y%,k%
  1366.       HIDEM
  1367.       SELECT b|
  1368.       CASE 0
  1369.         ELLIPSE a%,b%,ABS(a%-x%),ABS(b%-y%),kreis_1a%,kreis_2a%
  1370.       CASE 1
  1371.         ELLIPSE a%,b%,ABS(a%-x%),ABS(b%-y%),kreis_1a%,kreis_2a%
  1372.         ELLIPSE a%,403-1-b%,ABS(a%-x%),ABS(b%-y%),kreis_1a%,kreis_2a%
  1373.       CASE 2
  1374.         ELLIPSE a%,b%,ABS(a%-x%),ABS(b%-y%),kreis_1a%,kreis_2a%
  1375.         ELLIPSE 639-a%,b%,ABS(a%-x%),ABS(b%-y%),kreis_1a%,kreis_2a%
  1376.       CASE 3
  1377.         ELLIPSE a%,b%,ABS(a%-x%),ABS(b%-y%),kreis_1a%,kreis_2a%
  1378.         ELLIPSE 639-a%,b%,ABS(a%-x%),ABS(b%-y%),kreis_1a%,kreis_2a%
  1379.         ELLIPSE a%,403-1-b%,ABS(a%-x%),ABS(b%-y%),kreis_1a%,kreis_2a%
  1380.         ELLIPSE 639-a%,403-1-b%,ABS(a%-x%),ABS(b%-y%),kreis_1a%,kreis_2a%
  1381.       CASE 4
  1382.         ELLIPSE a%,b%,ABS(a%-x%),ABS(b%-y%),kreis_1a%,kreis_2a%
  1383.         ELLIPSE 639-a%,403-1-b%,ABS(a%-x%),ABS(b%-y%),kreis_1a%,kreis_2a%
  1384.       ENDSELECT
  1385.       PAUSE 3
  1386.       SELECT b|
  1387.       CASE 0
  1388.         ELLIPSE a%,b%,ABS(a%-x%),ABS(b%-y%),kreis_1a%,kreis_2a%
  1389.       CASE 1
  1390.         ELLIPSE a%,b%,ABS(a%-x%),ABS(b%-y%),kreis_1a%,kreis_2a%
  1391.         ELLIPSE a%,403-1-b%,ABS(a%-x%),ABS(b%-y%),kreis_1a%,kreis_2a%
  1392.       CASE 2
  1393.         ELLIPSE a%,b%,ABS(a%-x%),ABS(b%-y%),kreis_1a%,kreis_2a%
  1394.         ELLIPSE 639-a%,b%,ABS(a%-x%),ABS(b%-y%),kreis_1a%,kreis_2a%
  1395.       CASE 3
  1396.         ELLIPSE a%,b%,ABS(a%-x%),ABS(b%-y%),kreis_1a%,kreis_2a%
  1397.         ELLIPSE 639-a%,b%,ABS(a%-x%),ABS(b%-y%),kreis_1a%,kreis_2a%
  1398.         ELLIPSE a%,403-1-b%,ABS(a%-x%),ABS(b%-y%),kreis_1a%,kreis_2a%
  1399.         ELLIPSE 639-a%,403-1-b%,ABS(a%-x%),ABS(b%-y%),kreis_1a%,kreis_2a%
  1400.       CASE 4
  1401.         ELLIPSE a%,b%,ABS(a%-x%),ABS(b%-y%),kreis_1a%,kreis_2a%
  1402.         ELLIPSE 639-a%,403-1-b%,ABS(a%-x%),ABS(b%-y%),kreis_1a%,kreis_2a%
  1403.       ENDSELECT
  1404.     WEND
  1405.     WHILE MOUSEK=1
  1406.       GRAPHMODE graf%
  1407.       IF fu%=1
  1408.         SELECT b|
  1409.         CASE 0
  1410.           ELLIPSE a%,b%,ABS(a%-x%),ABS(b%-y%),kreis_1a%,kreis_2a%
  1411.         CASE 1
  1412.           ELLIPSE a%,b%,ABS(a%-x%),ABS(b%-y%),kreis_1a%,kreis_2a%
  1413.           ELLIPSE a%,403-1-b%,ABS(a%-x%),ABS(b%-y%),kreis_1a%,kreis_2a%
  1414.         CASE 2
  1415.           ELLIPSE a%,b%,ABS(a%-x%),ABS(b%-y%),kreis_1a%,kreis_2a%
  1416.           ELLIPSE 639-a%,b%,ABS(a%-x%),ABS(b%-y%),kreis_1a%,kreis_2a%
  1417.         CASE 3
  1418.           ELLIPSE a%,b%,ABS(a%-x%),ABS(b%-y%),kreis_1a%,kreis_2a%
  1419.           ELLIPSE 639-a%,b%,ABS(a%-x%),ABS(b%-y%),kreis_1a%,kreis_2a%
  1420.           ELLIPSE a%,403-1-b%,ABS(a%-x%),ABS(b%-y%),kreis_1a%,kreis_2a%
  1421.           ELLIPSE 639-a%,403-1-b%,ABS(a%-x%),ABS(b%-y%),kreis_1a%,kreis_2a%
  1422.         CASE 4
  1423.           ELLIPSE a%,b%,ABS(a%-x%),ABS(b%-y%),kreis_1a%,kreis_2a%
  1424.           ELLIPSE 639-a%,403-1-b%,ABS(a%-x%),ABS(b%-y%),kreis_1a%,kreis_2a%
  1425.         ENDSELECT
  1426.       ELSE
  1427.         SELECT b|
  1428.         CASE 0
  1429.           PELLIPSE a%,b%,ABS(a%-x%),ABS(b%-y%),kreis_1a%,kreis_2a%
  1430.         CASE 1
  1431.           PELLIPSE a%,b%,ABS(a%-x%),ABS(b%-y%),kreis_1a%,kreis_2a%
  1432.           PELLIPSE a%,403-1-b%,ABS(a%-x%),ABS(b%-y%),kreis_1a%,kreis_2a%
  1433.         CASE 2
  1434.           PELLIPSE a%,b%,ABS(a%-x%),ABS(b%-y%),kreis_1a%,kreis_2a%
  1435.           PELLIPSE 639-a%,b%,ABS(a%-x%),ABS(b%-y%),kreis_1a%,kreis_2a%
  1436.         CASE 3
  1437.           PELLIPSE a%,b%,ABS(a%-x%),ABS(b%-y%),kreis_1a%,kreis_2a%
  1438.           PELLIPSE 639-a%,b%,ABS(a%-x%),ABS(b%-y%),kreis_1a%,kreis_2a%
  1439.           PELLIPSE a%,403-1-b%,ABS(a%-x%),ABS(b%-y%),kreis_1a%,kreis_2a%
  1440.           PELLIPSE 639-a%,403-1-b%,ABS(a%-x%),ABS(b%-y%),kreis_1a%,kreis_2a%
  1441.         CASE 4
  1442.           PELLIPSE a%,b%,ABS(a%-x%),ABS(b%-y%),kreis_1a%,kreis_2a%
  1443.           PELLIPSE 639-a%,403-1-b%,ABS(a%-x%),ABS(b%-y%),kreis_1a%,kreis_2a%
  1444.         ENDSELECT
  1445.       ENDIF
  1446.       IF fu%=1
  1447.         SELECT b|
  1448.         CASE 0
  1449.           ELLIPSE a%,b%,ABS(a%-x%),ABS(b%-y%),kreis_1a%,kreis_2a%
  1450.         CASE 1
  1451.           ELLIPSE a%,b%,ABS(a%-x%),ABS(b%-y%),kreis_1a%,kreis_2a%
  1452.           ELLIPSE a%,403-1-b%,ABS(a%-x%),ABS(b%-y%),kreis_1a%,kreis_2a%
  1453.         CASE 2
  1454.           ELLIPSE a%,b%,ABS(a%-x%),ABS(b%-y%),kreis_1a%,kreis_2a%
  1455.           ELLIPSE 639-a%,b%,ABS(a%-x%),ABS(b%-y%),kreis_1a%,kreis_2a%
  1456.         CASE 3
  1457.           ELLIPSE a%,b%,ABS(a%-x%),ABS(b%-y%),kreis_1a%,kreis_2a%
  1458.           ELLIPSE 639-a%,b%,ABS(a%-x%),ABS(b%-y%),kreis_1a%,kreis_2a%
  1459.           ELLIPSE a%,403-1-b%,ABS(a%-x%),ABS(b%-y%),kreis_1a%,kreis_2a%
  1460.           ELLIPSE 639-a%,403-1-b%,ABS(a%-x%),ABS(b%-y%),kreis_1a%,kreis_2a%
  1461.         CASE 4
  1462.           ELLIPSE a%,b%,ABS(a%-x%),ABS(b%-y%),kreis_1a%,kreis_2a%
  1463.           ELLIPSE 639-a%,403-1-b%,ABS(a%-x%),ABS(b%-y%),kreis_1a%,kreis_2a%
  1464.         ENDSELECT
  1465.       ELSE
  1466.         SELECT b|
  1467.         CASE 0
  1468.           PELLIPSE a%,b%,ABS(a%-x%),ABS(b%-y%),kreis_1a%,kreis_2a%
  1469.         CASE 1
  1470.           PELLIPSE a%,b%,ABS(a%-x%),ABS(b%-y%),kreis_1a%,kreis_2a%
  1471.           PELLIPSE a%,403-1-b%,ABS(a%-x%),ABS(b%-y%),kreis_1a%,kreis_2a%
  1472.         CASE 2
  1473.           PELLIPSE a%,b%,ABS(a%-x%),ABS(b%-y%),kreis_1a%,kreis_2a%
  1474.           PELLIPSE 639-a%,b%,ABS(a%-x%),ABS(b%-y%),kreis_1a%,kreis_2a%
  1475.         CASE 3
  1476.           PELLIPSE a%,b%,ABS(a%-x%),ABS(b%-y%),kreis_1a%,kreis_2a%
  1477.           PELLIPSE 639-a%,b%,ABS(a%-x%),ABS(b%-y%),kreis_1a%,kreis_2a%
  1478.           PELLIPSE a%,403-1-b%,ABS(a%-x%),ABS(b%-y%),kreis_1a%,kreis_2a%
  1479.           PELLIPSE 639-a%,403-1-b%,ABS(a%-x%),ABS(b%-y%),kreis_1a%,kreis_2a%
  1480.         CASE 4
  1481.           PELLIPSE a%,b%,ABS(a%-x%),ABS(b%-y%),kreis_1a%,kreis_2a%
  1482.           PELLIPSE 639-a%,403-1-b%,ABS(a%-x%),ABS(b%-y%),kreis_1a%,kreis_2a%
  1483.         ENDSELECT
  1484.       ENDIF
  1485.     WEND
  1486.   UNTIL MOUSEK=2
  1487.   SHOWM
  1488. RETURN
  1489. PROCEDURE line
  1490.   REPEAT
  1491.     GOSUB hilfs_maus
  1492.     WHILE MOUSEK=FALSE
  1493.       MOUSE x%,y%,k%
  1494.       HIDEM
  1495.       SELECT b|
  1496.       CASE 0
  1497.         DRAW x%,y% TO a%+Xkord%,b%+Ykord%
  1498.       CASE 1
  1499.         DRAW x%,y% TO a%+Xkord%,b%+Ykord%
  1500.         DRAW x%,403-1-y% TO a%+Xkord%,403-1-b%+Ykord%
  1501.       CASE 2
  1502.         DRAW x%,y% TO a%+Xkord%,b%+Ykord%
  1503.         DRAW 639-x%,y% TO 639-a%+Xkord%,b%+Ykord%
  1504.       CASE 3
  1505.         DRAW x%,y% TO a%+Xkord%,b%+Ykord%
  1506.         DRAW 639-x%,y% TO 639-a%+Xkord%,b%+Ykord%
  1507.         DRAW x%,403-1-y% TO a%+Xkord%,403-1-b%+Ykord%
  1508.         DRAW 639-x%,403-1-y% TO 639-a%+Xkord%,403-1-b%+Ykord%
  1509.       CASE 4
  1510.         DRAW 639-x%,403-1-y% TO 639-a%+Xkord%,403-1-b%+Ykord%
  1511.         DRAW x%,y% TO a%+Xkord%,b%+Ykord%
  1512.       ENDSELECT
  1513.       PAUSE 5
  1514.       SELECT b|
  1515.       CASE 0
  1516.         DRAW x%,y% TO a%+Xkord%,b%+Ykord%
  1517.       CASE 1
  1518.         DRAW x%,y% TO a%+Xkord%,b%+Ykord%
  1519.         DRAW x%,403-1-y% TO a%+Xkord%,403-1-b%+Ykord%
  1520.       CASE 2
  1521.         DRAW x%,y% TO a%+Xkord%,b%+Ykord%
  1522.         DRAW 639-x%,y% TO 639-a%+Xkord%,b%+Ykord%
  1523.       CASE 3
  1524.         DRAW x%,y% TO a%+Xkord%,b%+Ykord%
  1525.         DRAW 639-x%,y% TO 639-a%+Xkord%,b%+Ykord%
  1526.         DRAW x%,403-1-y% TO a%+Xkord%,403-1-b%+Ykord%
  1527.         DRAW 639-x%,403-1-y% TO 639-a%+Xkord%,403-1-b%+Ykord%
  1528.       CASE 4
  1529.         DRAW 639-x%,403-1-y% TO 639-a%+Xkord%,403-1-b%+Ykord%
  1530.         DRAW x%,y% TO a%+Xkord%,b%+Ykord%
  1531.       ENDSELECT
  1532.     WEND
  1533.     WHILE MOUSEK=1
  1534.       GRAPHMODE graf%
  1535.       DRAW x%,y% TO a%,b%
  1536.       SELECT b|
  1537.       CASE 0
  1538.         DRAW x%,y% TO a%+Xkord%,b%+Ykord%
  1539.       CASE 1
  1540.         DRAW x%,y% TO a%+Xkord%,b%+Ykord%
  1541.         DRAW x%,403-1-y% TO a%+Xkord%,403-1-b%+Ykord%
  1542.       CASE 2
  1543.         DRAW x%,y% TO a%+Xkord%,b%+Ykord%
  1544.         DRAW 639-x%,y% TO 639-a%+Xkord%,b%+Ykord%
  1545.       CASE 3
  1546.         DRAW x%,y% TO a%+Xkord%,b%+Ykord%
  1547.         DRAW 639-x%,y% TO 639-a%+Xkord%,b%+Ykord%
  1548.         DRAW x%,403-1-y% TO a%+Xkord%,403-1-b%+Ykord%
  1549.         DRAW 639-x%,403-1-y% TO 639-a%+Xkord%,403-1-b%+Ykord%
  1550.       CASE 4
  1551.         DRAW 639-x%,403-1-y% TO 639-a%+Xkord%,403-1-b%+Ykord%
  1552.         DRAW x%,y% TO a%+Xkord%,b%+Ykord%
  1553.       ENDSELECT
  1554.     WEND
  1555.   UNTIL MOUSEK=2
  1556.   SHOWM
  1557. RETURN
  1558. PROCEDURE rechteck
  1559.   REPEAT
  1560.     GOSUB hilfs_maus
  1561.     WHILE MOUSEK=FALSE
  1562.       MOUSE x%,y%,k%
  1563.       SELECT b|
  1564.       CASE 0
  1565.         BOX a%,b%,x%,y%
  1566.       CASE 1
  1567.         BOX a%,b%,x%,y%
  1568.         BOX a%,403-1-b%,x%,403-1-y%
  1569.       CASE 2
  1570.         BOX a%,b%,x%,y%
  1571.         BOX 639-a%,b%,639-x%,y%
  1572.       CASE 3
  1573.         BOX a%,b%,x%,y%
  1574.         BOX 639-a%,b%,639-x%,y%
  1575.         BOX a%,403-1-b%,x%,403-1-y%
  1576.         BOX 639-a%,403-1-b%,639-x%,403-1-y%
  1577.       CASE 4
  1578.         BOX a%,b%,x%,y%
  1579.         BOX 639-a%,403-1-b%,639-x%,403-1-y%
  1580.       ENDSELECT
  1581.       PAUSE 3
  1582.       SELECT b|
  1583.       CASE 0
  1584.         BOX a%,b%,x%,y%
  1585.       CASE 1
  1586.         BOX a%,b%,x%,y%
  1587.         BOX a%,403-1-b%,x%,403-1-y%
  1588.       CASE 2
  1589.         BOX a%,b%,x%,y%
  1590.         BOX 639-a%,b%,639-x%,y%
  1591.       CASE 3
  1592.         BOX a%,b%,x%,y%
  1593.         BOX 639-a%,b%,639-x%,y%
  1594.         BOX a%,403-1-b%,x%,403-1-y%
  1595.         BOX 639-a%,403-1-b%,639-x%,403-1-y%
  1596.       CASE 4
  1597.         BOX a%,b%,x%,y%
  1598.         BOX 639-a%,403-1-b%,639-x%,403-1-y%
  1599.       ENDSELECT
  1600.     WEND
  1601.     WHILE MOUSEK=1
  1602.       GRAPHMODE graf%
  1603.       IF fu%=1
  1604.         IF ka%=1
  1605.           SELECT b|
  1606.           CASE 0
  1607.             BOX a%,b%,x%,y%
  1608.           CASE 1
  1609.             BOX a%,b%,x%,y%
  1610.             BOX a%,403-1-b%,x%,403-1-y%
  1611.           CASE 2
  1612.             BOX a%,b%,x%,y%
  1613.             BOX 639-a%,b%,639-x%,y%
  1614.           CASE 3
  1615.             BOX a%,b%,x%,y%
  1616.             BOX 639-a%,b%,639-x%,y%
  1617.             BOX a%,403-1-b%,x%,403-1-y%
  1618.             BOX 639-a%,403-1-b%,639-x%,403-1-y%
  1619.           CASE 4
  1620.             BOX a%,b%,x%,y%
  1621.             BOX 639-a%,403-1-b%,639-x%,403-1-y%
  1622.           ENDSELECT
  1623.         ELSE
  1624.           SELECT b|
  1625.           CASE 0
  1626.             RBOX a%,b%,x%,y%
  1627.           CASE 1
  1628.             RBOX a%,b%,x%,y%
  1629.             RBOX a%,403-1-b%,x%,403-1-y%
  1630.           CASE 2
  1631.             RBOX a%,b%,x%,y%
  1632.             RBOX 639-a%,b%,639-x%,y%
  1633.           CASE 3
  1634.             RBOX a%,b%,x%,y%
  1635.             RBOX 639-a%,b%,639-x%,y%
  1636.             RBOX a%,403-1-b%,x%,403-1-y%
  1637.             RBOX 639-a%,403-1-b%,639-x%,403-1-y%
  1638.           CASE 4
  1639.             RBOX a%,b%,x%,y%
  1640.             RBOX 639-a%,403-1-b%,639-x%,403-1-y%
  1641.           ENDSELECT
  1642.         ENDIF
  1643.       ELSE
  1644.         IF ka%=1
  1645.           SELECT b|
  1646.           CASE 0
  1647.             PBOX a%,b%,x%,y%
  1648.           CASE 1
  1649.             PBOX a%,b%,x%,y%
  1650.             PBOX a%,403-1-b%,x%,403-1-y%
  1651.           CASE 2
  1652.             PBOX a%,b%,x%,y%
  1653.             PBOX 639-a%,b%,639-x%,y%
  1654.           CASE 3
  1655.             PBOX a%,b%,x%,y%
  1656.             PBOX 639-a%,b%,639-x%,y%
  1657.             PBOX a%,403-1-b%,x%,403-1-y%
  1658.             PBOX 639-a%,403-1-b%,639-x%,403-1-y%
  1659.           CASE 4
  1660.             PBOX a%,b%,x%,y%
  1661.             PBOX 639-a%,403-1-b%,639-x%,403-1-y%
  1662.           ENDSELECT
  1663.         ELSE
  1664.           SELECT b|
  1665.           CASE 0
  1666.             PRBOX a%,b%,x%,y%
  1667.           CASE 1
  1668.             PRBOX a%,b%,x%,y%
  1669.             PRBOX a%,403-1-b%,x%,403-1-y%
  1670.           CASE 2
  1671.             PRBOX a%,b%,x%,y%
  1672.             PRBOX 639-a%,b%,639-x%,y%
  1673.           CASE 3
  1674.             PRBOX a%,b%,x%,y%
  1675.             PRBOX 639-a%,b%,639-x%,y%
  1676.             PRBOX a%,403-1-b%,x%,403-1-y%
  1677.             PRBOX 639-a%,403-1-b%,639-x%,403-1-y%
  1678.           CASE 4
  1679.             PRBOX a%,b%,x%,y%
  1680.             PRBOX 639-a%,403-1-b%,639-x%,403-1-y%
  1681.           ENDSELECT
  1682.         ENDIF
  1683.       ENDIF
  1684.     WEND
  1685.     IF fu%=1
  1686.       IF ka%=1
  1687.         SELECT b|
  1688.         CASE 0
  1689.           BOX a%,b%,x%,y%
  1690.         CASE 1
  1691.           BOX a%,b%,x%,y%
  1692.           BOX a%,403-1-b%,x%,403-1-y%
  1693.         CASE 2
  1694.           BOX a%,b%,x%,y%
  1695.           BOX 639-a%,b%,639-x%,y%
  1696.         CASE 3
  1697.           BOX a%,b%,x%,y%
  1698.           BOX 639-a%,b%,639-x%,y%
  1699.           BOX a%,403-1-b%,x%,403-1-y%
  1700.           BOX 639-a%,403-1-b%,639-x%,403-1-y%
  1701.         CASE 4
  1702.           BOX a%,b%,x%,y%
  1703.           BOX 639-a%,403-1-b%,639-x%,403-1-y%
  1704.         ENDSELECT
  1705.       ELSE
  1706.         SELECT b|
  1707.         CASE 0
  1708.           RBOX a%,b%,x%,y%
  1709.         CASE 1
  1710.           RBOX a%,b%,x%,y%
  1711.           RBOX a%,403-1-b%,x%,403-1-y%
  1712.         CASE 2
  1713.           RBOX a%,b%,x%,y%
  1714.           RBOX 639-a%,b%,639-x%,y%
  1715.         CASE 3
  1716.           RBOX a%,b%,x%,y%
  1717.           RBOX 639-a%,b%,639-x%,y%
  1718.           RBOX a%,403-1-b%,x%,403-1-y%
  1719.           RBOX 639-a%,403-1-b%,639-x%,403-1-y%
  1720.         CASE 4
  1721.           RBOX a%,b%,x%,y%
  1722.           RBOX 639-a%,403-1-b%,639-x%,403-1-y%
  1723.         ENDSELECT
  1724.       ENDIF
  1725.     ELSE
  1726.       IF ka%=1
  1727.         SELECT b|
  1728.         CASE 0
  1729.           PBOX a%,b%,x%,y%
  1730.         CASE 1
  1731.           PBOX a%,b%,x%,y%
  1732.           PBOX a%,403-1-b%,x%,403-1-y%
  1733.         CASE 2
  1734.           PBOX a%,b%,x%,y%
  1735.           PBOX 639-a%,b%,639-x%,y%
  1736.         CASE 3
  1737.           PBOX a%,b%,x%,y%
  1738.           PBOX 639-a%,b%,639-x%,y%
  1739.           PBOX a%,403-1-b%,x%,403-1-y%
  1740.           PBOX 639-a%,403-1-b%,639-x%,403-1-y%
  1741.         CASE 4
  1742.           PBOX a%,b%,x%,y%
  1743.           PBOX 639-a%,403-1-b%,639-x%,403-1-y%
  1744.         ENDSELECT
  1745.       ELSE
  1746.         SELECT b|
  1747.         CASE 0
  1748.           PRBOX a%,b%,x%,y%
  1749.         CASE 1
  1750.           PRBOX a%,b%,x%,y%
  1751.           PRBOX a%,403-1-b%,x%,403-1-y%
  1752.         CASE 2
  1753.           PRBOX a%,b%,x%,y%
  1754.           PRBOX 639-a%,b%,639-x%,y%
  1755.         CASE 3
  1756.           PRBOX a%,b%,x%,y%
  1757.           PRBOX 639-a%,b%,639-x%,y%
  1758.           PRBOX a%,403-1-b%,x%,403-1-y%
  1759.           PRBOX 639-a%,403-1-b%,639-x%,403-1-y%
  1760.         CASE 4
  1761.           PRBOX a%,b%,x%,y%
  1762.           PRBOX 639-a%,403-1-b%,639-x%,403-1-y%
  1763.         ENDSELECT
  1764.       ENDIF
  1765.     ENDIF
  1766.     IF fu%=1  AND ka%=2
  1767.       SELECT b|
  1768.       CASE 0
  1769.         RBOX a%,b%,x%,y%
  1770.       CASE 1
  1771.         RBOX a%,b%,x%,y%
  1772.         RBOX a%,403-1-b%,x%,403-1-y%
  1773.       CASE 2
  1774.         RBOX a%,b%,x%,y%
  1775.         RBOX 639-a%,b%,639-x%,y%
  1776.       CASE 3
  1777.         RBOX a%,b%,x%,y%
  1778.         RBOX 639-a%,b%,639-x%,y%
  1779.         RBOX a%,403-1-b%,x%,403-1-y%
  1780.         RBOX 639-a%,403-1-b%,639-x%,403-1-y%
  1781.       CASE 4
  1782.         RBOX a%,b%,x%,y%
  1783.         RBOX 639-a%,403-1-b%,639-x%,403-1-y%
  1784.       ENDSELECT
  1785.     ENDIF
  1786.     IF ka%=1  AND fu%=2
  1787.       SELECT b|
  1788.       CASE 0
  1789.         PBOX a%,b%,x%,y%
  1790.       CASE 1
  1791.         PBOX a%,b%,x%,y%
  1792.         PBOX a%,403-1-b%,x%,403-1-y%
  1793.       CASE 2
  1794.         PBOX a%,b%,x%,y%
  1795.         PBOX 639-a%,b%,639-x%,y%
  1796.       CASE 3
  1797.         PBOX a%,b%,x%,y%
  1798.         PBOX 639-a%,b%,639-x%,y%
  1799.         PBOX a%,403-1-b%,x%,403-1-y%
  1800.         PBOX 639-a%,403-1-b%,639-x%,403-1-y%
  1801.       CASE 4
  1802.         PBOX a%,b%,x%,y%
  1803.         PBOX 639-a%,403-1-b%,639-x%,403-1-y%
  1804.       ENDSELECT
  1805.     ENDIF
  1806.     IF ka%=2 AND fu%=2
  1807.       SELECT b|
  1808.       CASE 0
  1809.         PRBOX a%,b%,x%,y%
  1810.       CASE 1
  1811.         PRBOX a%,b%,x%,y%
  1812.         PRBOX a%,403-1-b%,x%,403-1-y%
  1813.       CASE 2
  1814.         PRBOX a%,b%,x%,y%
  1815.         PRBOX 639-a%,b%,639-x%,y%
  1816.       CASE 3
  1817.         PRBOX a%,b%,x%,y%
  1818.         PRBOX 639-a%,b%,639-x%,y%
  1819.         PRBOX a%,403-1-b%,x%,403-1-y%
  1820.         PRBOX 639-a%,403-1-b%,639-x%,403-1-y%
  1821.       CASE 4
  1822.         PRBOX a%,b%,x%,y%
  1823.         PRBOX 639-a%,403-1-b%,639-x%,403-1-y%
  1824.       ENDSELECT
  1825.     ENDIF
  1826.     IF ka%=1 AND fu%=1
  1827.       SELECT b|
  1828.       CASE 0
  1829.         BOX a%,b%,x%,y%
  1830.       CASE 1
  1831.         BOX a%,b%,x%,y%
  1832.         BOX a%,403-1-b%,x%,403-1-y%
  1833.       CASE 2
  1834.         BOX a%,b%,x%,y%
  1835.         BOX 639-a%,b%,639-x%,y%
  1836.       CASE 3
  1837.         BOX a%,b%,x%,y%
  1838.         BOX 639-a%,b%,639-x%,y%
  1839.         BOX a%,403-1-b%,x%,403-1-y%
  1840.         BOX 639-a%,403-1-b%,639-x%,403-1-y%
  1841.       CASE 4
  1842.         BOX a%,b%,x%,y%
  1843.         BOX 639-a%,403-1-b%,639-x%,403-1-y%
  1844.       ENDSELECT
  1845.     ENDIF
  1846.   UNTIL MOUSEK=2
  1847.   SHOWM
  1848. RETURN
  1849. PROCEDURE quadrat
  1850.   REPEAT
  1851.     GOSUB hilfs_maus
  1852.     WHILE MOUSEK=0
  1853.       MOUSE x%,y%,k%
  1854.       IF ABS(a%-x%)>ABS(b%-y%)
  1855.         y%=b%-(ABS(a%-x%)*SGN(b%-y%))
  1856.       ELSE
  1857.         x%=a%-(ABS(b%-y%)*SGN(a%-x%))
  1858.       ENDIF
  1859.       SELECT b|
  1860.       CASE 0
  1861.         BOX a%,b%,x%,y%
  1862.       CASE 1
  1863.         BOX a%,b%,x%,y%
  1864.         BOX a%,403-1-b%,x%,403-1-y%
  1865.       CASE 2
  1866.         BOX a%,b%,x%,y%
  1867.         BOX 639-a%,b%,639-x%,y%
  1868.       CASE 3
  1869.         BOX a%,b%,x%,y%
  1870.         BOX 639-a%,b%,639-x%,y%
  1871.         BOX a%,403-1-b%,x%,403-1-y%
  1872.         BOX 639-a%,403-1-b%,639-x%,403-1-y%
  1873.       CASE 4
  1874.         BOX a%,b%,x%,y%
  1875.         BOX 639-a%,403-1-b%,639-x%,403-1-y%
  1876.       ENDSELECT
  1877.       PAUSE 3
  1878.       SELECT b|
  1879.       CASE 0
  1880.         BOX a%,b%,x%,y%
  1881.       CASE 1
  1882.         BOX a%,b%,x%,y%
  1883.         BOX a%,403-1-b%,x%,403-1-y%
  1884.       CASE 2
  1885.         BOX a%,b%,x%,y%
  1886.         BOX 639-a%,b%,639-x%,y%
  1887.       CASE 3
  1888.         BOX a%,b%,x%,y%
  1889.         BOX 639-a%,b%,639-x%,y%
  1890.         BOX a%,403-1-b%,x%,403-1-y%
  1891.         BOX 639-a%,403-1-b%,639-x%,403-1-y%
  1892.       CASE 4
  1893.         BOX a%,b%,x%,y%
  1894.         BOX 639-a%,403-1-b%,639-x%,403-1-y%
  1895.       ENDSELECT
  1896.     WEND
  1897.     SELECT b|
  1898.     CASE 0
  1899.       BOX a%,b%,x%,y%
  1900.     CASE 1
  1901.       BOX a%,b%,x%,y%
  1902.       BOX a%,403-1-b%,x%,403-1-y%
  1903.     CASE 2
  1904.       BOX a%,b%,x%,y%
  1905.       BOX 639-a%,b%,639-x%,y%
  1906.     CASE 3
  1907.       BOX a%,b%,x%,y%
  1908.       BOX 639-a%,b%,639-x%,y%
  1909.       BOX a%,403-1-b%,x%,403-1-y%
  1910.       BOX 639-a%,403-1-b%,639-x%,403-1-y%
  1911.     CASE 4
  1912.       BOX a%,b%,x%,y%
  1913.       BOX 639-a%,403-1-b%,639-x%,403-1-y%
  1914.     CASE 0
  1915.       BOX a%,b%,x%,y%
  1916.     CASE 1
  1917.       BOX a%,b%,x%,y%
  1918.       BOX a%,403-1-b%,x%,403-1-y%
  1919.     CASE 2
  1920.       BOX a%,b%,x%,y%
  1921.       BOX 639-a%,b%,639-x%,y%
  1922.     CASE 3
  1923.       BOX a%,b%,x%,y%
  1924.       BOX 639-a%,b%,639-x%,y%
  1925.       BOX a%,403-1-b%,x%,403-1-y%
  1926.       BOX 639-a%,403-1-b%,639-x%,403-1-y%
  1927.     CASE 4
  1928.       BOX a%,b%,x%,y%
  1929.       BOX 639-a%,403-1-b%,639-x%,403-1-y%
  1930.     ENDSELECT
  1931.     WHILE MOUSEK=1
  1932.       GRAPHMODE graf%
  1933.       IF fu%=1
  1934.         IF ka%=1
  1935.           SELECT b|
  1936.           CASE 0
  1937.             BOX a%,b%,x%,y%
  1938.           CASE 1
  1939.             BOX a%,b%,x%,y%
  1940.             BOX a%,403-1-b%,x%,403-1-y%
  1941.           CASE 2
  1942.             BOX a%,b%,x%,y%
  1943.             BOX 639-a%,b%,639-x%,y%
  1944.           CASE 3
  1945.             BOX a%,b%,x%,y%
  1946.             BOX 639-a%,b%,639-x%,y%
  1947.             BOX a%,403-1-b%,x%,403-1-y%
  1948.             BOX 639-a%,403-1-b%,639-x%,403-1-y%
  1949.           CASE 4
  1950.             BOX a%,b%,x%,y%
  1951.             BOX 639-a%,403-1-b%,639-x%,403-1-y%
  1952.           ENDSELECT
  1953.         ELSE
  1954.           SELECT b|
  1955.           CASE 0
  1956.             RBOX a%,b%,x%,y%
  1957.           CASE 1
  1958.             RBOX a%,b%,x%,y%
  1959.             RBOX a%,403-1-b%,x%,403-1-y%
  1960.           CASE 2
  1961.             RBOX a%,b%,x%,y%
  1962.             RBOX 639-a%,b%,639-x%,y%
  1963.           CASE 3
  1964.             RBOX a%,b%,x%,y%
  1965.             RBOX 639-a%,b%,639-x%,y%
  1966.             RBOX a%,403-1-b%,x%,403-1-y%
  1967.             RBOX 639-a%,403-1-b%,639-x%,403-1-y%
  1968.           CASE 4
  1969.             RBOX a%,b%,x%,y%
  1970.             RBOX 639-a%,403-1-b%,639-x%,403-1-y%
  1971.           ENDSELECT
  1972.         ENDIF
  1973.       ELSE
  1974.         IF ka%=1
  1975.           SELECT b|
  1976.           CASE 0
  1977.             PBOX a%,b%,x%,y%
  1978.           CASE 1
  1979.             PBOX a%,b%,x%,y%
  1980.             PBOX a%,403-1-b%,x%,403-1-y%
  1981.           CASE 2
  1982.             PBOX a%,b%,x%,y%
  1983.             PBOX 639-a%,b%,639-x%,y%
  1984.           CASE 3
  1985.             PBOX a%,b%,x%,y%
  1986.             PBOX 639-a%,b%,639-x%,y%
  1987.             PBOX a%,403-1-b%,x%,403-1-y%
  1988.             PBOX 639-a%,403-1-b%,639-x%,403-1-y%
  1989.           CASE 4
  1990.             PBOX a%,b%,x%,y%
  1991.             PBOX 639-a%,403-1-b%,639-x%,403-1-y%
  1992.           ENDSELECT
  1993.         ELSE
  1994.           SELECT b|
  1995.           CASE 0
  1996.             PRBOX a%,b%,x%,y%
  1997.           CASE 1
  1998.             PRBOX a%,b%,x%,y%
  1999.             PRBOX a%,403-1-b%,x%,403-1-y%
  2000.           CASE 2
  2001.             PRBOX a%,b%,x%,y%
  2002.             PRBOX 639-a%,b%,639-x%,y%
  2003.           CASE 3
  2004.             PRBOX a%,b%,x%,y%
  2005.             PRBOX 639-a%,b%,639-x%,y%
  2006.             PRBOX a%,403-1-b%,x%,403-1-y%
  2007.             PRBOX 639-a%,403-1-b%,639-x%,403-1-y%
  2008.           CASE 4
  2009.             PRBOX a%,b%,x%,y%
  2010.             PRBOX 639-a%,403-1-b%,639-x%,403-1-y%
  2011.           ENDSELECT
  2012.         ENDIF
  2013.       ENDIF
  2014.     WEND
  2015.   UNTIL MOUSEK=2
  2016. RETURN
  2017. PROCEDURE kreis
  2018.   REPEAT
  2019.     GOSUB hilfs_maus
  2020.     WHILE MOUSEK=FALSE
  2021.       MOUSE x%,y%,k%
  2022.       IF fu%=1
  2023.         SELECT b|
  2024.         CASE 0
  2025.           CIRCLE a%,b%,ABS(a%-x%),kreis_1a%,kreis_2a%
  2026.           CIRCLE a%,b%,ABS(a%-x%),kreis_1a%,kreis_2a%
  2027.         CASE 1
  2028.           CIRCLE a%,b%,ABS(a%-x%),kreis_1a%,kreis_2a%
  2029.           CIRCLE a%,403-1-b%,ABS(a%-x%),kreis_1a%,kreis_2a%
  2030.           CIRCLE a%,b%,ABS(a%-x%),kreis_1a%,kreis_2a%
  2031.           CIRCLE a%,403-1-b%,ABS(a%-x%),kreis_1a%,kreis_2a%
  2032.         CASE 2
  2033.           CIRCLE a%,b%,ABS(a%-x%),kreis_1a%,kreis_2a%
  2034.           CIRCLE 639-a%,b%,ABS(a%-x%),kreis_1a%,kreis_2a%
  2035.           CIRCLE a%,b%,ABS(a%-x%),kreis_1a%,kreis_2a%
  2036.           CIRCLE 639-a%,b%,ABS(a%-x%),kreis_1a%,kreis_2a%
  2037.         CASE 3
  2038.           CIRCLE a%,b%,ABS(a%-x%),kreis_1a%,kreis_2a%
  2039.           CIRCLE 639-a%,b%,ABS(a%-x%),kreis_1a%,kreis_2a%
  2040.           CIRCLE a%,403-1-b%,ABS(a%-x%),kreis_1a%,kreis_2a%
  2041.           CIRCLE 639-a%,403-1-b%,ABS(a%-x%),kreis_1a%,kreis_2a%
  2042.           CIRCLE a%,b%,ABS(a%-x%),kreis_1a%,kreis_2a%
  2043.           CIRCLE 639-a%,b%,ABS(a%-x%),kreis_1a%,kreis_2a%
  2044.           CIRCLE a%,403-1-b%,ABS(a%-x%),kreis_1a%,kreis_2a%
  2045.           CIRCLE 639-a%,403-1-b%,ABS(a%-x%),kreis_1a%,kreis_2a%
  2046.         CASE 4
  2047.           CIRCLE a%,b%,ABS(a%-x%),kreis_1a%,kreis_2a%
  2048.           CIRCLE 639-a%,403-1-b%,ABS(a%-x%),kreis_1a%,kreis_2a%
  2049.           CIRCLE a%,b%,ABS(a%-x%),kreis_1a%,kreis_2a%
  2050.           CIRCLE 639-a%,403-1-b%,ABS(a%-x%),kreis_1a%,kreis_2a%
  2051.         ENDSELECT
  2052.       ELSE
  2053.         SELECT b|
  2054.         CASE 0
  2055.           PCIRCLE a%,b%,ABS(a%-x%),kreis_1a%,kreis_2a%
  2056.           PCIRCLE a%,b%,ABS(a%-x%),kreis_1a%,kreis_2a%
  2057.         CASE 1
  2058.           PCIRCLE a%,b%,ABS(a%-x%),kreis_1a%,kreis_2a%
  2059.           PCIRCLE a%,403-1-b%,ABS(a%-x%),kreis_1a%,kreis_2a%
  2060.           PCIRCLE a%,b%,ABS(a%-x%),kreis_1a%,kreis_2a%
  2061.           PCIRCLE a%,403-1-b%,ABS(a%-x%),kreis_1a%,kreis_2a%
  2062.         CASE 2
  2063.           PCIRCLE a%,b%,ABS(a%-x%),kreis_1a%,kreis_2a%
  2064.           PCIRCLE 639-a%,b%,ABS(a%-x%),kreis_1a%,kreis_2a%
  2065.           PCIRCLE a%,b%,ABS(a%-x%),kreis_1a%,kreis_2a%
  2066.           PCIRCLE 639-a%,b%,ABS(a%-x%),kreis_1a%,kreis_2a%
  2067.         CASE 3
  2068.           PCIRCLE a%,b%,ABS(a%-x%),kreis_1a%,kreis_2a%
  2069.           PCIRCLE 639-a%,b%,ABS(a%-x%),kreis_1a%,kreis_2a%
  2070.           PCIRCLE a%,403-1-b%,ABS(a%-x%),kreis_1a%,kreis_2a%
  2071.           PCIRCLE 639-a%,403-1-b%,ABS(a%-x%),kreis_1a%,kreis_2a%
  2072.           PCIRCLE a%,b%,ABS(a%-x%),kreis_1a%,kreis_2a%
  2073.           PCIRCLE 639-a%,b%,ABS(a%-x%),kreis_1a%,kreis_2a%
  2074.           PCIRCLE a%,403-1-b%,ABS(a%-x%),kreis_1a%,kreis_2a%
  2075.           PCIRCLE 639-a%,403-1-b%,ABS(a%-x%),kreis_1a%,kreis_2a%
  2076.         CASE 4
  2077.           PCIRCLE a%,b%,ABS(a%-x%),kreis_1a%,kreis_2a%
  2078.           PCIRCLE 639-a%,403-1-b%,ABS(a%-x%),kreis_1a%,kreis_2a%
  2079.           PCIRCLE a%,b%,ABS(a%-x%),kreis_1a%,kreis_2a%
  2080.           PCIRCLE 639-a%,403-1-b%,ABS(a%-x%),kreis_1a%,kreis_2a%
  2081.         ENDSELECT
  2082.       ENDIF
  2083.     WEND
  2084.     WHILE MOUSEK=1
  2085.       GRAPHMODE 1
  2086.       IF fu%=1
  2087.         SELECT b|
  2088.         CASE 0
  2089.           CIRCLE a%,b%,ABS(a%-x%),kreis_1a%,kreis_2a%
  2090.         CASE 1
  2091.           CIRCLE a%,b%,ABS(a%-x%),kreis_1a%,kreis_2a%
  2092.           CIRCLE a%,403-1-b%,ABS(a%-x%),kreis_1a%,kreis_2a%
  2093.         CASE 2
  2094.           CIRCLE a%,b%,ABS(a%-x%),kreis_1a%,kreis_2a%
  2095.           CIRCLE 639-a%,b%,ABS(a%-x%),kreis_1a%,kreis_2a%
  2096.         CASE 3
  2097.           CIRCLE a%,b%,ABS(a%-x%),kreis_1a%,kreis_2a%
  2098.           CIRCLE 639-a%,b%,ABS(a%-x%),kreis_1a%,kreis_2a%
  2099.           CIRCLE a%,403-1-b%,ABS(a%-x%),kreis_1a%,kreis_2a%
  2100.           CIRCLE 639-a%,403-1-b%,ABS(a%-x%),kreis_1a%,kreis_2a%
  2101.         CASE 4
  2102.           CIRCLE a%,b%,ABS(a%-x%),kreis_1a%,kreis_2a%
  2103.           CIRCLE 639-a%,403-1-b%,ABS(a%-x%),kreis_1a%,kreis_2a%
  2104.         ENDSELECT
  2105.       ELSE
  2106.         SELECT b|
  2107.         CASE 0
  2108.           PCIRCLE a%,b%,ABS(a%-x%),kreis_1a%,kreis_2a%
  2109.         CASE 1
  2110.           PCIRCLE a%,b%,ABS(a%-x%),kreis_1a%,kreis_2a%
  2111.           PCIRCLE a%,403-1-b%,ABS(a%-x%),kreis_1a%,kreis_2a%
  2112.         CASE 2
  2113.           PCIRCLE a%,b%,ABS(a%-x%),kreis_1a%,kreis_2a%
  2114.           PCIRCLE 639-a%,b%,ABS(a%-x%),kreis_1a%,kreis_2a%
  2115.         CASE 3
  2116.           PCIRCLE a%,b%,ABS(a%-x%),kreis_1a%,kreis_2a%
  2117.           PCIRCLE 639-a%,b%,ABS(a%-x%),kreis_1a%,kreis_2a%
  2118.           PCIRCLE a%,403-1-b%,ABS(a%-x%),kreis_1a%,kreis_2a%
  2119.           PCIRCLE 639-a%,403-1-b%,ABS(a%-x%),kreis_1a%,kreis_2a%
  2120.         CASE 4
  2121.           PCIRCLE a%,b%,ABS(a%-x%),kreis_1a%,kreis_2a%
  2122.           PCIRCLE 639-a%,403-1-b%,ABS(a%-x%),kreis_1a%,kreis_2a%
  2123.         ENDSELECT
  2124.       ENDIF
  2125.     WEND
  2126.   UNTIL MOUSEK=2
  2127.   GRAPHMODE graf%
  2128. RETURN
  2129. PROCEDURE kreis_aus
  2130.   GET 0,0,640,403,l$
  2131.   GRAPHMODE 1
  2132.   COLOR 1
  2133.   PRINT AT(1,1);"Kreis Ausschnitt"
  2134.   PRINT AT(1,2);"für Kreis Funktion "
  2135.   PRINT AT(1,4);"X Koordinate   (0 - 360) "
  2136.   PRINT AT(1,5);"Alter Wert ";kreis_1a%
  2137.   PRINT AT(1,6);"Neuer Wert ";
  2138.   FORM INPUT 3,kreis_1a$
  2139.   kreis_1a%=VAL(kreis_1a$)
  2140.   PRINT AT(1,8);"Y Koordinate   (0 - 360)"
  2141.   PRINT AT(1,9);"Alter Wert ";kreis_2a%
  2142.   PRINT AT(1,10);"Neuer Wert ";
  2143.   FORM INPUT 3,kreis_2a$
  2144.   kreis_2a%=VAL(kreis_2a$)
  2145.   GRAPHMODE graf%
  2146.   PUT 0,0,z$
  2147. RETURN
  2148. PROCEDURE draw2m
  2149.   REPEAT
  2150.     MOUSE x%,y%,k%
  2151.     IF k%=1
  2152.       HIDEM
  2153.       REPEAT
  2154.         DRAW x%,y% TO x%+Xkord%,y%+Ykord%
  2155.         SELECT b|
  2156.         CASE 0
  2157.           DRAW x%,y% TO x%+Xkord%,y%+Ykord%
  2158.         CASE 1
  2159.           DRAW x%,y% TO x%+Xkord%,y%+Ykord%
  2160.           DRAW 639-x%,y% TO 639-x%+Xkord%,y%+Ykord%
  2161.         CASE 3
  2162.           DRAW x%,y% TO x%+Xkord%,y%+Ykord%
  2163.           DRAW 639-x%,y% TO 639-x%+Xkord%,y%+Ykord%
  2164.           DRAW x%,403-1-y% TO x%+Xkord%,403-1-y%+Ykord%
  2165.           DRAW 639-x%,403-1-y% TO 639-x%+Xkord%,403-1-y%+Ykord%
  2166.         CASE 4
  2167.           DRAW x%,y% TO x%+Xkord%,y%+Ykord%
  2168.           DRAW 639-x%,403-1-y% TO 639-x%+Xkord%,403-1-y%+Ykord%
  2169.         CASE 2
  2170.           DRAW x%,y% TO x%+Xkord%,y%+Ykord%
  2171.           DRAW x%,403-1-y% TO x%+Xkord%,403-1-y%+Ykord%
  2172.         ENDSELECT
  2173.         MOUSE x%,y%,k%
  2174.       UNTIL k%=0
  2175.     ENDIF
  2176.     SHOWM
  2177.   UNTIL k%=2
  2178. RETURN
  2179. PROCEDURE rastm2
  2180.   IF Xrast%=0 AND Yrast%=0
  2181.     Yrast%=1
  2182.   ENDIF
  2183.   DEFMOUSE 3
  2184.   ALERT 3,"Wie wollen Sie Rastern ?",1,"_Normal|_Invers",d%
  2185.   HIDEM
  2186.   DIM F4%(1)
  2187.   PUT FALSE,FALSE,Boxbild$
  2188.   GOSUB hilfs_maus
  2189.   WHILE MOUSEK=FALSE
  2190.     MOUSE x%,y%,k%
  2191.     BOX a%,b%,x%,y%
  2192.     PAUSE 3
  2193.     BOX a%,b%,x%,y%
  2194.   WEND
  2195.   IF y%>402
  2196.     y%=402
  2197.   ENDIF
  2198.   WHILE MOUSEK=1 AND MOUSEY<404  AND b%<404 AND y%<404
  2199.     GET a%,b%,x%,y%,bild$
  2200.     GRAPHMODE graf%
  2201.   WEND
  2202.   FOR y1%=b% TO y% STEP Yrast%+1
  2203.     FOR x1%=a% TO x% STEP Xrast%+1
  2204.       FOR B1%=y1% TO y1%+Yrast%
  2205.         FOR a1%=x1% TO x1%+Xrast%
  2206.           G%=POINT(a1%,B1%)
  2207.           INC F4%(G%)
  2208.         NEXT a1%
  2209.       NEXT B1%
  2210.       SELECT d%
  2211.       CASE 1
  2212.         M%=MAX(F4%(0),F4%(1))
  2213.       CASE 2
  2214.         M%=MIN(F4%(0),F4%(1))
  2215.       ENDSELECT
  2216.       FOR V4%=0 TO 1
  2217.         IF F4%(V4%)=M%
  2218.           COLOR V4%
  2219.           FOR L%=y1% TO y1%+Yrast%
  2220.             FOR k%=x1% TO x1%+Xrast%
  2221.               DRAW k%,L%
  2222.             NEXT k%
  2223.           NEXT L%
  2224.         ENDIF
  2225.       NEXT V4%
  2226.       FOR O%=0 TO 1
  2227.         F4%(O%)=0
  2228.       NEXT O%
  2229.     NEXT x1%
  2230.   NEXT y1%
  2231.   GRAPHMODE graf%
  2232.   ERASE F4%()
  2233. RETURN
  2234. PROCEDURE vermod1
  2235.   GOSUB Hals
  2236.   GRAPHMODE 1
  2237.   DEFFILL 8
  2238.   PBOX 176,30,463,347
  2239.   DEFFILL 8
  2240.   PBOX 187,37,453,341
  2241.   BOX 186,36,454,342
  2242.   BOX 188,38,452,340
  2243.   BOX 190,40,450,338
  2244.   BOX 192,42,448,336
  2245.   BOX 193,43,447,335
  2246.   DRAW 193,64 TO 447,64
  2247.   DRAW 193,65 TO 447,65
  2248.   DRAW 193,67 TO 447,67
  2249.   DRAW 193,69 TO 447,69
  2250.   DRAW 193,70 TO 447,70
  2251.   DEFTEXT 1,FALSE,8,6
  2252.   TEXT 215,56,"--- Bild Verschieben 1 ---"
  2253.   TEXT 205,90,"ab_maus_nach_oben            "
  2254.   TEXT 205,115,"vor_maus_nach_unten          "
  2255.   TEXT 205,140,"ab_maus_nach_links           "
  2256.   TEXT 205,165,"ab_maus_nach_rechts          "
  2257.   TEXT 205,190,"bis_maus_schräg_rechts       "
  2258.   TEXT 205,215,"bis_maus_schräg_links        "
  2259.   TEXT 205,240,"verzerren_ab_maus_links_oben "
  2260.   TEXT 205,265,"verzerren_ab_maus_rechts_oben"
  2261.   TEXT 205,290,"verschmieren_ab_maus_oben    "
  2262.   TEXT 205,315,"verschmieren_bis_maus_rechts "
  2263.   REPEAT
  2264.     IF MOUSEX>192 AND MOUSEX<445 AND MOUSEK=1
  2265.       IF MOUSEY>70 AND MOUSEY<100
  2266.         verschieben=1
  2267.         GOSUB Verschieben_2
  2268.         GOTO Ende_3
  2269.       ENDIF
  2270.       IF MOUSEY>100 AND MOUSEY<125
  2271.         verschieben=2
  2272.         GOSUB Verschieben_2
  2273.         GOTO Ende_3
  2274.       ENDIF
  2275.       IF MOUSEY>125 AND MOUSEY<150
  2276.         verschieben=3
  2277.         GOSUB Verschieben_2
  2278.         GOTO Ende_3
  2279.       ENDIF
  2280.       IF MOUSEY>150 AND MOUSEY<175
  2281.         verschieben=4
  2282.         GOSUB Verschieben_2
  2283.         GOTO Ende_3
  2284.       ENDIF
  2285.       IF MOUSEY>175 AND MOUSEY<200
  2286.         verschieben=5
  2287.         GOSUB Verschieben_2
  2288.         GOTO Ende_3
  2289.       ENDIF
  2290.       IF MOUSEY>200 AND MOUSEY<225
  2291.         verschieben=6
  2292.         GOSUB Verschieben_2
  2293.         GOTO Ende_3
  2294.       ENDIF
  2295.       IF MOUSEY>225 AND MOUSEY<250
  2296.         verschieben=7
  2297.         GOSUB Verschieben_2
  2298.         GOTO Ende_3
  2299.       ENDIF
  2300.       IF MOUSEY>250 AND MOUSEY<275
  2301.         verschieben=8
  2302.         GOSUB Verschieben_2
  2303.         GOTO Ende_3
  2304.       ENDIF
  2305.       IF MOUSEY>275 AND MOUSEY<300
  2306.         verschieben=9
  2307.         GOSUB Verschieben_2
  2308.         GOTO Ende_3
  2309.       ENDIF
  2310.       IF MOUSEY>300 AND MOUSEY<325
  2311.         verschieben=10
  2312.         GOSUB Verschieben_2
  2313.         GOTO Ende_3
  2314.       ENDIF
  2315.     ENDIF
  2316.   UNTIL MOUSEK=2
  2317.   verschieben=11
  2318.   GOSUB Verschieben_2
  2319.   Ende_3:
  2320.   GOSUB Grund
  2321.   GRAPHMODE graf%
  2322.   IF f%<100
  2323.     DEFFILL f%
  2324.   ELSE
  2325.     DEFFILL muster$
  2326.   ENDIF
  2327. RETURN
  2328. PROCEDURE vermod2
  2329.   GOSUB Hals
  2330.   GRAPHMODE 1
  2331.   COLOR 1
  2332.   DEFFILL 8
  2333.   PBOX 176,30,463,297
  2334.   DEFFILL 8
  2335.   PBOX 187,37,453,291
  2336.   BOX 186,36,454,292
  2337.   BOX 188,38,452,290
  2338.   BOX 190,40,450,288
  2339.   BOX 192,42,448,286
  2340.   BOX 193,43,447,285
  2341.   DRAW 193,64 TO 447,64
  2342.   DRAW 193,65 TO 447,65
  2343.   DRAW 193,67 TO 447,67
  2344.   DRAW 193,69 TO 447,69
  2345.   DRAW 193,70 TO 447,70
  2346.   DEFTEXT 1,FALSE,8,6
  2347.   TEXT 215,56,"--- Bild Verschieben 1 ---"
  2348.   TEXT 260,90," nach unten   1 "
  2349.   TEXT 260,115," nach oben    1 "
  2350.   TEXT 260,140," nach rechts  1 "
  2351.   TEXT 260,165," nach links   1 "
  2352.   TEXT 260,190," nach unten   2 "
  2353.   TEXT 260,215," nach oben    2 "
  2354.   TEXT 260,240," nach rechts  2 "
  2355.   TEXT 260,265," nach links   2 "
  2356.   REPEAT
  2357.     IF MOUSEX>192 AND MOUSEX<445 AND MOUSEK=1
  2358.       IF MOUSEY>70 AND MOUSEY<100
  2359.         verschieben_2=1
  2360.         GOSUB Verschieben_4
  2361.         GOTO Ende_4
  2362.       ENDIF
  2363.       IF MOUSEY>100 AND MOUSEY<125
  2364.         verschieben_2=2
  2365.         GOSUB Verschieben_4
  2366.         GOTO Ende_4
  2367.       ENDIF
  2368.       IF MOUSEY>125 AND MOUSEY<150
  2369.         verschieben_2=3
  2370.         GOSUB Verschieben_4
  2371.         GOTO Ende_4
  2372.       ENDIF
  2373.       IF MOUSEY>150 AND MOUSEY<175
  2374.         verschieben_2=4
  2375.         GOSUB Verschieben_4
  2376.         GOTO Ende_4
  2377.       ENDIF
  2378.       IF MOUSEY>175 AND MOUSEY<200
  2379.         verschieben_2=5
  2380.         GOSUB Verschieben_4
  2381.         GOTO Ende_4
  2382.       ENDIF
  2383.       IF MOUSEY>200 AND MOUSEY<225
  2384.         verschieben_2=6
  2385.         GOSUB Verschieben_4
  2386.         GOTO Ende_4
  2387.       ENDIF
  2388.       IF MOUSEY>225 AND MOUSEY<250
  2389.         verschieben_2=7
  2390.         GOSUB Verschieben_4
  2391.         GOTO Ende_4
  2392.       ENDIF
  2393.       IF MOUSEY>250 AND MOUSEY<275
  2394.         verschieben_2=8
  2395.         GOSUB Verschieben_4
  2396.         GOTO Ende_4
  2397.       ENDIF
  2398.     ENDIF
  2399.   UNTIL MOUSEK=2
  2400.   Ende_4:
  2401.   verschieben_2=9
  2402.   GOSUB Verschieben_4
  2403.   GOSUB Grund
  2404.   GRAPHMODE graf%
  2405.   IF f%<100
  2406.     DEFFILL f%
  2407.   ELSE
  2408.     DEFFILL muster$
  2409.   ENDIF
  2410. RETURN
  2411. PROCEDURE zkreis90
  2412.   IF z_linie_g%=FALSE
  2413.     z_linie_g%=10
  2414.   ENDIF
  2415.   REPEAT
  2416.     SHOWM
  2417.     WHILE MOUSEK=1
  2418.       HIDEM
  2419.       X5%=INT((MOUSEX-300)/z_linie_g%)*z_linie_g%+300
  2420.       Y5%=INT((MOUSEY-100)/z_linie_g%)
  2421.       Y6%=Y5%*z_linie_g%+100
  2422.       x%=X5%
  2423.       y%=Y6%
  2424.       IF ka%=1
  2425.         IF fu%=2
  2426.           SELECT b|
  2427.           CASE 0
  2428.             PCIRCLE x%,y%,z_linie_g%,kreis_1a%,kreis_2a%
  2429.           CASE 1
  2430.             PCIRCLE x%,y%,z_linie_g%,kreis_1a%,kreis_2a%
  2431.             PCIRCLE x%,403-1-y%,z_linie_g%,kreis_1a%,kreis_2a%
  2432.           CASE 2
  2433.             PCIRCLE x%,y%,z_linie_g%,kreis_1a%,kreis_2a%
  2434.             PCIRCLE 639-x%,y%,z_linie_g%,kreis_1a%,kreis_2a%
  2435.           CASE 3
  2436.             PCIRCLE x%,y%,z_linie_g%,kreis_1a%,kreis_2a%
  2437.             PCIRCLE 639-x%,y%,z_linie_g%,kreis_1a%,kreis_2a%
  2438.             PCIRCLE x%,403-1-y%,z_linie_g%,kreis_1a%,kreis_2a%
  2439.             PCIRCLE 639-x%,403-1-y%,z_linie_g%,kreis_1a%,kreis_2a%
  2440.           CASE 4
  2441.             PCIRCLE x%,y%,z_linie_g%,kreis_1a%,kreis_2a%
  2442.             PCIRCLE 639-x%,403-1-y%,z_linie_g%,kreis_1a%,kreis_2a%
  2443.           ENDSELECT
  2444.         ENDIF
  2445.         IF fu%=1
  2446.           SELECT b|
  2447.           CASE 0
  2448.             CIRCLE x%,y%,z_linie_g%,kreis_1a%,kreis_2a%
  2449.           CASE 1
  2450.             CIRCLE x%,y%,z_linie_g%,kreis_1a%,kreis_2a%
  2451.             CIRCLE x%,403-1-y%,z_linie_g%,kreis_1a%,kreis_2a%
  2452.           CASE 2
  2453.             CIRCLE x%,y%,z_linie_g%,kreis_1a%,kreis_2a%
  2454.             CIRCLE 639-x%,y%,z_linie_g%,kreis_1a%,kreis_2a%
  2455.           CASE 3
  2456.             CIRCLE x%,y%,z_linie_g%,kreis_1a%,kreis_2a%
  2457.             CIRCLE 639-x%,y%,z_linie_g%,kreis_1a%,kreis_2a%
  2458.             CIRCLE x%,403-1-y%,z_linie_g%,kreis_1a%,kreis_2a%
  2459.             CIRCLE 639-x%,403-1-y%,z_linie_g%,kreis_1a%,kreis_2a%
  2460.           CASE 4
  2461.             CIRCLE x%,y%,z_linie_g%,kreis_1a%,kreis_2a%
  2462.             CIRCLE 639-x%,403-1-y%,z_linie_g%,kreis_1a%,kreis_2a%
  2463.           ENDSELECT
  2464.         ENDIF
  2465.       ENDIF
  2466.     WEND
  2467.   UNTIL MOUSEK=2
  2468. RETURN
  2469. PROCEDURE zbox90
  2470.   IF z_linie_g%=FALSE
  2471.     z_linie_g%=10
  2472.   ENDIF
  2473.   REPEAT
  2474.     SHOWM
  2475.     WHILE MOUSEK=1
  2476.       HIDEM
  2477.       x1%=INT((MOUSEX-300)/z_linie_g%)*z_linie_g%+300
  2478.       Yz%=INT((MOUSEY-100)/z_linie_g%)
  2479.       y1%=Yz%*z_linie_g%+100
  2480.       a%=x1%
  2481.       b%=y1%
  2482.       x%=x1%+z_linie_g%
  2483.       y%=y1%+z_linie_g%
  2484.       IF ka%=1
  2485.         IF fu%=2
  2486.           SELECT b|
  2487.           CASE 0
  2488.             PBOX a%,b%,x%,y%
  2489.           CASE 1
  2490.             PBOX a%,b%,x%,y%
  2491.             PBOX a%,403-1-b%,x%,403-1-y%
  2492.           CASE 2
  2493.             PBOX a%,b%,x%,y%
  2494.             PBOX 639-a%,b%,639-x%,y%
  2495.           CASE 3
  2496.             PBOX a%,b%,x%,y%
  2497.             PBOX 639-a%,b%,639-x%,y%
  2498.             PBOX a%,403-1-b%,x%,403-1-y%
  2499.             PBOX 639-a%,403-1-b%,639-x%,403-1-y%
  2500.           CASE 4
  2501.             PBOX a%,b%,x%,y%
  2502.             PBOX 639-a%,403-1-b%,639-x%,403-1-y%
  2503.           ENDSELECT
  2504.         ENDIF
  2505.         IF fu%=1
  2506.           SELECT b|
  2507.           CASE 0
  2508.             BOX a%,b%,x%,y%
  2509.           CASE 1
  2510.             BOX a%,b%,x%,y%
  2511.             BOX a%,403-1-b%,x%,403-1-y%
  2512.           CASE 2
  2513.             BOX a%,b%,x%,y%
  2514.             BOX 639-a%,b%,639-x%,y%
  2515.           CASE 3
  2516.             BOX a%,b%,x%,y%
  2517.             BOX 639-a%,b%,639-x%,y%
  2518.             BOX a%,403-1-b%,x%,403-1-y%
  2519.             BOX 639-a%,403-1-b%,639-x%,403-1-y%
  2520.           CASE 4
  2521.             BOX a%,b%,x%,y%
  2522.             BOX 639-a%,403-1-b%,639-x%,403-1-y%
  2523.           ENDSELECT
  2524.         ENDIF
  2525.       ENDIF
  2526.       IF ka%=2
  2527.         IF fu%=2
  2528.           SELECT b|
  2529.           CASE 0
  2530.             PRBOX a%,b%,x%,y%
  2531.           CASE 1
  2532.             PRBOX a%,b%,x%,y%
  2533.             PRBOX a%,403-1-b%,x%,403-1-y%
  2534.           CASE 2
  2535.             PRBOX a%,b%,x%,y%
  2536.             PRBOX 639-a%,b%,639-x%,y%
  2537.           CASE 3
  2538.             PRBOX a%,b%,x%,y%
  2539.             PRBOX 639-a%,b%,639-x%,y%
  2540.             PRBOX a%,403-1-b%,x%,403-1-y%
  2541.             PRBOX 639-a%,403-1-b%,639-x%,403-1-y%
  2542.           CASE 4
  2543.             PRBOX a%,b%,x%,y%
  2544.             PRBOX 639-a%,403-1-b%,639-x%,403-1-y%
  2545.           ENDSELECT
  2546.         ENDIF
  2547.         IF fu%=1
  2548.           SELECT b|
  2549.           CASE 0
  2550.             RBOX a%,b%,x%,y%
  2551.           CASE 1
  2552.             RBOX a%,b%,x%,y%
  2553.             RBOX a%,403-1-b%,x%,403-1-y%
  2554.           CASE 2
  2555.             RBOX a%,b%,x%,y%
  2556.             RBOX 639-a%,b%,639-x%,y%
  2557.           CASE 3
  2558.             RBOX a%,b%,x%,y%
  2559.             RBOX 639-a%,b%,639-x%,y%
  2560.             RBOX a%,403-1-b%,x%,403-1-y%
  2561.             RBOX 639-a%,403-1-b%,639-x%,403-1-y%
  2562.           CASE 4
  2563.             RBOX a%,b%,x%,y%
  2564.             RBOX 639-a%,403-1-b%,639-x%,403-1-y%
  2565.           ENDSELECT
  2566.         ENDIF
  2567.       ENDIF
  2568.     WEND
  2569.   UNTIL MOUSEK=2
  2570. RETURN
  2571. PROCEDURE text90
  2572.   DEFTEXT ,0
  2573.   LOCAL a$
  2574.   DEFMOUSE 3
  2575.   HIDEM
  2576.   REPEAT
  2577.     B$=""
  2578.     GRAPHMODE 3
  2579.     REPEAT
  2580.       MOUSE x%,y%,k%
  2581.       TEXT x%,y%,B$+"|"
  2582.       REPEAT
  2583.         a$=INKEY$
  2584.       UNTIL x%<>MOUSEX OR y%<>MOUSEY OR MOUSEK<>0 OR a$<>""
  2585.       TEXT x%,y%,B$+"|"
  2586.       MOUSE x%,y%,k%
  2587.       a$=LEFT$(a$)
  2588.       IF a$=CHR$(13)
  2589.         GOTO Starttext
  2590.       ENDIF
  2591.       IF a$=CHR$(27)
  2592.         B$=""
  2593.         GOTO Marktext
  2594.       ENDIF
  2595.       IF a$=CHR$(8) OR a$=CHR$(127) THEN
  2596.         IF LEN(B$)>0
  2597.           B$=LEFT$(B$,LEN(B$)-1)
  2598.         ENDIF
  2599.       ELSE
  2600.         B$=B$+a$
  2601.       ENDIF
  2602.       Marktext:
  2603.     UNTIL MOUSEK=1
  2604.     Starttext:
  2605.     GRAPHMODE graf%
  2606.     TEXT x%,y%,B$
  2607.     MOUSE x%,y%,k%
  2608.     IF MOUSEK=1
  2609.       TEXT x%,y%,B$
  2610.       DEFMOUSE 3
  2611.       GOTO Sende
  2612.     ENDIF
  2613.   UNTIL MOUSEK=2
  2614.   Sende:
  2615.   CLR B$
  2616.   SHOWM
  2617. RETURN
  2618. PROCEDURE rays90
  2619.   REPEAT
  2620.     MOUSE  x%,y%,k%
  2621.     a%=x%
  2622.     b%=y%
  2623.     WHILE MOUSEK=1
  2624.       HIDEM
  2625.       MOUSE x%,y%,k%
  2626.       DRAW x%,y% TO a%,b%
  2627.       DRAW x%,y% TO a%+Xkord%,b%+Ykord%
  2628.       SELECT b|
  2629.       CASE 0
  2630.         DRAW x%,y% TO a%+Xkord%,b%+Ykord%
  2631.       CASE 1
  2632.         DRAW x%,y% TO a%+Xkord%,b%+Ykord%
  2633.         DRAW 639-x%,y% TO 639-a%+Xkord%,b%+Ykord%
  2634.       CASE 3
  2635.         DRAW x%,y% TO a%+Xkord%,b%+Ykord%
  2636.         DRAW 639-x%,y% TO 639-a%+Xkord%,b%+Ykord%
  2637.         DRAW x%,403-1-y% TO a%+Xkord%,403-1-b%+Ykord%
  2638.         DRAW 639-x%,403-1-y% TO 639-a%+Xkord%,403-1-b%+Ykord%
  2639.       CASE 4
  2640.         DRAW x%,y% TO a%+Xkord%,b%+Ykord%
  2641.         DRAW 639-x%,403e-1-y% TO 639-a%+Xkord%,403-1-b%+Ykord%
  2642.       CASE 2
  2643.         DRAW x%,y% TO a%+Xkord%,b%+Ykord%
  2644.         DRAW x%,403-1-y% TO a%+Xkord%,403-1-b%+Ykord%
  2645.       ENDSELECT
  2646.     WEND
  2647.     SHOWM
  2648.   UNTIL MOUSEK=2
  2649. RETURN
  2650. PROCEDURE fill90
  2651.   CLIP 0,0,640,480
  2652.   REM  BOX 60,430,200,450
  2653.   REM  BOX 58,428,202,452
  2654.   REM BOX 57,427,203,453
  2655.   REM PRINT AT(10,28);"Lade Füllmuster"
  2656.   COLOR 1
  2657.   GRAPHMODE 1
  2658.   f%=0
  2659.   muster$=""
  2660.   muster=0
  2661.   FOR x=0 TO 640 STEP 50
  2662.     DEFFILL f%
  2663.     PBOX x,0,50+x,100
  2664.     INC f%
  2665.   NEXT x
  2666.   FOR x=0 TO 640 STEP 50
  2667.     DEFFILL f%
  2668.     PBOX x,100,50+x,200
  2669.     INC f%
  2670.   NEXT x
  2671.   FOR x=0 TO 640 STEP 50
  2672.     DEFFILL f%
  2673.     PBOX x,200,50+x,300
  2674.     INC f%
  2675.   NEXT x
  2676.   REPEAT
  2677.     DEFMOUSE 3
  2678.     REPEAT
  2679.       EXIT IF MOUSEK=2
  2680.     UNTIL MOUSEK=1
  2681.     IF MOUSEK=1 AND MOUSEX>0 AND MOUSEX<50
  2682.       IF  MOUSEY>0 AND MOUSEY<100
  2683.         f%=0
  2684.       ENDIF
  2685.       IF  MOUSEY>100 AND MOUSEY<200
  2686.         f%=13
  2687.       ENDIF
  2688.       IF MOUSEY>200 AND MOUSEY<300
  2689.         f%=26
  2690.       ENDIF
  2691.     ENDIF
  2692.     IF MOUSEK=1 AND MOUSEX>50 AND MOUSEX<100
  2693.       IF  MOUSEY>0 AND MOUSEY<100
  2694.         f%=1
  2695.       ENDIF
  2696.       IF  MOUSEY>100 AND MOUSEY<200
  2697.         f%=14
  2698.       ENDIF
  2699.       IF MOUSEY>200 AND MOUSEY<300
  2700.         f%=27
  2701.       ENDIF
  2702.     ENDIF
  2703.     IF MOUSEK=1 AND MOUSEX>100 AND MOUSEX<150
  2704.       IF  MOUSEY>0 AND MOUSEY<100
  2705.         f%=2
  2706.       ENDIF
  2707.       IF  MOUSEY>100 AND MOUSEY<200
  2708.         f%=15
  2709.       ENDIF
  2710.       IF MOUSEY>200 AND MOUSEY<300
  2711.         f%=28
  2712.       ENDIF
  2713.     ENDIF
  2714.     IF MOUSEK=1 AND MOUSEX>150 AND MOUSEX<200
  2715.       IF  MOUSEY>0 AND MOUSEY<100
  2716.         f%=3
  2717.       ENDIF
  2718.       IF  MOUSEY>100 AND MOUSEY<200
  2719.         f%=16
  2720.       ENDIF
  2721.       IF MOUSEY>200 AND MOUSEY<300
  2722.         f%=29
  2723.       ENDIF
  2724.     ENDIF
  2725.     IF MOUSEK=1 AND MOUSEX>200 AND MOUSEX<250
  2726.       IF  MOUSEY>0 AND MOUSEY<100
  2727.         f%=4
  2728.       ENDIF
  2729.       IF  MOUSEY>100 AND MOUSEY<200
  2730.         f%=17
  2731.       ENDIF
  2732.       IF MOUSEY>200 AND MOUSEY<300
  2733.         f%=30
  2734.       ENDIF
  2735.     ENDIF
  2736.     IF MOUSEK=1 AND MOUSEX>250 AND MOUSEX<300
  2737.       IF MOUSEY>0 AND MOUSEY<100
  2738.         f%=5
  2739.       ENDIF
  2740.       IF  MOUSEY>100 AND MOUSEY<200
  2741.         f%=18
  2742.       ENDIF
  2743.       IF MOUSEY>200 AND MOUSEY<300
  2744.         f%=31
  2745.       ENDIF
  2746.     ENDIF
  2747.     IF MOUSEK=1 AND MOUSEX>300 AND MOUSEX<350
  2748.       IF  MOUSEY>0 AND MOUSEY<100
  2749.         f%=6
  2750.       ENDIF
  2751.       IF  MOUSEY>100 AND MOUSEY<200
  2752.         f%=19
  2753.       ENDIF
  2754.       IF MOUSEY>200 AND MOUSEY<300
  2755.         f%=32
  2756.       ENDIF
  2757.     ENDIF
  2758.     IF MOUSEK=1 AND MOUSEX>350 AND MOUSEX<404
  2759.       IF  MOUSEY>0 AND MOUSEY<100
  2760.         f%=7
  2761.       ENDIF
  2762.       IF  MOUSEY>100 AND MOUSEY<200
  2763.         f%=20
  2764.       ENDIF
  2765.       IF MOUSEY>200 AND MOUSEY<300
  2766.         f%=33
  2767.       ENDIF
  2768.     ENDIF
  2769.     IF MOUSEK=1 AND MOUSEX>404 AND MOUSEX<450
  2770.       IF MOUSEY>0 AND MOUSEY<100
  2771.         f%=8
  2772.       ENDIF
  2773.       IF  MOUSEY>100 AND MOUSEY<200
  2774.         f%=21
  2775.       ENDIF
  2776.       IF MOUSEY>200 AND MOUSEY<300
  2777.         f%=34
  2778.       ENDIF
  2779.     ENDIF
  2780.     IF MOUSEK=1 AND MOUSEX>450 AND MOUSEX<500
  2781.       IF  MOUSEY>0 AND MOUSEY<100
  2782.         f%=9
  2783.       ENDIF
  2784.       IF  MOUSEY>100 AND MOUSEY<200
  2785.         f%=22
  2786.       ENDIF
  2787.       IF MOUSEY>200 AND MOUSEY<300
  2788.         f%=35
  2789.       ENDIF
  2790.     ENDIF
  2791.     IF MOUSEK=1 AND MOUSEX>500 AND MOUSEX<550
  2792.       IF  MOUSEY>0 AND MOUSEY<100
  2793.         f%=10
  2794.       ENDIF
  2795.       IF  MOUSEY>100 AND MOUSEY<200
  2796.         f%=23
  2797.       ENDIF
  2798.       IF MOUSEY>200 AND MOUSEY<300
  2799.         f%=36
  2800.       ENDIF
  2801.     ENDIF
  2802.     IF MOUSEK=1 AND MOUSEX>550 AND MOUSEX<600
  2803.       IF  MOUSEY>0 AND MOUSEY<100
  2804.         f%=11
  2805.       ENDIF
  2806.       IF  MOUSEY>100 AND MOUSEY<200
  2807.         f%=24
  2808.       ENDIF
  2809.       IF MOUSEY>200 AND MOUSEY<300
  2810.         f%=37
  2811.       ENDIF
  2812.     ENDIF
  2813.     IF MOUSEK=1 AND MOUSEX>600 AND MOUSEX<640
  2814.       IF  MOUSEY>0 AND MOUSEY<100
  2815.         f%=12
  2816.       ENDIF
  2817.       IF  MOUSEY>100 AND MOUSEY<200
  2818.         f%=25
  2819.       ENDIF
  2820.       IF MOUSEY>200 AND MOUSEY<300
  2821.         f%=38
  2822.       ENDIF
  2823.     ENDIF
  2824.     IF MOUSEK=1 AND MOUSEY>404
  2825.       f%=100
  2826.       muster$=""
  2827.       RESTORE muster10
  2828.       FOR i=1 TO 8
  2829.         READ muster
  2830.         muster$=muster$+CHR$(muster)
  2831.       NEXT i
  2832.       muster10:
  2833.       DATA &x11111111
  2834.       DATA &x11000011
  2835.       DATA &x10111101
  2836.       DATA &x10111101
  2837.       DATA &x10111101
  2838.       DATA &x10111101
  2839.       DATA &x10111101
  2840.       DATA &x11000011
  2841.       DATA &x11111111
  2842.       DEFFILL muster$
  2843.     ENDIF
  2844.     IF f%<100
  2845.       DEFFILL f%
  2846.     ELSE
  2847.       DEFFILL muster$
  2848.     ENDIF
  2849.     PBOX 0,300,640,403
  2850.   UNTIL MOUSEK=2
  2851.   CLS
  2852.   GRAPHMODE graf%
  2853.   PUT 0,0,z$
  2854.   CLIP 0,0,640,403
  2855. RETURN
  2856. PROCEDURE xelips90
  2857.   REPEAT
  2858.     GOSUB hilfs_maus
  2859.     WHILE MOUSEK=FALSE
  2860.       MOUSE x%,y%,k%
  2861.       IF fu%=1
  2862.         SELECT b|
  2863.         CASE 0
  2864.           ELLIPSE a%,b%,ABS(a%-x%),ABS(b%-y%)
  2865.         CASE 1
  2866.           ELLIPSE a%,b%,ABS(a%-x%),ABS(b%-y%)
  2867.           ELLIPSE a%,403-1-b%,ABS(a%-x%),ABS(b%-y%)
  2868.         CASE 2
  2869.           ELLIPSE a%,b%,ABS(a%-x%),ABS(b%-y%)
  2870.           ELLIPSE 639-a%,b%,ABS(a%-x%),ABS(b%-y%)
  2871.         CASE 3
  2872.           ELLIPSE a%,b%,ABS(a%-x%),ABS(b%-y%)
  2873.           ELLIPSE 639-a%,b%,ABS(a%-x%),ABS(b%-y%)
  2874.           ELLIPSE a%,403-1-b%,ABS(a%-x%),ABS(b%-y%)
  2875.           ELLIPSE 639-a%,403-1-b%,ABS(a%-x%),ABS(b%-y%)
  2876.         CASE 4
  2877.           ELLIPSE a%,b%,ABS(a%-x%),ABS(b%-y%)
  2878.           ELLIPSE 639-a%,403-1-b%,ABS(a%-x%),ABS(b%-y%)
  2879.         ENDSELECT
  2880.       ELSE
  2881.         SELECT b|
  2882.         CASE 0
  2883.           PELLIPSE a%,b%,ABS(a%-x%),ABS(b%-y%)
  2884.         CASE 1
  2885.           PELLIPSE a%,b%,ABS(a%-x%),ABS(b%-y%)
  2886.           PELLIPSE a%,403-1-b%,ABS(a%-x%),ABS(b%-y%)
  2887.         CASE 2
  2888.           PELLIPSE a%,b%,ABS(a%-x%),ABS(b%-y%)
  2889.           PELLIPSE 639-a%,b%,ABS(a%-x%),ABS(b%-y%)
  2890.         CASE 3
  2891.           PELLIPSE a%,b%,ABS(a%-x%),ABS(b%-y%)
  2892.           PELLIPSE 639-a%,b%,ABS(a%-x%),ABS(b%-y%)
  2893.           PELLIPSE a%,403-1-b%,ABS(a%-x%),ABS(b%-y%)
  2894.           PELLIPSE 639-a%,403-1-b%,ABS(a%-x%),ABS(b%-y%)
  2895.         CASE 4
  2896.           PELLIPSE a%,b%,ABS(a%-x%),ABS(b%-y%)
  2897.           PELLIPSE 639-a%,403-1-b%,ABS(a%-x%),ABS(b%-y%)
  2898.         ENDSELECT
  2899.       ENDIF
  2900.     WEND
  2901.     WHILE MOUSEK=1
  2902.       GRAPHMODE graf%
  2903.       SELECT b|
  2904.       CASE 0
  2905.         ELLIPSE a%,b%,ABS(a%-x%),ABS(b%-y%)
  2906.       CASE 1
  2907.         ELLIPSE a%,b%,ABS(a%-x%),ABS(b%-y%)
  2908.         ELLIPSE a%,403-1-b%,ABS(a%-x%),ABS(b%-y%)
  2909.       CASE 2
  2910.         ELLIPSE a%,b%,ABS(a%-x%),ABS(b%-y%)
  2911.         ELLIPSE 639-a%,b%,ABS(a%-x%),ABS(b%-y%)
  2912.       CASE 3
  2913.         ELLIPSE a%,b%,ABS(a%-x%),ABS(b%-y%)
  2914.         ELLIPSE 639-a%,b%,ABS(a%-x%),ABS(b%-y%)
  2915.         ELLIPSE a%,403-1-b%,ABS(a%-x%),ABS(b%-y%)
  2916.         ELLIPSE 639-a%,403-1-b%,ABS(a%-x%),ABS(b%-y%)
  2917.       CASE 4
  2918.         ELLIPSE a%,b%,ABS(a%-x%),ABS(b%-y%)
  2919.         ELLIPSE 639-a%,403-1-b%,ABS(a%-x%),ABS(b%-y%)
  2920.       ENDSELECT
  2921.     WEND
  2922.   UNTIL MOUSEK=2
  2923. RETURN
  2924. PROCEDURE xkreis90
  2925.   REPEAT
  2926.     GOSUB hilfs_maus
  2927.     WHILE MOUSEK=FALSE
  2928.       MOUSE x%,y%,k%
  2929.       IF fu%=1
  2930.         SELECT b|
  2931.         CASE 0
  2932.           CIRCLE a%,b%,ABS(a%-x%),kreis_1a%,kreis_2a%
  2933.         CASE 1
  2934.           CIRCLE a%,b%,ABS(a%-x%),kreis_1a%,kreis_2a%
  2935.           CIRCLE a%,403-1-b%,ABS(a%-x%),kreis_1a%,kreis_2a%
  2936.         CASE 2
  2937.           CIRCLE a%,b%,ABS(a%-x%),kreis_1a%,kreis_2a%
  2938.           CIRCLE 639-a%,b%,ABS(a%-x%),kreis_1a%,kreis_2a%
  2939.         CASE 3
  2940.           CIRCLE a%,b%,ABS(a%-x%),kreis_1a%,kreis_2a%
  2941.           CIRCLE 639-a%,b%,ABS(a%-x%),kreis_1a%,kreis_2a%
  2942.           CIRCLE a%,403-1-b%,ABS(a%-x%),kreis_1a%,kreis_2a%
  2943.           CIRCLE 639-a%,403-1-b%,ABS(a%-x%),kreis_1a%,kreis_2a%
  2944.         CASE 4
  2945.           CIRCLE a%,b%,ABS(a%-x%),kreis_1a%,kreis_2a%
  2946.           CIRCLE 639-a%,403-1-b%,ABS(a%-x%),kreis_1a%,kreis_2a%
  2947.         ENDSELECT
  2948.       ELSE
  2949.         GRAPHMODE graf%
  2950.         SELECT b|
  2951.         CASE 0
  2952.           PCIRCLE a%,b%,ABS(a%-x%),kreis_1a%,kreis_2a%
  2953.         CASE 1
  2954.           PCIRCLE a%,b%,ABS(a%-x%),kreis_1a%,kreis_2a%
  2955.           PCIRCLE a%,403-1-b%,ABS(a%-x%),kreis_1a%,kreis_2a%
  2956.         CASE 2
  2957.           PCIRCLE a%,b%,ABS(a%-x%),kreis_1a%,kreis_2a%
  2958.           PCIRCLE 639-a%,b%,ABS(a%-x%),kreis_1a%,kreis_2a%
  2959.         CASE 3
  2960.           PCIRCLE a%,b%,ABS(a%-x%),kreis_1a%,kreis_2a%
  2961.           PCIRCLE 639-a%,b%,ABS(a%-x%),kreis_1a%,kreis_2a%
  2962.           PCIRCLE a%,403-1-b%,ABS(a%-x%),kreis_1a%,kreis_2a%
  2963.           PCIRCLE 639-a%,403-1-b%,ABS(a%-x%),kreis_1a%,kreis_2a%
  2964.         CASE 4
  2965.           PCIRCLE a%,b%,ABS(a%-x%),kreis_1a%,kreis_2a%
  2966.           PCIRCLE 639-a%,403-1-b%,ABS(a%-x%),kreis_1a%,kreis_2a%
  2967.         ENDSELECT
  2968.       ENDIF
  2969.     WEND
  2970.     WHILE MOUSEK=1
  2971.       SELECT b|
  2972.       CASE 0
  2973.         CIRCLE a%,b%,ABS(a%-x%),kreis_1a%,kreis_2a%
  2974.       CASE 1
  2975.         CIRCLE a%,b%,ABS(a%-x%),kreis_1a%,kreis_2a%
  2976.         CIRCLE a%,403-1-b%,ABS(a%-x%),kreis_1a%,kreis_2a%
  2977.       CASE 2
  2978.         CIRCLE a%,b%,ABS(a%-x%),kreis_1a%,kreis_2a%
  2979.         CIRCLE 639-a%,b%,ABS(a%-x%),kreis_1a%,kreis_2a%
  2980.       CASE 3
  2981.         CIRCLE a%,b%,ABS(a%-x%),kreis_1a%,kreis_2a%
  2982.         CIRCLE 639-a%,b%,ABS(a%-x%),kreis_1a%,kreis_2a%
  2983.         CIRCLE a%,403-1-b%,ABS(a%-x%),kreis_1a%,kreis_2a%
  2984.         CIRCLE 639-a%,403-1-b%,ABS(a%-x%),kreis_1a%,kreis_2a%
  2985.       CASE 4
  2986.         CIRCLE a%,b%,ABS(a%-x%),kreis_1a%,kreis_2a%
  2987.         CIRCLE 639-a%,403-1-b%,ABS(a%-x%),kreis_1a%,kreis_2a%
  2988.       ENDSELECT
  2989.     WEND
  2990.   UNTIL MOUSEK=2
  2991. RETURN
  2992. PROCEDURE unfill
  2993.   xmax&=639
  2994.   ymax&=403
  2995.   GET 0,0,640,403,z$
  2996.   FOR y%=0 TO ymax&-1
  2997.     GET 0,y%+1,639,y%+1,nachf$
  2998.     PUT 0,y%,nachf$,6
  2999.   NEXT y%
  3000.   GET 0,0,639,403,u$
  3001.   PUT 0,0,z$
  3002.   FOR x%=0 TO xmax&-1
  3003.     GET x%+1,0,x%+1,403,nachf$
  3004.     PUT x%,0,nachf$,6
  3005.   NEXT x%
  3006.   PUT 0,0,u$,7
  3007.   GRAPHMODE graf%
  3008. RETURN
  3009. REM *****  Nr 2 *******
  3010. PROCEDURE zeichne_2
  3011.   x1%=0
  3012.   y1%=0
  3013.   x%=0
  3014.   y%=0
  3015.   flag%=0
  3016.   GET 0,0,640,403,z$
  3017.   REPEAT
  3018.   UNTIL MOUSEK=1
  3019.   DO
  3020.     EXIT IF MOUSEK=2
  3021.     PUT 0,0,z$
  3022.     x1%=MOUSEX-x%
  3023.     y1%=MOUSEY-y%
  3024.     IF flag%=1
  3025.       GOSUB funktion
  3026.     ENDIF
  3027.     IF flag%=2
  3028.       REPEAT
  3029.         PUT 0,0,z$
  3030.         x%=MOUSEX
  3031.         y%=MOUSEY
  3032.         IF NOT MOUSEK=2
  3033.           GOSUB funktion
  3034.         ENDIF
  3035.         WHILE MOUSEK=1
  3036.           GET 0,0,640,403,z$
  3037.         WEND
  3038.       UNTIL MOUSEK=2
  3039.     ENDIF
  3040.     WHILE MOUSEK=1
  3041.       INC flag%
  3042.       IF flag%=1
  3043.         MOUSE x%,y%,mousek
  3044.       ENDIF
  3045.       REPEAT
  3046.       UNTIL MOUSEK=0
  3047.     WEND
  3048.   LOOP
  3049.   GET 0,0,640,403,z$
  3050. RETURN
  3051. PROCEDURE funktion
  3052.   IF a|=3
  3053.     IF fu%=1
  3054.       CIRCLE x%,y%,x1%,kreis_1a%,kreis_2a%
  3055.     ENDIF
  3056.     IF fu%=2
  3057.       PCIRCLE x%,y%,x1%,kreis_1a%,kreis_2a%
  3058.     ENDIF
  3059.   ENDIF
  3060.   IF a|=1
  3061.     IF fu%=1
  3062.       ELLIPSE x%,y%,x1%,y1%,kreis_1a%,kreis_2a%
  3063.     ENDIF
  3064.     IF fu%=2
  3065.       PELLIPSE x%,y%,x1%,y1%,kreis_1a%,kreis_2a%
  3066.     ENDIF
  3067.   ENDIF
  3068.   IF a|=2
  3069.     IF ka%=1 AND fu%=1
  3070.       BOX x%+x1%,y%+y1%,x%,y%
  3071.     ENDIF
  3072.     IF ka%=2  AND fu%=1
  3073.       RBOX x%+x1%,y%+y1%,x%,y%
  3074.     ENDIF
  3075.     IF ka%=1 AND fu%=2
  3076.       PBOX x%+x1%,y%+y1%,x%,y%
  3077.     ENDIF
  3078.     IF ka%=2 AND fu%=2
  3079.       PRBOX x%+x1%,y%+y1%,x%,y%
  3080.     ENDIF
  3081.   ENDIF
  3082. RETURN
  3083.  
  3084.  
  3085.  
  3086.  
  3087.  
  3088.  
  3089.  
  3090.  
  3091.  
  3092.  
  3093.  
  3094.  
  3095.  
  3096.  
  3097.  
  3098.  
  3099.  
  3100.  
  3101.  
  3102.  
  3103.  
  3104.  
  3105.  
  3106.  
  3107.  
  3108.  
  3109.  
  3110.  
  3111.  
  3112.  
  3113.  
  3114.  
  3115.  
  3116.  
  3117.  
  3118.  
  3119.  
  3120.  
  3121.  
  3122.  
  3123.  
  3124.  
  3125.  
  3126.  
  3127.  
  3128.  
  3129.  
  3130.  
  3131.  
  3132.  
  3133.  
  3134.  
  3135.  
  3136.  
  3137.  
  3138.  
  3139.  
  3140.  
  3141.  
  3142.  
  3143.  
  3144.  
  3145.  
  3146.  
  3147.  
  3148.  
  3149.  
  3150.  
  3151.  
  3152.