Hardcopy-Routinen

Hardcopy Itoh 8510 mit Hi-Eddi

Besitzern des Itoh 8510 bietet dieses Programm die Möglichkeit, von Hi-Eddi Hardcopies zu erzeugen.

Mit dem Hi-Eddi aus der Ausgabe 1/85 vom 64’er lassen sich mit minimaler Hardware-Ausrüstung (C 64, Diskettenlaufwerk 1541, Joystick) sehr komfortable Grafiken erzeugen. Doch was nützt die schönste Grafik auf Bildschirm oder Diskette, wenn man sie nicht ausdrucken kann?

Die in Ausgabe 1/85 veröffentlichte Druckroutine Hi-Print arbeitet leider nur mit Epson-Druckern zusammen. Da der Itoh 8510 ein verbreiteter und guter Drucker ist, wurden für ihn die im folgenden beschriebenen Programme erstellt. Er wird über eine Centronics-Schnittstelle via User-Port am C 64 angeschlossen.

Zusätzlich wurden einige Features eingebaut, die die Epson-Hardcopy-Routine nicht besitzt. So wäre die Vorgabe von Leerspalten vom linken Rand aus (falls noch Platz ist) eine nützliche Sache. Um zwei Grafiken in der Horizontalen aneinander zu setzen, wurde dazu die volle Bildschirmbreite in 40 Spalten zu je 8 (40 x 8 = 320) Punkten (wie im Textmodus) organisiert. Um jetzt zwei Grafiken nebeneinander zu plazieren, kann dazu die Startspalte (wird mitgedruckt) der links stehenden Grafik (Grafik Nr. 1) und die Endspalte (wird nicht mitgedruckt) der rechts stehenden Grafik (Grafik Nr. 2) vorgewählt werden.

Die Ausdruckbreite wird dazu in drei Sektoren von links nach rechts aufgeteilt.
0. Sektor: Abstand (SPC) in Punkten vom linken Papierrand.
1. Sektor: Grafik Nr. 1 (Bild-Nr.; Startspalte)
Bild-Nr. = 0 = > kein Bild, Startspalte = 48
Bild wird rechtsbündig gedruckt
0 < = Startspalte < = 39
Startspalte = 0 = > volle Hardcopy von Grafik Nr. 1
2. Sektor: Grafik Nr. 2 (Bild-Nr.; Endspalte)
Bild-Nr. = 0 = > kein Bild, Endspalte = 8
Bild wird linksbündig gedruckt
1 < = Endspalte < = 40
Endspalte = 40 = > volle Hardcopy von Grafik Nr. 2

Insgesamt kann folgende Formel für die Aufteilung der drei Sektoren angegeben werden:

SPC + (40-Startspalte)*8 + Endspalte*8 = 640

Im Steuerprogramm werden nacheinander die Bild-Nr. von Sektor 1, dann (falls Bild-Nr. < > 0)die Startspalte von Grafik-Nr. 1, dann die Bild-Nr. von Sektor 2 und (falls Bild-Nr. < > 0) die Endspalte von Grafik-Nr. 2, und schließlich die Anzahl der Leerspalten vor Grafik-Nr. 1 abgefragt.

Die Maximalwerte werden stets durch das Steuerprogramm vorgegeben, so daß in vielen Fällen ein einfaches RETURN genügt.

Um die Druckroutine namens »HI-P(ITOH8510)« für den ITOH 8510 in das Steuerprogramm Hi-Eddi einzubilden, mußte dieses auf die Bedürfnisse der Druckroutine angepaßt werden und heißt nun »HI-E(ITOH8510)«.

Dazu wurden (aus Speicherplatzgründen) alle Zeilen neu numeriert und die Textausgabepassagen verkürzt. In den Programmzeilen 24 und folgende befindet sich das Drucksteuerprogramm.

Es wird hierbei dringend davor gewarnt, das neue Steuerprogramm HI-E(ITOH8510) zu erweitern oder zu ändern, da sonst das Steuerprogramm (inklusive Variablen) nicht mehr in den verfügbaren Basic-Speicherplatz paßt. Dies gilt auch für den eingebauten Parametercheck, da in der Druckroutine selber keine Plausibilitätsprüfung mehr vorgenommen wird.

Für die Initialisierung des Druckers und die Ausgabe der Hardcopy sollte sich der Drucker im SELECT-Modus befinden, da sonst das Programm hängenbleibt (Acknowledge-Signal wird erwartet).

