C 64
Grafik

Hi-Text

Hi-Text ist als Programmbaustein zur Ergänzung von Grafikerweiterungen gedacht. Mit ihm lassen sich die im Zeichensatzspeicher vorhandenen 512 Zeichen im Quasi-Direktmodus vor, während oder nach der Erstellung einer Hires-Grafik darstellen.

Das Programm entstand aus folgender Überlegung: Zum Beschriften von Grafikbildern wäre ein Auswählen der Zeichen, der Farbe, des Darstellungsmodus und natürlich auch der Position beim »Schreiben« sehr viel geeigneter als beim Erstellen des Programms. Allein schon wegen der dadurch möglichen sofortigen Kontrolle und eventuellen Korrektur.

Ich glaube, daß alle, die mit Hires-Grafik umgehen, von dem Einsatz des Programms profitieren können.

Kurzbeschreibung

Hi-Text ist ein Programmodul zur Darstellung der im Char-ROM des C 64 vorhandenen 512 Zeichen auf dem Hires-Bildschirm. Eine Besonderheit gebenüber den aus diversen Befehlserweiterungen bekannten »TEXT«-Befehlen ist die Tatsache, daß die Zeichen nach Aufruf des Programms über die Tastatur quasi im Direktmodus eingegeben werden, nachdem Farbe, Darstellungsmodus und Position direkt gewählt wurden. Das Programm hat eine Länge von 542 Byte. Da Hi-Text die Startadressen von Bit-Map und VideoRAM selbsttätig errechnet, kann es auch mit Grafikerweiterungen zusammenarbeiten, die mehrere Grafikseiten verwenden.

Einsatzmöglichkeiten

