mirror of
https://github.com/forth-ev/VolksForth.git
synced 2024-12-01 03:50:44 +00:00
630 lines
39 KiB
Forth
630 lines
39 KiB
Forth
\ *** Block No. 0 Hexblock 0
|
||
\\ *** Line-A Graphic *** cas20130106
|
||
|
||
This file contains the LINE-A graphic routines. While being
|
||
sometimes faster than VDI Routines, LINE-A Functions are not
|
||
supported on some newer Atari ST machines.
|
||
|
||
It is recommended to only use VDI functions in new programs.
|
||
This library is provided for compatibility reasons to be able
|
||
to compile old source code. the programs will probablt not work
|
||
on newer Atari machines.
|
||
|
||
|
||
Examples for the use of LINE-A routines can be found in the file
|
||
DEMO.FB
|
||
|
||
|
||
\ *** Block No. 1 Hexblock 1
|
||
\ Line A - Graphics Loadscreen cas20130106
|
||
|
||
Onlyforth
|
||
\needs Code include assemble.fb
|
||
|
||
.( use of LINE-A is deprecated and will not work on newer )
|
||
.( Atari machines. Please use VDI routines instead! )
|
||
|
||
Vocabulary Graphics Graphics also definitions
|
||
|
||
1 $10 +thru
|
||
|
||
|
||
|
||
|
||
|
||
\ *** Block No. 2 Hexblock 2
|
||
\ Table offsets 26oct86we
|
||
|
||
base @ decimal
|
||
0 >label v_planes 2 >label v_lin_wr
|
||
4 >label _cntrl
|
||
8 >label _intin 12 >label _ptsin
|
||
16 >label _intout 20 >label _ptsout
|
||
24 >label _fg_bp_1 26 >label _fg_bp_2
|
||
28 >label _fg_bp_3 30 >label _fg_bp_4
|
||
32 >label _lstlin 34 >label _ln_mask
|
||
36 >label _wrt_mode 38 >label _x1
|
||
40 >label _y1 42 >label _x2
|
||
44 >label _y2 46 >label _patptr
|
||
50 >label _patmsk 52 >label _multifill
|
||
54 >label _clip 56 >label _xmn_clip
|
||
58 >label _ymn_clip 60 >label _xmx_clip
|
||
\ *** Block No. 3 Hexblock 3
|
||
\ Table offsets 26oct86we
|
||
|
||
62 >label _ymx_clip 64 >label _xacc_dda
|
||
66 >label _dda_inc 68 >label _t_sclsts
|
||
70 >label _mono_status 72 >label _sourcex
|
||
74 >label _sourcey 76 >label _destx
|
||
78 >label _desty 80 >label _delx
|
||
82 >label _dely 84 >label _fbase
|
||
86 >label _fwidth 90 >label _style
|
||
92 >label _litemask 94 >label _skewmask
|
||
96 >label _weight 98 >label _r_off
|
||
100 >label _l_off 102 >label _scale
|
||
104 >label _chup 106 >label _text_fg
|
||
108 >label _scrtchp 112 >label _scrpt2
|
||
114 >label _text_bg 116 >label _copytran
|
||
base !
|
||
\ *** Block No. 4 Hexblock 4
|
||
\ Variable cas20130106
|
||
|
||
Variable xmin_clip Variable xmax_clip
|
||
Variable ymin_clip Variable ymax_clip
|
||
Variable multi_fill 0 multi_fill !
|
||
Variable linemask $FFFF linemask ! \ solid line
|
||
Variable plane1 1 plane1 ! \ black
|
||
Variable plane2 1 plane2 ! \ on
|
||
Variable plane3 0 plane3 ! \ white
|
||
Variable plane4 0 plane4 !
|
||
Variable cur_x 0 cur_x !
|
||
Variable cur_y 0 cur_y !
|
||
Variable wr_mode 0 wr_mode ! \ overwrite
|
||
Variable scr_res 2 scr_res ! \ Hires
|
||
|
||
|
||
\ *** Block No. 5 Hexblock 5
|
||
\ arrays 17sep86we
|
||
|
||
Variable pat_mask 1 pat_mask !
|
||
Variable pattern
|
||
|
||
Create nopattern 0 , 0 ,
|
||
Create fullpattern $FFFF , $FFFF , fullpattern pattern !
|
||
|
||
Variable checking checking on
|
||
Variable clipping clipping off
|
||
|
||
Create a_fonts 4 allot
|
||
Create a_base 4 allot
|
||
|
||
|
||
|
||
\ *** Block No. 6 Hexblock 6
|
||
\ Initialization 17sep86we
|
||
|
||
Create a_setup Assembler
|
||
$A000 , .l A0 a_base R#) move A1 a_fonts R#) move
|
||
.w wr_mode R#) _wrt_mode A0 D) move
|
||
plane1 R#) _fg_bp_1 A0 D) move
|
||
plane2 R#) _fg_bp_2 A0 D) move
|
||
plane3 R#) _fg_bp_2 A0 D) move
|
||
plane4 R#) _fg_bp_4 A0 D) move
|
||
rts end-code
|
||
|
||
|
||
|
||
|
||
|
||
|
||
\ *** Block No. 7 Hexblock 7
|
||
\ line 17sep86we
|
||
|
||
Code line ( x1 y1 x2 y2 -- )
|
||
a_setup bsr
|
||
-1 # _lstlin A0 D) move linemask R#) _ln_mask A0 D) move
|
||
SP ) _y2 A0 D) move SP )+ cur_y R#) move
|
||
SP ) _x2 A0 D) move SP )+ cur_x R#) move
|
||
SP )+ _y1 A0 D) move
|
||
SP )+ _x1 A0 D) move
|
||
$A003 , Next end-code
|
||
|
||
|
||
|
||
|
||
|
||
|
||
\ *** Block No. 8 Hexblock 8
|
||
\ rectangle 17sep86we
|
||
|
||
Code rectangle ( x1 y1 width heigth -- )
|
||
a_setup bsr clipping R#) _clip A0 D) move
|
||
SP )+ D0 move 2 SP D) D0 add D0 _y2 A0 D) move
|
||
SP )+ D0 move 2 SP D) D0 add D0 _x2 A0 D) move
|
||
SP )+ _y1 A0 D) move SP )+ _x1 A0 D) move
|
||
pattern R#) D6 move D6 reg) A1 lea
|
||
.l A1 _patptr A0 D) move .w
|
||
pat_mask R#) _patmsk A0 D) move
|
||
multi_fill R#) _multifill A0 D) move
|
||
xmin_clip R#) _xmn_clip A0 D) move
|
||
ymin_clip R#) _ymn_clip A0 D) move
|
||
xmax_clip R#) _xmx_clip A0 D) move
|
||
ymax_clip R#) _ymx_clip A0 D) move
|
||
$A005 , Next end-code
|
||
\ *** Block No. 9 Hexblock 9
|
||
\ Maus-Functions 17sep86we
|
||
|
||
Code show_mouse
|
||
a_setup bsr .l _cntrl A0 D) A1 move
|
||
.w 2 A1 D) clr 1 # 6 A1 D) move
|
||
.l _intin A0 D) A1 move A1 ) clr $A009 , Next end-code
|
||
|
||
Code hide_mouse $A00A , Next end-code
|
||
|
||
Code form_mouse ( addr -- )
|
||
a_setup bsr .l _intin A0 D) A1 move
|
||
.w SP )+ D6 move D6 reg) A0 lea
|
||
A0 )+ A1 )+ move A0 )+ A1 )+ move 1 # A1 )+ move
|
||
0 # A1 )+ move 1 # A1 )+ move
|
||
$10 D0 moveq D0 DO .l A0 )+ A1 )+ move LOOP
|
||
$A00B , Next end-code
|
||
\ *** Block No. 10 Hexblock A
|
||
\ copyraster bp 12oct86
|
||
|
||
cr .( For copyraster use VDI-Functions !!) cr
|
||
|
||
|
||
|
||
|
||
|
||
|
||
\\
|
||
|
||
$10 loadfrom gem\vdi.scr
|
||
|
||
|
||
|
||
|
||
\ *** Block No. 11 Hexblock B
|
||
\ Checking cas20130106
|
||
|
||
| Create g_limits &320 , &200 , &640 , &200 , &640 , &400 ,
|
||
|
||
Code get_res ( -- flag )
|
||
4 # A7 -) move $0E trap 2 A7 addq D0 SP -) move
|
||
Next end-code
|
||
|
||
| : (check \ checking @ 0= ?exit
|
||
dup g_limits scr_res @ 4 * 2+ + @ > abort" Y-Value too big"
|
||
over g_limits scr_res @ 4 * + @ > abort" X-Value too big" ;
|
||
|
||
Code check ( x y -- x y )
|
||
checking R#) tst 0= IF NEXT THEN ;c: (check ;
|
||
|
||
|
||
\ *** Block No. 12 Hexblock C
|
||
\ relative set draw clipping 18sep86we
|
||
|
||
Code relative ( dx dy -- x y )
|
||
SP )+ D0 move cur_y R#) D0 add
|
||
SP )+ D1 move cur_x R#) D1 add
|
||
D1 SP -) move D0 SP -) move Next end-code
|
||
|
||
: set ( x y -- ) check cur_y ! cur_x ! ;
|
||
: draw ( x y -- ) check cur_x @ cur_y @ 2swap line ;
|
||
|
||
: clip_window ( x1 y1 x2 y2 -- )
|
||
clipping on
|
||
ymax_clip ! xmax_clip ! ymin_clip ! xmin_clip ! ;
|
||
|
||
|
||
|
||
\ *** Block No. 13 Hexblock D
|
||
\ box 18sep86we
|
||
|
||
Code box ( width heigth -- )
|
||
cur_y R#) D4 move D4 D7 move SP )+ D7 add
|
||
cur_x R#) D3 move D3 D5 move SP )+ D5 add
|
||
a_setup bsr D3 _x1 A0 D) move D4 _y1 A0 D) move
|
||
D5 _x2 A0 D) move D4 _y2 A0 D) move $A003 ,
|
||
a_setup bsr D5 _x1 A0 D) move D4 _y1 A0 D) move
|
||
D5 _x2 A0 D) move D7 _y2 A0 D) move $A003 ,
|
||
a_setup bsr D3 _x1 A0 D) move D7 _y1 A0 D) move
|
||
D5 _x2 A0 D) move D7 _y2 A0 D) move $A003 ,
|
||
a_setup bsr D3 _x1 A0 D) move D4 _y1 A0 D) move
|
||
D3 _x2 A0 D) move D7 _y2 A0 D) move $A003 ,
|
||
Next end-code
|
||
|
||
|
||
\ *** Block No. 14 Hexblock E
|
||
\ +sprite -sprite 11dec86we
|
||
|
||
Code +sprite ( sprt_def_blk sprt_sav_blk x y -- )
|
||
SP )+ D1 move SP )+ D0 move
|
||
SP )+ D6 move D6 reg) A2 lea
|
||
SP )+ D6 move D6 reg) A0 lea
|
||
.l $1E A7 -) movem> $A00D , $7800 A7 )+ movem<
|
||
Next end-code
|
||
|
||
Code -sprite ( sprt_sav_blk -- )
|
||
SP )+ D6 move D6 reg) A2 lea
|
||
.l $1E A7 -) movem> $A00C , $7800 A7 )+ movem<
|
||
Next end-code
|
||
|
||
|
||
|
||
\ *** Block No. 15 Hexblock F
|
||
\ put_pixel get_pixel 17sep86we
|
||
|
||
Code put_pixel ( x y color -- )
|
||
a_setup bsr .l a_base R#) A0 move
|
||
_intin A0 D) A1 move .w SP )+ A1 ) move
|
||
.l _ptsin A0 D) A1 move .w SP )+ 2 A1 D) move
|
||
SP )+ A1 ) move
|
||
$A001 , Next end-code
|
||
|
||
Code get_pixel ( x y -- color )
|
||
a_setup bsr
|
||
.l a_base R#) A0 move _ptsin A0 D) A1 move
|
||
.w SP )+ 2 A1 D) move SP )+ A1 ) move
|
||
$A002 , D0 SP -) move Next end-code
|
||
|
||
|
||
\ *** Block No. 16 Hexblock 10
|
||
\ polygon 17sep86we
|
||
|
||
Code polygon ( x1 y1 ... xn yn n )
|
||
a_setup bsr
|
||
clipping R#) _clip A0 D) move
|
||
pattern R#) D6 move D6 reg) A1 lea
|
||
.l A1 _patptr A0 D) move .w
|
||
pat_mask R#) _patmsk A0 D) move
|
||
multi_fill R#) _multifill A0 D) move
|
||
xmin_clip R#) _xmn_clip A0 D) move
|
||
ymin_clip R#) _ymn_clip A0 D) move
|
||
xmax_clip R#) _xmx_clip A0 D) move
|
||
ymax_clip R#) _ymx_clip A0 D) move
|
||
.l _cntrl A0 D) A1 move .w SP ) 2 A1 D) move
|
||
SP )+ D0 move 2 # D0 asl 2 D0 subq D0 D5 move
|
||
$7FFF # D3 move 0 D4 moveq
|
||
\ *** Block No. 17 Hexblock 11
|
||
\ polygon forts. 17sep86we
|
||
|
||
.l _ptsin A0 D) A1 move
|
||
BEGIN .w 0 D0 SP DI) D1 move D1 A1 )+ move D0 1 # btst
|
||
0= IF D1 D3 cmp CC IF D1 D3 move THEN
|
||
D1 D4 cmp CS IF D1 D4 move THEN THEN
|
||
D0 tst 0<> WHILE 2 D0 subq REPEAT
|
||
0 D5 SP DI) A1 )+ move 2 D5 subq 0 D5 SP DI) A1 ) move
|
||
4 D5 addq D5 SP adda
|
||
.l A0 D5 move
|
||
BEGIN D5 A0 move .w D3 _y1 A0 D) move $A006 ,
|
||
1 D3 addq D3 D4 cmp 0= UNTIL
|
||
Next end-code
|
||
|
||
|
||
|
||
\ *** Block No. 18 Hexblock 12
|
||
\
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
\ *** Block No. 19 Hexblock 13
|
||
\ Line A - Graphics Loadscreen
|
||
|
||
|
||
Line-A Routinen erhalten ein eigenes Vocabular.
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
\ *** Block No. 20 Hexblock 14
|
||
\ Table offsets 01jan86we
|
||
|
||
Die Definitionen auf diesem Screen enthalten die sogenannten
|
||
Line_A Variablen. Der Aufruf <EFBFBD>ber $A000 liefert unter anderem
|
||
die Basisadresse dieser Variablen zur<EFBFBD>ck.
|
||
|
||
Wenn diese Definitionen in anderen Programmen mitgenutzt werden
|
||
sollen, m<EFBFBD>ssen diese beiden Screens mit
|
||
|
||
2 LOADFROM LINE_A.SCR
|
||
und 3 LOADFROM LINE_A.SCR
|
||
|
||
eingebunden werden.
|
||
|
||
|
||
|
||
\ *** Block No. 21 Hexblock 15
|
||
\ Table offsets 01jan86we
|
||
|
||
Die Beschreibung der Line_A Variablen findet man in der ent-
|
||
sprechenden Literatur (hoffentlich bald!!).
|
||
|
||
Bei jeder Line_A Routine l<EFBFBD><EFBFBD>t sich am Quelltext sehen, welche
|
||
Variablen gerade benutzt werden. Allerdings sind unsere Unter-
|
||
lagen (ATARI-Entwicklungspaket) auch nicht besonders aussage-
|
||
f<EFBFBD>hig....
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
\ *** Block No. 22 Hexblock 16
|
||
\ Variable bp 12oct86
|
||
|
||
Diese vier Variablen beschreiben das 'Clipping-Window'. Damit
|
||
lassen sich alle Ausgaben auf dieses Window beschr<EFBFBD>nken.
|
||
Anzahl der Planes f<EFBFBD>r F<EFBFBD>llmuster
|
||
Bitmuster f<EFBFBD>r Linien ($FFFF = durchgezogen)
|
||
Mit diesen vier Variablen werden die Farben der Planes fest-
|
||
gelegt.
|
||
|
||
|
||
Hilfsvariable zur Vereinfachung bei Draw. Enth<EFBFBD>lt die Endkoordi-
|
||
naten der zuletzt gezeichneten Linie.
|
||
Schreibmodus: 0=over, 1= trans, 2=exor, 3=invtrans
|
||
Bildschirmaufl<EFBFBD>sung: 0=320x200, 1=320x400, 2=640x400
|
||
|
||
|
||
\ *** Block No. 23 Hexblock 17
|
||
\ arrays 17sep86we
|
||
|
||
Enth<EFBFBD>lt die Anzahl - 1 der Worte in Arrays f<EFBFBD>r F<EFBFBD>llmuster.
|
||
Enth<EFBFBD>lt die Adresse des aktuellen F<EFBFBD>llmusters.
|
||
|
||
Zwei wichtige F<EFBFBD>llmuster: Leer
|
||
und voll
|
||
|
||
Flag, ob die Koordinaten <EFBFBD>berpr<EFBFBD>ft werden sollen (Geschwindigk.)
|
||
Flag, ob mit Clipping gearbeitet wird.
|
||
|
||
speichert die lange Adresse der Zeichs<EFBFBD>tze.
|
||
speichert die lange Basis-Adresse der Line_A Variablen
|
||
|
||
|
||
|
||
\ *** Block No. 24 Hexblock 18
|
||
\ Initialization 17sep86we
|
||
|
||
Wird bei vielen Routinen zu Beginn benutzt.
|
||
$A000 <EFBFBD>bergibt in A0 a_base, in A1 a_fonts
|
||
Schreibmodus
|
||
und die Farben der Planes <EFBFBD>bergeben
|
||
Alle diese Werte werden aus den FORTH-Variablen in die ent-
|
||
sprechenden Line_A Variablen geschrieben.
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
\ *** Block No. 25 Hexblock 19
|
||
\ line 17sep86we
|
||
|
||
zeichnet eine Gerade von (x1,y1) nach (x2,y2).
|
||
Initialisierung
|
||
Original-Ton ATARI: Set it to -1 and forget it !
|
||
Die Werte f<EFBFBD>r x2,y2 werden auch in cur_x und cur_y gemerkt.
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
\ *** Block No. 26 Hexblock 1A
|
||
\ rectangle 17sep86we
|
||
|
||
zeichnet ein gef<EFBFBD>lltes Rechteck mit x1,y1 als oberer linker Ecke
|
||
und width und height als Breite und H<EFBFBD>he.
|
||
Umrechnung von Breite und H<EFBFBD>he in Koordinaten
|
||
|
||
|
||
Adresse des F<EFBFBD>llmusters <EFBFBD>bergeben.
|
||
|
||
Anzahl der Worte im F<EFBFBD>llmuster
|
||
Anzahl der Planes f<EFBFBD>r F<EFBFBD>llmuster
|
||
Koordinaten des Clipping-Rechtecks
|
||
|
||
|
||
|
||
|
||
\ *** Block No. 27 Hexblock 1B
|
||
\ Maus-Functions 17sep86we
|
||
|
||
schaltet Maus-Cursor ein
|
||
CONTRL(1) wird gel<EFBFBD>scht und CONTRL(3) auf 1 gesetzt (???)
|
||
INTIN(0) wird gel<EFBFBD>scht, sonst wird die Anzahl der hide-Aufrufe
|
||
ber<EFBFBD>cksichtigt (s.a. c-flag beim entsprechenden VDI-Aufruf)
|
||
|
||
schaltet Maus-Cursor aus.
|
||
|
||
Damit kann eine eigene Mausform entwickelt werden.
|
||
Adresse enth<EFBFBD>lt ein Array mit folgendem Aufbau:
|
||
Maskenfarbe, Datenfarbe
|
||
16 Worte Maske
|
||
16 Worte Daten
|
||
|
||
|
||
\ *** Block No. 28 Hexblock 1C
|
||
\ copyraster bp 12oct86
|
||
|
||
Die Copyrasterfunktionen verlangen eine sehr komplexe Parameter-
|
||
<EFBFBD>bergabe. Diese ist im File VDI.SCR an der entsprechenden
|
||
Stelle enthalten. Da diese Funktion gegen<EFBFBD>ber der VDI-Funktion
|
||
kaum Geschwindigkeitsvorteile bringt, wurde auf die nochmalige
|
||
Definition hier verzichtet.
|
||
|
||
Wen's interessiert, m<EFBFBD>ge im File VDI.SCR unter Rasterfunctions
|
||
nachlesen.
|
||
|
||
So l<EFBFBD>dt man den entsprechenden Teil der VDI-Bibliothek !
|
||
Dieser Teil wird schon vom Editor ben<EFBFBD>tigt und ist daher im
|
||
System normalerweise schon vorhanden.
|
||
|
||
|
||
\ *** Block No. 29 Hexblock 1D
|
||
\ Checking 18sep86we
|
||
|
||
Array mit den Grenzen f<EFBFBD>r die drei Aufl<EFBFBD>sungsstufen.
|
||
|
||
flag=0 bei 320x200, flag=1 bei 320x400, flag=2 bei 640x400
|
||
|
||
|
||
|
||
<EFBFBD>berpr<EFBFBD>ft, ob x und y innerhalb des Bildschirms liegen.
|
||
Ansonsten erfolgt Abbruch. Diese Pr<EFBFBD>fung kostet Zeit, erspart
|
||
aber Systemabst<EFBFBD>rze bei falschen Parametern.
|
||
|
||
pr<EFBFBD>ft x und y, wenn checking eingeschaltet ist.
|
||
|
||
|
||
|
||
\ *** Block No. 30 Hexblock 1E
|
||
\ relative set draw clipping 18sep86we
|
||
|
||
berechnet aus den Offsets dx und dy und den in cur_y und cur_y
|
||
gespeicherten Werten die neuen Koordinaten x und y.
|
||
|
||
|
||
|
||
setzt cur_x und cur_y
|
||
zeichnet eine Linie von (cur_x,cur_y) nach (x,y).
|
||
|
||
setzt das Clipping-Window und schaltet clipping ein.
|
||
|
||
|
||
|
||
|
||
|
||
\ *** Block No. 31 Hexblock 1F
|
||
\ box 18sep86we
|
||
|
||
zeichnet ein ungef<EFBFBD>lltes Rechteck mit der Breite width und H<EFBFBD>he
|
||
height. Die Koordinaten der linken oberen Ecke werden aus
|
||
cur_x und cur_y entnommen.
|
||
Das ganze besteht aus vier einzelnen Geraden.
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
\ *** Block No. 32 Hexblock 20
|
||
\ +sprite -sprite 17sep86we
|
||
|
||
zeichnet ein Sprite und speichert den Bildschirm
|
||
sprt_def_blk enth<EFBFBD>lt die Sprite-Daten
|
||
sprt_sav_blk ist die Adresse des Zwischenspeichers f<EFBFBD>r den Bild-
|
||
schirm. Es werden pro Plane 64 Byte ben<EFBFBD>tigt.
|
||
(x,y) ist der 'Hotspot' des Sprites.
|
||
|
||
l<EFBFBD>scht das Sprite und restauriert den Bildschirm.
|
||
|
||
Der sprt_def_blk hat folgenden Aufbau:
|
||
x-offset zum Hotspot, y-offset zum Hotspot
|
||
Format-Flag, Hintergrundfarbe, Zeichenfarbe
|
||
32 Worte mit Muster:
|
||
Hintergrund 1.Zeile, Vordergrund 1.Zeile
|
||
Hintergrund 2.Zeile, Vordergrund 2.Zeile usw.
|
||
\ *** Block No. 33 Hexblock 21
|
||
\ put_pixel get_pixel 17sep86we
|
||
|
||
zeichnet ein Pixel am Punkt (x,y) mit Farbe color.
|
||
|
||
Man kann definieren:
|
||
: plot ( x y -- ) 1 putpixel ;
|
||
: unplot ( x y -- ) 0 putpixel ;
|
||
|
||
|
||
color ist die Farbe des Punktes (x,y).
|
||
|
||
|
||
|
||
|
||
|
||
|
||
\ *** Block No. 34 Hexblock 22
|
||
\ polygon 17sep86we
|
||
|
||
zeichnet ein n-Eck mit den Eckpunkten (x1,y1) ... (xn,yn).
|
||
|
||
Clipping auswerten
|
||
F<EFBFBD>llmuster <EFBFBD>bergeben
|
||
|
||
F<EFBFBD>llmustermaske
|
||
und Anzahl der Planes <EFBFBD>bergeben
|
||
Clipping-Window setzen
|
||
|
||
|
||
|
||
Anzahl der Ecken
|
||
Eckpunkte ins ptsin-Array <EFBFBD>bernehmen
|
||
D3 und D4 enthalten die Koordianten des gr<EFBFBD><EFBFBD>ten Punktes
|
||
\ *** Block No. 35 Hexblock 23
|
||
\ polygon forts. 17sep86we
|
||
|
||
f<EFBFBD>r die F<EFBFBD>llfunktion
|
||
Werte <EFBFBD>bergeben und D3,D4 ggf updaten.
|
||
|
||
|
||
|
||
ersten Punkt wiederholen, vereinfacht die <EFBFBD>bergabe
|
||
|
||
$A006 so oft aufrufen, bis das n-Eck vollst<EFBFBD>ndig gef<EFBFBD>llt ist.
|
||
|
||
|
||
|
||
|
||
|
||
|
||
\ *** Block No. 36 Hexblock 24
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|