Falls aus irgendeinem Grunde (Drucker beziehungsweise Kabel defekt, falsch oder gar nicht angeschlossen) dieser Fall eintritt, kann mit RUN/STOP-RESTORE die Druckroutine beendet werden. Hi-Eddi kann dann wieder mit RUN gestartet werden. (Das RUN ist notwendig, um HI-EXE nachzuladen, da aus Speicherplatzgründen nach der Anwahl des Drucksteuerprogramms immer die Druckroutine über HI-EXE nachgeladen wird.)

Der Drucker sollte mittels der DIP-Schalter auf CR = CR und 8-Bit-Data eingestellt sein. Da am Anfang kein Carriage Return ausgegeben wird, sollte man dafür sorgen, daß der Druckkopf sich auf einer freien Zeile befindet. Außerdem sollte das Papier zentriert werden, da sich der Ausdruck über die volle Papierbreite erstrecken kann.

Die Anpassung des ITOH 8510A an Hi-Eddi besteht im wesentlichen aus zwei Schriften:

  1. HI-P(ITOH8510).L abtippen und starten. Dieses ist ein Ladeprogramm, das die Druckroutine HI-P(ITOH8510) auf Diskette ablegt. Es wird (nach erfolgreichem Test) zum Arbeiten mit Hi-Eddi nicht mehr benötigt.
  2. Hi-E(ITOH8510) abtippen und speichern. Es ist das angepaßte Steuerprogramm und ersetzt das alte Hi-Eddi,

So, das wär's eigentlich. Hi-Eddi mit Itoh 8510A ist nun lauffähig. Mir bleibt nur noch, viel Erfolg mit Hi-Eddi zu wünschen.