Das Programm ist bewußt als Programmodul konzipiert, das heißt, es soll zu allen Grafikerweiterungen passen. Dazu ist es notwendig, daß es ohne allzu großen Aufwand verschiebbar ist, denn nicht bei jeder Grafikerweiterung kann das Programm ab Adresse $C000 bleiben (zum Beispiel Turtle-Grafik im 64'er, Ausgabe 11/84). Assemblerprogrammierer können das Programm durch Ändern der Startadresse im Quellprogramm in einen ihnen passenden Bereich verschieben. Um jedoch auch allen anderen eine freie Verwendung zu ermöglichen, habe ich das Hilfsprogramm (Listing 3) geschrieben. Es liest das Programm von Diskette ein, legt es am oberen Ende des freien Basic-Speichers ab und schützt es vor dem Überschreiben durch Basic. Das Programm wurde mit verschiedenen Basic-Erweiterungen getestet. Es arbeitete stets einwandfrei.

Während der Entstehung des Programms wurde Hires 3.1 (aus der 64'er, Ausgaben 2 und 3/85) veröffentlicht. Bei dieser Grafikerweiterung gibt es einen ungenutzten Bereich ab Adresse $89B8, der jedesmal mitabgespeichert wird. Hier bietet sich ein Einbau von »Hi-Text« geradezu an. Der erste Teil (Berechnung der Basisadressen) kann natürlich entfallen; es genügt die High-Bytes der Startadressen von Bitmap ($A0) und VideoRAM ($8C) direkt zu übergeben. Der Einfachheit halber ist das Programm »Hi-Text 2.0« (Listing 1) schon auf diesen Bereich abgestimmt. Eingebaut wird das Programm wie folgt:

Umgang mit dem Programm

Aufruf durch SYS Adresse .»Schreiben« wie im Direktmodus. Zum Beenden »RETURN« drücken (wichtig vor Hardcopies, damit der Cursor verschwindet!)

Und nun viel Spaß beim Schreiben und Zeichnen in der hochauflösenden Grafik!

(W. Gachot/gk)

Leserservice-Diskette

Auf der zu jeder 64'er-Ausgabe lieferbaren Diskette befinden sich auch die hier veröffentlichten Programme (Listing 1 bis 3) und Hires-3 mit integriertem Hi-Text. Laden Sie dann also nur Hires3.2 (mit …,8,1) und anschließend DEMO (..,8). Mit RUN starten. Nachdem sich der Cursor meldet, können Sie über die Tastatur beliebigen Text eingeben.

PROGRAMM : HI-TEXT 2.0    89B8 8BD7
-----------------------------------
89B8 : A9 A0 85 A8 A9 8C 85 A6   8A
89C0 : A9 00 85 CC 85 D3 85 D6   1F
89C8 : 8D D6 8B 85 A5 85 A7 A8   CA
89D0 : A9 FF 8D D8 8B A9 D0 8D   5C
89D8 : DB 8B B1 A5 4A 4A 4A 4A   4F
89E0 : 8D 86 02 20 B8 8B AD 86   E1
89E8 : 02 8D 20 D0 AD 18 D0 29   04
89F0 : 02 F0 0A AD DB 8B 09 08   F1
89F8 : 8D DB 8B D0 08 AD DB 8B   E4
8A00 : 29 F7 8D DB 8B 20 E4 FF   51
8A08 : D0 1E AD D6 8B F0 09 AD   ED
8A10 : D8 8B D0 03 20 B8 8B 60   F9
8A18 : A5 CF CD D7 8B F0 CD 8D   A6
8A20 : D7 8B 20 B8 8B 4C EC 89   BE
8A28 : 8D D9 8B AD D8 8B D0 03   6D
8A30 : 20 B8 8B AD D9 8B 20 CB   57
8A38 : E8 C9 91 D0 20 A5 D6 F0   F0
8A40 : 1C C6 D6 38 A5 A7 E9 40   3C
8A48 : 85 A7 A5 A8 E9 01 85 A8   2D
8A50 : 38 A5 A5 E9 28 85 A5 A5   92
8A58 : A6 E9 00 85 A6 C9 11 D0   42
8A60 : 22 A5 D6 C9 18 F0 1C E6   8B
8A68 : D6 18 A5 A7 69 40 85 A7   A7
8A70 : A5 A8 69 01 85 A8 18 A5   2D
8A78 : A5 69 28 85 A5 A5 A6 69   82
8A80 : 00 85 A6 C9 9D D0 2A A5   7A
8A88 : D3 D0 17 A5 D6 F0 22 A9   0F
8A90 : 28 85 D3 C6 D6 38 A5 A5   59
8A98 : E9 28 85 A5 A5 A6 E9 00   E3
8AA0 : 85 A6 38 A5 A7 E9 08 85   30
8AA8 : A7 A5 A8 E9 00 85 A8 C6   E5
8AB0 : D3 C9 1D D0 31 A5 D3 C9   EC
8AB8 : 27 90 19 A5 D6 C9 18 F0   20
8AC0 : 22 A9 FF 85 D3 E6 D6 18   67
8AC8 : A5 A5 69 28 85 A5 A5 A6   09
8AD0 : 69 00 85 A6 18 A5 A7 69   90
8AD8 : 08 85 A7 A5 A8 69 00 85   22
8AE0 : A8 E6 D3 4C E3 89 C9 12   50
8AE8 : D0 08 AD DB 8B 09 04 8D   CF
8AF0 : DB 8B C9 92 D0 08 AD DB   11
8AF8 : 8B 29 FB 8D DB 8B C9 13   30
8B00 : D0 12 A9 00 85 D3 85 D6   FE
8B08 : 85 A5 85 A7 A9 A0 85 A8   BD
8B10 : A9 8C 85 A6 C9 0D D0 05   88
8B18 : EE D6 8B E6 CC AD D9 8B   EA
8B20 : 18 C9 FF 90 04 A9 5E B0   97
8B28 : 33 C9 C0 90 04 29 7F B0   6B
8B30 : 2B C9 A0 90 06 29 7F 09   34
8B38 : 40 B0 21 C9 80 90 02 B0   48
8B40 : 18 C9 60 90 04 29 5F B0   CF
8B48 : 13 C9 40 90 04 29 1F B0   C9
8B50 : 0B C9 20 90 04 29 3F B0   42
8B58 : 03 4C E3 89 A2 00 8E DD   CB
8B60 : 8B 8D DC 8B 18 0E DC 8B   D7
8B68 : 2E DD 8B 0E DC 8B 2E DD   C8
8B70 : 8B 0E DC 8B 2E DD 8B 18   DB
8B78 : A9 00 6D DC 8B 85 A9 AD   FF
8B80 : DB 8B 6D DD 8B 85 AA 78   B8
8B88 : A5 01 29 FB 85 01 A0 07   69
8B90 : B1 A9 91 A7 88 10 F9 A5   AB
8B98 : 01 09 04 85 01 58 AD 86   66
8BA0 : 02 0A 0A 0A 0A 8D DA 8B   FB
8BA8 : A4 D3 B1 A5 29 0F 0D DA   4C
8BB0 : 8B 91 A5 A9 1D 4C B5 8A   C2
8BB8 : A0 07 78 A9 35 85 01 B1   16
8BC0 : A7 49 FF 91 A7 88 10 F7   2D
8BC8 : A9 37 85 01 58 AD D8 8B   FC
8BD0 : 49 FF 8D D8 8B 60 00      2A
Listing 1. Hi-Text 2.0 kann in Hires-3 eingebaut werden, aber auch in andere Basic-Erweiterungen.
10 rem *** demo ***
20 rem hi-text ist integriert
30 rem aufruf mit sys 35256
40 poke56,128:poke52,128:sys 37498
50 hfl,7,6
60 for i=20to300 step 10
70 lin,i,0,160,199
80 lin,160,0,i,199
90 next
100 sys 35256
110 pau,5
120 hof
Listing 2. In Verbindung mit Hires-3 läuft dieses Demo-Programm.
10 rem hilfsprogramm zum verschieben von hi-text
20 rem erst das grafikprogramm laden und evtl. vor dem ueberschreiben
30 rem durch basic schuetzen!
40 printchr$(147):print
50 print"diskette mit 'hi-text' einlegen
60 print
70 print"dann return druecken!"
80 gett$:ift$<>chr$(13) then 80
90 sa=peek(55)+256*peek(56)-560
100 hs=int(sa/256):ls=sa-hs *256
110 poke55,ls :poke56,hs
120 poke51,ls :poke52,hs
130 open 1,8,2,"hi-text"
140 get#1,a$:ifa$="" then a$=chr$(0)
150 get#1,b$:ifb$="" then b$=chr$(0)
160 fori=0 to542
170 get#1,a$:ifa$="" then a$=chr$(0)
180 a=asc(a$)
190 poke sa+i,a
200 next
210 close1
300 rem aenderung der sprungadressen
310 i =sa+515:ih=int(i/256):il=i-ih*256
320 e =sa+ 85:eh=int(e/256):el=e-eh*256
330 s =sa+ 76:sh=int(s/256):sl=s-sh*256
340 r =sa+275:rh=int(r/256):rl=r-rh*256
360 pokesa+ 77,il:pokesa+ 78,ih
370 pokesa+120,il:pokesa+121,ih
380 pokesa+132,il:pokesa+133,ih
390 pokesa+144,il:pokesa+145,ih
400 pokesa+135,el:pokesa+136,eh
410 pokesa+322,sl:pokesa+323,sh
420 pokesa+434,sl:pokesa+435,sh
430 pokesa+513,rl:pokesa+514,rh
450 printchr$(147)
460 print"hi-text ist jetzt im speicher!"
470 print
480 print"aufruf mit sys";sa
490 new
Listing 3. Hi-Text kann mit diesem Programm verschoben werden, aber auch natürlich mit dem SMON
PDF Diesen Artikel als PDF herunterladen
Mastodon Diesen Artikel auf Mastodon teilen
← Vorheriger ArtikelNächster Artikel →