VC 20 + 8 KByte
3 D-Grafik
5/84, S. 78-80

3D-Joystick-Grafik

ist ein Programm für den VC 20 mit mindestens 8 KByte Speichererweiterung, das es bei völliger Ausnutzung der Bildschirmauflösung des Computers erlaubt, selbst 3 D-Grafiken mit einfachsten Mitteln zu erstellen.

Solche Bilder lassen sich mittels Joystick-Grafik auf komfortable Art und Weise erzeugen

Es folgt eine kleine Anleitung zum Arbeiten mit der »Joystick-Grafik«.

Zeichnen

Es erscheint eine kurze Beschreibung der Möglichkeiten während des Zeichenvorgangs.

f1 — Das Programm kehrt zum Menü zurück (damit ist das gerade Gezeichnete nicht verloren; es kann jederzeit durch »Wiederholen« zurückgerufen werden).

f3 + f5 — Mit diesen beiden Funktionstasten ist es möglich, eine Zeichenroutine zu erstellen und diese später an jeder beliebigen Stelle des Bildschirms abzurufen.

f3 — Drücken, gewünschte Routinezeichnen, wiederum f3 drücken. An jeder beliebigen Stelle mit f5 abrufen. Die Routine »verschwindet« bei Erstellung einer neuen oder bei Unterbrechung des Programmablaufs, nicht aber bei Rückkehr zum Menü.

Funktionstasten steuern

f7 — Durch Druck auf diese Funktionstaste wird ein durch Linien oder durch den Rand begrenzter Raum ausgefüllt. Diese Funktion arbeitet von links nach rechts. Man muß sich zum Ausfüllen eines Raumes also immer ganz links in diesen Raum stellen und dann f7 betätigen, um ihn ganz auszufüllen. Diese Prozedur sowie die der Routinenerstellung erfordert einige Übung, doch lassen sich später gute Effekte erzielen.

1 + 2 — Mit diesen Tasten ist die Geschwindigkeit des Zeichenpunktes zu variieren. Um schwierigere Figuren zu malen ist es ratsam, eine langsame Geschwindigkeit zu wählen, da dann eine größere Genauigkeit erzielt werden kann. Die Tasten sind nur bei Stillstand des Punktes zu betätigen.

Gezeichnet wird mit dem Joystick. Dabei ist unbedingt darauf zu achten, daß der Rand rechts und links (durch Striche markiert) nicht überschritten wird — sonst ist es möglich, daß das Maschinenprogramm versehentlich gelöscht wird. Der Feuerknopf dient zum An- und Ausschalten der Farbe. Auf diese Einstellung ist auch beim Ausfüllen zu achten. Soll eine bereits gezeichnete Linie wieder gelöscht werden, so ist sie einfach mit dem ausgeschalteten Punkt nachzuziehen. Nun ist die Zeichen- und Bildschirmfarbe einzugeben. Bei der Bildschirmfarbe ist die Farbtabelle aus dem VC-Handbuch heranzuziehen, bei der Zeichenfarbe gelten die auf den Farben stehenden Zahlen vermindert um eins. Jetzt wird der Bildschirm umgebaut, und der Spaß kann beginnen.

Wiederholen

Die Zeichen- und Bildschirmfarbe ist, wie oben beschrieben, festzulegen; daraufhin erscheint das eben Gezeichnete, und ebenfalls wieder der Zeichenpunkt in der oberen Hälfte des Bildschirms, so daß weiter gezeichnet werden kann. Damit ist es möglich, eine Zeichnung in beliebigen Farbkombinationen zu betrachten und währenddessen noch zu ändern. Der Bildschirminhalt geht auch bei Programmunterbrechung nicht verloren. Es kann einfach wieder mit RUN gestartet werden, und das Gezeichnete erscheint durch Druck auf die 2 wieder. Bei Wahl des Menüpunktes »Zeichnen« geht der alte Bildschirminhalt jedoch verloren.

Bild einspielen