(Frank Ziesche/rg)
10 rem #### programm zur erzeugung #####
20 rem ## von hi-p(itoh8510) auf disk ##
30 rem autor: f.ziesche' am: 13. 2.85 ##
40 restore:ps=0:rem data's ueberpruefen
50 print"{clr}{down} data-zeilen werden ueberpruft !"
60 read by : if by < 0 then 80
70 ps = ps + by : goto 60
80 if ps+by <> 0 then print"fehler in data-zeilen !":list160-
90 input"{down} diskette eingelegt   ja{left}{left}{left}{left}";in$:ifin$<>"ja"then 90
100 restore : open3,8,3,"hi-p(itoh8510),p,w"
110 print#3,chr$(0);chr$(13);:rem startadresse
120 read by : if by < 0 then 140
130 print#3,chr$(by); : goto120
140 close3 : print"{down} programm wurde erzeugt !"
150 end
160 rem data-zeilen fuer hi-p(itoh8510)
170 data165,1,72,169,55,133,1,173,87,13,32,186,13,141,170,14,173,107,13,32
180 data186,13,141,223,14,169,0,141,164,14,141,217,14,141,174,13,32,248,13
190 data32,212,13,169,27,32,111,14,169,70,32,111,14,169,0,160,0,32,47,14
200 data169,0,141,148,14,169,0,141,201,14,169,27,32,111,14,169,83,32,111
210 data14,169,0,160,0,32,47,14,169,0,240,16,32,135,14,32,241,14,238,148
220 data14,173,148,14,201,40,144,240,169,0,240,16,32,188,14,32,241,14,238
230 data201,14,173,201,14,201,0,144,240,24,173,164,14,105,64,141,164,14,173
240 data170,14,105,1,141,170,14,24,173,217,14,105,64,141,217,14,173,223,14
250 data105,1,141,223,14,169,13,32,111,14,169,10,32,111,14,238,174,13,169
260 data0,201,25,176,3,76,42,13,104,133,1,96,162,7,221,149,31,240,4,202,208
270 data248,232,138,10,10,10,10,10,96,0,0,0,0,0,0,0,0,24,173,123,13,105,40
280 data56,237,60,13,133,251,169,0,133,252,160,3,6,251,38,252,136,208,249
290 data165,251,164,252,141,80,13,140,82,13,96,169,255,141,3,221,173,2,221
300 data9,4,141,2,221,173,0,221,9,4,141,0,221,162,0,189,27,14,32,111,14,232
310 data224,20,144,245,96,127,27,93,27,78,27,84,49,54,27,102,27,76,48,48
320 data48,27,48,27,62,133,99,132,98,56,162,144,32,73,188,32,221,189,162
330 data1,189,0,1,240,6,232,224,6,144,246,202,202,142,81,14,56,169,4,233
340 data0,240,9,168,169,48,32,111,14,136,208,248,172,81,14,240,12,162,1,189
350 data0,1,32,111,14,232,136,208,246,96,141,1,221,173,0,221,41,251,141,0
360 data221,9,4,141,0,221,173,13,221,41,16,240,249,96,120,165,1,72,41,248
370 data133,1,169,0,133,252,169,0,133,251,160,3,6,251,38,252,136,208,249
380 data24,165,251,105,0,133,251,165,252,105,0,133,252,177,251,153,204,13
390 data200,192,8,144,246,104,133,1,88,96,120,165,1,72,41,248,133,1,169,0
400 data133,252,169,0,133,251,160,3,6,251,38,252,136,208,249,24,165,251,105
410 data0,133,251,165,252,105,0,133,252,177,251,153,204,13,200,192,8,144
420 data246,104,133,1,88,96,160,128,140,4,15,169,0,141,8,15,140,10,15,162
430 data7,189,204,13,41,0,240,7,169,0,9,0,141,8,15,78,10,15,202,16,236,173
440 data8,15,32,111,14,78,4,15,144,215,96
450 data -57076 :rem  pruefsumme
Listing »HI-P(ITOH8510).L«
1 ifa<2thena=a+2:load"hi-exe",8,1
2 ifa=3then6
3 ifa=4then25
4 input"b-art";c:poke780,c:poke56,13:clr:w$="123456":sys3328
5 ifpeek(8073)and64thena=3:load"menue",8,1
6 sys3337:a=peek(8064):ona+1gosub7,10,12,11,18,24,11,11,19,20,12:goto6
7 open3,8,0,"$0":get#3,c$,c$
8 get#3,c$,c$,l$,h$:ifc$=""thenclose3:wait198,1:return
9 print256*asc(h$+chr$(0))+asc(l$+chr$(0));:sys3334:goto8
10 print"{clr}{down}seq.:":print"{down}  "w$:input"{home}{down}{down}{down}";w$:iflen(w$)<2then10
11 return
12 poke8115,8:print"{clr}{down}{rvon}g{rvof}-bild":ifpeek(8073)>127thenprint"{rvon}f{rvof}-bild"
13 print"{rvon}s{rvof}prite":print"{rvon}z{rvof}-satz":print"{down}->";
14 getc$:ifc$<>"g"andc$<>"f"andc$<>"s"andc$<>"z"then14
15 printc$:poke780,asc(c$):h$=w$:input"{down}f-name";w$:sys3331:w$=h$:h$=""
16 open1,8,15,h$:input#1,a,h$:printa;h$:ifa>0thenwait198,1
17 close1:return
18 poke631,34:poke198,1:h$="":input"{clr}{down}";h$:goto16
19 a=8075:goto21
20 a=8079
21 d=peek(8074):c=peek(a+d):print"{clr}{down}f"2*d+1:print"s-weite:"c,
22 inputc:ifc<1orc>160then22
23 pokea+d,c:return
24 a=4:load"hi-p(itoh8510)",8,1
25 input"{clr}{down}s1:b-nr.(0=kb)";c:poke3415,cand7:ifc=0thend=40:goto27
26 input"ssp.(<=39;0=voll)  0{left}{left}{left}";d:ifd<0ord>39then26
27 poke3388,d:c=40+d:ifc>40thenc=40
28 input"{down}s2:b-nr.(0=kb)";d:poke3435,dand7:ifd=0then30
29 print"esp.(>0;<=";c;"{left}) ";c;:input"{left}{left}{left}{left}{left}";d:ifd<1ord>cthen29
30 poke3451,d:c=640-(40-peek(3388)+d)*8
31 print"{down}spc(=>0;<=";c;"{left})  ";c;:input"{left}{left}{left}{left}{left}{left}";d:ifd<0ord>cthen31
32 c=int(d/256):poke3383,c:input"{down}druck  j{left}{left}{left}";c$:ifc$<>"j"then34
33 poke3381,d-c*256:sys3328:input"{down}nochmal  j{left}{left}{left}";c$:ifc$="j"then25
34 a=1:goto1
Listing »HI-E(ITOH8510)«
PDF Diesen Artikel als PDF herunterladen
Mastodon Diesen Artikel auf Mastodon teilen
← Vorheriger ArtikelNächster Artikel →