Jump to content



0

Grafik-Linie with XFORTH (3 COLOR)


No replies to this topic

#1 funkheld OFFLINE  

funkheld

    Space Invader

  • 26 posts

Posted Sat Jan 21, 2012 3:34 PM

Grafik-Linie with XFORTH :

HEX

00 VARIABLE DLIST -2 ALLOT
70 C, 70 C, 70 C,
4D C,  9060  ,
0D0D , 0D0D , 0D0D , 0D0D ,
0D0D , 0D0D , 0D0D , 0D0D ,
0D0D , 0D0D , 0D0D , 0D0D ,
0D0D , 0D0D , 0D0D , 0D0D ,
0D0D , 0D0D , 0D0D , 0D0D ,
0D0D , 0D0D , 0D0D , 0D0D ,
0D0D , 0D0D , 0D0D , 0D0D ,
0D0D , 0D0D , 0D0D , 0D0D ,
0D0D , 0D0D , 0D0D , 0D0D ,
0D0D , 0D0D , 0D0D ,  0D C,
42 C,  BF60  ,
0202 , 02 ,
41 C, DLIST ,

230  CONSTANT SDLSTL
9060 CONSTANT SCREEN0
02C4 CONSTANT COLOR0
02C5 CONSTANT COLOR1
02C6 CONSTANT COLOR2
02C8 CONSTANT COLOR4

00 VARIABLE COL
00 VARIABLE CO0
00 VARIABLE CO1
00 VARIABLE CO2
00 VARIABLE CO3

00 VARIABLE X0
00 VARIABLE Y0
00 VARIABLE X1
00 VARIABLE Y1
00 VARIABLE DX
00 VARIABLE DY
00 VARIABLE SX
00 VARIABLE SY
00 VARIABLE ERR
00 VARIABLE E2

: GCLS SCREEN0 C80 0 FILL ;

: COLOR
  DUP 0 = IF 0  CO0 !  0 CO1 ! 0 CO2 ! 0 CO3 ! THEN
  DUP 1 = IF 40 CO0 ! 10 CO1 ! 4 CO2 ! 1 CO3 ! THEN
  DUP 2 = IF 80 CO0 ! 20 CO1 ! 8 CO2 ! 2 CO3 ! THEN
	 3 = IF C0 CO0 ! 30 CO1 ! C CO2 ! 3 CO3 ! THEN ;

: PLOTXY
SWAP 4 /MOD 2 PICK
  DUP 0 = IF CO0 @ COL ! THEN
  DUP 1 = IF CO1 @ COL ! THEN
  DUP 2 = IF CO2 @ COL ! THEN
	 3 = IF CO3 @ COL ! THEN
  SCREEN0 + SWAP DROP SWAP 28 * + DUP @  COL @ XOR SWAP ! ;

: LINIE
  X1 @ X0 @ - ABS DX !

  X0 @ X1 @ <
  IF
	1 SX ! Y1 @ Y0 @ - ABS -1 * DY !
  ELSE
   -1 SX ! Y1 @ Y0 @ - ABS -1 * DY !
  THEN

  Y0 @ Y1 @ <
  IF
	1 SY ! DX @ DY @ + ERR !
  ELSE
	-1 SY ! DX @ DY @ + ERR !
  THEN

  X0 @ Y0 @ PLOTXY

  BEGIN
	X0 @  X1 @ = Y0 @ Y1 @ = AND 0 =
	WHILE
		2 ERR @ * E2 !
		E2 @ DY @ > IF ERR @ DY @ + ERR ! X0 @ SX @ + X0 ! THEN
		E2 @ DX @ < IF ERR @ DX @ + ERR ! Y0 @ SY @ + Y0 ! THEN
		X0 @ Y0 @ PLOTXY
	REPEAT ;

: INIT
	0C COLOR4 C!
	94 COLOR2 C!
	DLIST SDLSTL !
	4 2BF C!
	2 COLOR
	0 X0 ! 0 Y0 ! 4E X1 ! 4E Y1 ! LINIE
	4E X0 ! 4E Y0 ! 9E X1 ! 0 Y1 ! LINIE
   9E X0 ! 0 Y0 ! 0 X1 ! 0 Y1 ! LINIE ;

Attached Thumbnails

  • linie.jpg

Edited by funkheld, Sat Jan 21, 2012 3:36 PM.





1 user(s) are reading this topic

0 members, 1 guests, 0 anonymous users