024
25.04.2013, 23:49 Uhr
funkheld
|
Hallo Volker, jetzt funktioniert die Grafik in Forth mit Variablen. Ich habe jetzt aber nur BC gepusht.
GCLS > Screen einschalten und Pen1 zum schreiben setzen GPSET > ein Punkt setzen GLINETO > Linie vom letzten Punkt zum neuen Punkt GLINE > Linie X0,Y0 nach X1 Y1 GOFF > in den Forth-Textmodus
PS : Das mit den Vertauschen der X und Y-Werte lag an der Verwechslung vom Register H,L und D, E.
Quellcode: | HEX D0F5 CONSTANT PEN0 D0E1 CONSTANT PEN1 D0E5 CONSTANT PEN2 D0D4 CONSTANT PEN3 D1AA CONSTANT PSET D1B2 CONSTANT LINE D1BB CONSTANT LINETO DECIMAL
VARIABLE X0 VARIABLE Y0 VARIABLE X1 VARIABLE Y1
CODE GCLS BC PUSH, PEN0 #) CALL, PEN1 #) CALL, BC POP, NEXT END-CODE
CODE GPSET BC PUSH, X0 #) A LD, A H LD, Y0 #) A LD, A L LD, PSET #) CALL, BC POP, NEXT END-CODE
CODE GLINETO BC PUSH, X1 #) A LD, A H LD, Y1 #) A LD, A L LD, LINETO #) CALL, BC POP, NEXT END-CODE
CODE GLINE BC PUSH, X0 #) A LD, A D LD, Y0 #) A LD, A E LD, X1 #) A LD, A H LD, Y1 #) A LD, A L LD, LINE #) CALL, BC POP, NEXT END-CODE
CODE GOFF BC PUSH, PEN3 #) CALL, BC POP, NEXT END-CODE
: GTEST GCLS
128 X0 ! 128 Y0 ! GPSET
150 X1 ! 10 Y1 ! GLINETO
15 X0 ! 5 Y0 ! 15 X1 ! 240 Y1 ! GLINE
28 X0 ! 28 Y0 ! GPSET
0 X0 ! 0 Y0 ! 255 X1 ! 128 Y1 ! GLINE
KEY DROP GOFF ; |
Gruss peter Dieser Beitrag wurde am 26.04.2013 um 09:28 Uhr von funkheld editiert. |