Bei Druck auf die Taste 3 kann ein auf Band gespeichertes Bild in den Computer geladen werden:

Bild aufnehmen

Natürlich kann ein eben gezeichnetes Bild auch auf Band gespeichert werden:

Leider dauert das Laden und Speichern der Dateien von beziehungsweise auf Kassette recht lange. Die entsprechenden Routinen können jedoch sehr einfach durch Ändern der Gerätenummer für ein Floppy-Disk-Laufwerk umgeschrieben werden.

(Philip Bethge)
4608-5115 Maschinenprogramm
5120-8159 Bildschirmaufbau/Speicherplatz für hochauflösende Grafik
8200-8699 Speicherplatz für Zeichenroutine (beliebig erweiterbar)
8704- Basicprogramm
Speicherbelegung (dezimal)
0 print"{clr}pO44,34:pO8704,0:new":print"{down}{down}load"chr$(34)"grafik2"chr$(34)","peek(186)
1 poke631,19:poke632,13:poke633,131:poke198,3
1 poke36879,25
3 rem******************* grafik           **** by p.bethge      **** 2330 e'foerde    *
4 rem******************* vorprogramm      **** poke44,34        **** poke8740,0:new   *
5 print"{clr}{down}{down}{down}{down}{down}{down}{down}*********************** grafik             ** by fidibus-software*";
6 print"**********************"
9 print"{down}{down}{rght}{rght}{rght}{rght}-bitte warten-"
100 rem******************daten masch-pr.************************
110 fort=0to137:reada:poke4608+t,a:nextt
120 data 169,16,141,0,144,169,46,141,1,144,169,0,141,2,144,169,21,141,3,144
122 data 169,0,133,253,169,16,133,254,160,0,162,0,165,240,157,0,148,138,145,253,24
123 data 152,105,19,168,201,190,208,10,160,0,230,253,165,253,201,19,240,4,232,76,32,18
124 data 96
130 data 169,0,133,253,169,20,133,254,162,12,160,0,169,0,145,253,136,208,249,202,240,7
131 data 160,0,230,254,76,76,18,169,205,141,5,144,169,19,141,2,144
133 data 169,255,133,253,169,19,133,254,160,160,169,128,145,253,136,208,249
134 data 169,63,133,253,169,31,133,254,160,160,169,1,145,253,136,208,249,96
150 fort=0to215:reada:poke4750+t,a:nextt
160 data 169,128,133,249,169,160,133,253,169,25,133,254,169,0,133,163
161 data 169,1,133,250,160,20
164 data 169,127,141,34,145,173,32,145,41,128,133,251,169,255,141,34,145
165 data 173,31,145,41,28,24,101,251,133,251,173,31,145,41,32,133,252
166 data 132,165,165,249,133,166,165,253,133,167,165,254,133,168
167 data 165,251,201,152,208,3,32,138,19,201,24,208,6,32,138,19,32,140,19
168 data 201,28,208,3,32,140,19,201,20,208,6,32,140,19,32,136,19,201,148,208,3
169 data 32,136,19,201,132,208,6,32,136,19,32,173,19,201,140,208,3,32,173,19
170 data 201,136,208,6,32,173,19,32,138,19
171 data 165,252,201,0,208,23,165,250,201,0,208,6,169,1,133,250,208,4,169,0,133,250
172 data 173,31,145,201,94,240,249
173 data 165,250,201,1,208,13,132,164,164,165,56,177,167,229,166,145,167,164,164
174 data 177,253,5,249,145,253
175 data 165,197,201,0,208,2,230,163,201,56,208,2,198,163,201,63,208,3,76,206,19,96
180 fort=0to69:reada:poke5000+t,a:nextt
190 data 200,96
191 data 136,96
192 data 165,249,201,1,240,3,70,249,96,169,128,133,249,165,253,201,96,48,2,230,254
193 data 201,224,208,2,230,254,24,105,160,133,253,96
194 data 165,249,201,128,240,3,6,249,96,169,1,133,249,165,253,201,160,16,2,198,254
195 data 201,0,208,2,198,254,56,233,160,133,253,96
200 fort=0to45:reada:poke5070+t,a:nextt
210 data 132,164,200,192,160,240,13,177,253,5,249,209,253,240,5,145,253,76,208,19
211 data 164,164,136,192,255,240,13,177,253,5,249,209,253,240,5,145,253,76,228,19
212 data 164,164,32,140,19,96
300 rem*******************basic-programm***
305 poke36879,25
310 print"{clr}{down}{down}{down}{down}{rght}{rght}{rght}{rght}{rght}-grafik-"
320 print"{down}{down}{rght}{rght}1.zeichnen            2.wiederholen         3.bild einspielen"
321 print"{rght}{rght}4.bild aufnehmen"
330 geta$
331 ifa$="1"then400
332 ifa$="2"then550
333 ifa$="3"then600
334 ifa$="4"then500
335 goto330
400 rem**zeichnen****
410 print"{clr}{down}{down}{down}{down}{rght}{rght}{rght}{rght}{rght}-grafik-"
411 print"{down}{down}-{rvon}f1{rvof} zurueck{rght}{rght}{rght}{rght}{rght}{rght}{rght}{rght}{rght}{rght}{rght}-{rvon}f3{rvof} routine erstellen{rght}-{rvon}f5{rvof} routine abfragen"
412 print"-{rvon}f7{rvof} ausfuellen{rght}{rght}{rght}{rght}{rght}{rght}{rght}{rght}-zeichnen mit joystick-feuerknopf:'an/aus'"
413 print"-{rvon}1{rvof} langsamer{rght}{rght}{rght}{rght}{rght}{rght}{rght}{rght}{rght}{rght}-{rvon}2{rvof} schneller"
414 print"-rand nicht ueber      schreiten!"
415 input"{down}-zeichenfarbe  0{left}{left}{left}";a:poke240,a
416 input"-schirmfarbe  25{left}{left}{left}{left}";a
433 poke36879,a
434 sys(4608):sys(4672)
435 sys(4750)
440 sys(4772)
450 fort=0topeek(163):nextt
460 geta$
461 ifa$="{f1}"then480
462 ifa$="{f3}"then700
463 ifa$="{f5}"then720
470 goto440
480 print"{clr}":poke36869,192:poke36867,46:poke36866,22:poke36864,12:poke36865,38
481 goto300
500 rem**bild aufn.**
501 print"{down}{down}"
510 open1,1,1,"bild"
520 fort=5120to8159
521 b=peek(t)
522 print#1,b
523 nextt
524 close1
525 goto300
550 rem**wiederhol***
551 input"{down}{down}-zeichenfarbe  0{left}{left}{left}";a:poke240,a
552 input"-schirmfarbe  25{left}{left}{left}{left}";a
553 poke36879,a
560 sys(4608):poke36869,205:poke36866,19:goto435
600 rem**bild einsp.*
610 input"{down}{down}-zeichenfarbe  0{left}{left}{left}";a:poke240,a
611 input"-schirmfarbe  25{left}{left}{left}{left}";a
620 open1,1,0,"bild"
630 poke36879,a:sys(4608):sys(4672)
631 fort=5120to8159
632 input#1,b
633 poket,b
634 nextt
635 close1
640 goto435
650 rem**sondermoegl*
700 rem
701 c=0
710 fort=0to499
711 sys(4772)
712 geta$:ifa$="{f3}"then440
713 ifpeek(251)=156then711
714 poke8200+t,peek(251):c=c+1
715 forr=0topeek(163):nextr
716 nextt
717 geta$:ifa$<>"{f3}"then717
718 poke8200+t,156:goto440
720 rem
730 fort=1toc
732 poke251,peek(8200+t)
733 sys(4806)
735 nextt
736 goto440
740 rem**ende******************
Listing des Grafikprogramms
PDF Diesen Artikel als PDF herunterladen
Mastodon Diesen Artikel auf Mastodon teilen
← Vorheriger ArtikelNächster Artikel →