19.11.2020 Aufrufe

64er Magazin 84_4

Erfolgreiche ePaper selbst erstellen

Machen Sie aus Ihren PDF Publikationen ein blätterbares Flipbook mit unserer einzigartigen Google optimierten e-Paper Software.

C 64-Kurs

Grafik-Grundlagen

J Rf::.M~ ilt-it'lt ... lo.·Il.· .. ~~* ,...**jt P. ~*'**'*.;( it"*j(*~M1t'*'«.·***IHf,**~**+'***********iHf******************"*

2 ht-Jh +.

~ fFfH *

~ Ht,.M~ S F' "- 1 L U

~ kl:.11* "*

" HEH* *

• R1011* MI·,'~rr<ED TH ~IA + HEIMO PONWHH 2102 HAMBURG 93 VERINGSTRASSE 82 *

8 nEMI( .jt.

I h~M~*~~~~~**~*"*~~***~********~~**~~,***********~~***** ***********************

10 POI~E52.48: PUKE~,o.48:POVE532SiI.6: POI<E5.52S1 .b: POV!:.646. I

.0 TE~~" ADRESSE DEZ. HEXA BINA!:.R GRAFIK"

1l:J0 PRI Nl CHR$ ( 147 I .. DAH Tt,.L UNG VON ZE; 1CHEN UND SPE I CHER"

10 4 , >-'kIN r: PRINTCHR.t (18): 1 B (10) : "~=~====-============="

lJ0 PkltHCIIR$(18,: 1,~E«10) "lHO/1A/PONNATH HAMBURG"

115 PkUllr HR$ (18) ; 1 AB (111J) ; "==~=================="

1<101 PRHJ I: ;-Rlin : ~'I-drH" (1) EINSEHEN IN EINEN SPE lLHER"

1':'0 "'<INT:I-Rll<'" (2) D,~RSTELLUNG ElI.ES ZEICHENS"

1~,0 PRIN I: I-'R I NT: PRIN I" DI/TE KENNZIFFER l,jAEHLEN , ..

1"1Il '1:.11',$: IF ,l= .... IHENI611l

110 A=\'AL (An : 1F , I ORA. 11'1'-'.11160

1811l uN(~GOSUBI0ß0. ,'1.100

1'10 GmUII2l121

H'IlIllll I'HIlllCHR.t (J 4/): CllRt (18) ; H\ß (:c) ; "DARSTELLUNG EINES SPEICIIERPLA rZES:"

1010 F'RINT :PRINT" - SPEICHERADRESSE II1l-65535) EHJGE8EN"

lIIl2l1l PRINT"ZURLIECK Mll ZAHL I\U6SERIIRLEi 0 UND 65535":PRINT

112130 INPUT"ADRESSE. : ";AD: IFAD<001~(4D,'65535lHENRETUt<N

11214121 [IE~PEE.V (ADI : PRHn: PRINl: GOSLJBJ 011l1110: GOSLlB211l000: PRINTTE$: PRINT: GOSUB311112111l0

105111 ~'I<HJT: PRI I·n : Gm 0 1010

2121011l PRINICHR$1147IiCHRSI(8): TAB(~):"ZEICHEN-DARSTELLUNGICHARACTERI"

2010 IFTS~IIITHENG06UB411l1ll11l11l

20:2111 PRI" I : ;-R I N-' " GEBE DEN BI LDSCH 1RM COQE' DES"

205111 PRall" DARZUSTELLENDEN ZEICIIENS EIN"

204121 F'RIN I" = SIEIIE. HI\NDBUL.H SEI'] E 1.53 - 1-54 ="

21115121 PRINT:pr--:INT" ZURLIECK NI r ZRHL AUSSE;kHALB 0 UND 51!":F'RINT

L0611l PRIN r .: INPU r"CODE :", A: IFA<1Il0RA>51I I HENFIETURN

20/121 PRINT:F'F<lNTlE$:PRINI

212180 F OkAU~12288+8"ATO 1228s->e*A+7

2100 DE=PEEK(RDI:GOSUBII11121121I21:GOSU820i2112li21:GOSUß312111111l11l:NEXTAD

2110 GETA$: IFA-l>=" "THEN711121

2J20 RETURN

11211'112l0 11 $="":H$="0123456789ABCDEF":D~INr'DE/16):HE$=MID$(H$.D+1,1):D=DE-D*16

1012110 HE$=Ht$+MID$(H$.D+I.II:RETURN

200011l BI$="":DI=DE

01211121 DI-DI/2:D$="I2I":IFD1,>INT(DII IHEND$="I"

2011120 DI=INl (DII:BI =D$+BI$:lfDI>l2lTHEN2001121

2011130 IFLEN(BI$I<81HENBI$="Iil"+BI$:GOT0201113111

21211114121 RETURN

301111110 PßINI rAB' 7-LEN ,SlR-l> (AD) ) i AD: fAB' 13-LEN (STR$ <OE) I) DE, -, AB (16) HE$: TAB (21) BI$,

312112110 FORI=ll0B:W$=MID$(BI$.1.11

3002111 IFW$=" I" I HENPRIN I TAB (3121+1 1CHR$ (18) ;" ": CHR$ (1461;: GOl 0 .$01214121

30030 PRIN" lAB (30+1) ". ":

31111214121 NEXTI

3012150 PR I N r: RETURN

4001111il PRINT: PRIt-H"I(OP IEREN DER ZEICHEN INS R;~M lAB 12288)"

4001111 PRINl" BInE WARTEN"

400LIII POKE56334.PEEK(56334)AND254:POkEI.PEEKI1)AND251

411H2I3111 FORI =I2IT0412195: POKE12288, ] • PEEJ( I 53L'l8+] I: NEXTI

40040 PUKEI,PEEKII)OR4:POKE56334.PEEK(56334)ORI

4012150 POI(E53272, (PEEK (532/21 RND240) +12: r6=1: RE-I URN

READY.

55296 und 56295. Wie er aufgeteilt

ist (Bild 7) steht im Handbuch Seite

139 zusammen mit den Farbkennzahlen.

Wenn wir jetzt zum Beispiel noch

eingeben:

POKE 55296,1 :POKE 55297,3:POKE

55298,7 »Return«

dann sehen wir ein weißes A, ein

cyanfarbenes B und ein gelbes C.

Übrigens, wenn Ihnen die aktuelle

Farbe des Cursors oder der gerade

verwendeten Zeichen nicht

gefällt, dann probieren Sie doch

mal

POKE 646, Farbkennzahl.

Und weil wir gerade bei den Farben

sind, die Speicherzellen 53280

und 53281 steuern, mit Farbkennzahlen

belegt, die Rahmen- und die

Hintergrundfarbe. Mir persönlich

gefällt zum Beispiel folgende Kombination

sehr gut (auf Schwarzweiß­

Bildschirm)

POKE 53280,Il:POKE 53281,11:

POKE 646,0 »Return«

Nun zu den Zeichen. Woher weiß

der Computer, daß er ein A

L1stlng. Das Programm

»SpeiLu(( (Speicherlupe)

drucken muß, wenn eine 1 im Bildschirrnspeicher

steht? Das sagt ihm

das Betriebsystem. Es teilt ihm mit,

daß im Byte 53272 des VIC-II-Chips

eine Kennzahl steht (Bit 1-3, Bit 0

wird nicht beachtet), die ihm wiederum

sagt, wo die Muster für alle

Zeichen zu finden sind. Merkwürdigerweise

deutet diese Kennzahl auf

eine Startadresse der Zeichenmuster

von 4096! Das Zeichen-ROM,

das wir bei unserer anfänglichen

Speicherbegehung als 2. Stock im

Bereich 53248 bis 57343 kennengelernt

haben, ist davon meilenweit

entfernt! 4096 liegt außerdem mitten

in einem Bereich, der ständig

von Basic-Programmen überschrieben

wird.

Die genaue Lösung des Rätsels soll

erst in einer der nächsten Folgen

gegeben werden. Aufgrund einer

technischen Eigenart des VIC-II­

Chips werden vom Zeichen-ROM

zwei Geisterbilder im Bereich 4096

bis 8 191 und im Bereich 36864 bis

40959 erzeugt. Der VIC-II-Chip

»meint«, er hole seine Zeichen-Mu-

ster aus diesen Bereichen. In Wirklichkeit

bezieht er sie im Normalfall

immer aus dem Zeichen-ROM. Das

ist eine Eigenart, die so recht in Alices

Wunderland paßt!

paßt!

Wie sehen diese Zeichen-Muster

aus? Auch dazu können Sie das

Programm »SpeiLu« benutzen.

Wenn Sie sich damit beispielsweise

mal das A ansehen, finden Sie ein

Muster, wie es in Bild 8 dargestellt

ist.

Dieses 8 x 8-Gitter (auch Matrix

genannt) enthält also das Abbild

des Zeichens A. Alle Zeichen sind

auf diese Weise als Punktmuster

gespeichert in jeweils acht Speicherzellen

(hier also von 53256 bis

53263). Ein dunkles Feld bedeutet

ein gesetztes Bit (= I; im Zimmer ist

etwas drin), ein helles Feld ein gelöschtes

Bit (= 0; das Zimmer enthält

nichts).

Das Zeichen-ROM hat an nullter

Stelle von 53248 bis 53255 das Zeichen

mit dem Bildschirmeode 0

(den Klammeraffen @), an erster

Stelle von 53256 bis 53263 - wie

wir sehen - das Zeichen mit dem

Bildschirmeode 1 (also das A) und

so weiter nacheinander in Form

von je acht Bytes als Bit-Muster gespeichert.

Wenn Sie im Handbuch

die Seite 133 f. aufschlagen, dann

können Sie die Tabelle 2 mit dem

Inhalt des Charakter-ROMs besser

verstehen.

Probieren Sie mal aus, sich die

einzelnen Zeichen mit dem Programm

»SpeiLu« durch Eingabe der

Bildschirmeodes (im Handbuch bis

127 als Pokes bezeichnet) abbilden

zu lassen.

Das Programm IISpeiLuc1 (der Name

kommt von »Speicher-Lupe(I)

enthält noch einige für Sie bislang

noch geheimnisvolle Einzelheiten:

die Hexadezimal- und die Binärzahlen,

das Interrupt-System, das Kopieren

des Zeichen-ROMs. Dies alles

hängt zusammen mit der Frage:

Wie kann man sich eigene Zeichen

bauen und verwenden? Wir werden

sie in der nächsten Folge gemeinsam

beantworten.

Mit dem bisher zurückgelegten

Weg durch das Dornengestrüpp

sind wir unserem Ziel, der hochauflösenden

Grafik, schon ein ganzes

Stück nähergekommen. Ich hoffe,

daß Sie nach der Ruhepause bis

zur nächsten Folge die zweite Etappe

der Expedition zu Dornröschen

zusammen mit mir durchführen

werden.

(Heimo Ponnath)

4

Ausgabe 4/April1984

~Y126

Hurra! Ihre Datei wurde hochgeladen und ist bereit für die Veröffentlichung.

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!