Hardcopy mit dem VC 1520
Wer sich den Commodore VC 1520 kauft, ist sich meist auch dem Nachteil dieses VC 1520-Druckers/Plotters bewußt. Einer dieser Nachteile ist die fehlende Möglichkeit, Hardcopys mit den gängigen Basic-Erweiterungen (Simons Basic, Extended Basic und so weiter) erstellen zu können.

Das abgebildete Programm bietet nun die Möglichkeit, jedes Bild in High Resolution Byte für Byte auszudrucken, wenn es sich im Bereich $2000 = Dez.8192 bis $3FFF = Dez.16383 befindet. Steht das Bild in einem anderen Bereich, ist lediglich die Variable C in Zeile 257 in die gewünschte Anfangsadresse zu ändern.
Um ein High Resolution-Bild auszudrucken, ist zunächst die Zeile:
POKE44,64:POKE64 + 256,0: NEW einzugeben. Anschließend wird das auszudruckende Bild absolut (LOAD”Bild”,8,l) geladen. Jetzt erst wird nach vorherigem NEW das Hardcopy-Programm geladen und mit RUN gestartet.
Der Ausdruck dauert dann, je nach Bild, immer noch eine ganze Weile. Dies ließ sich, ausgehend von der Hardware, leider nicht ändern.
(J. Wichmann)

1 rem 2 rem 3 rem* sprung hauptprogr. * 4 rem 5 rem 6 goto200 10 rem 20 rem 30 rem* sub routine * 40 rem* byte aufloesen * 50 rem 60 rem 70 forsc=7to0step-1 80 :ifa-2^sc<0thenb(7-sc)=0:goto100 90 :b(7-sc)=1:a=a-2^sc 100 nextsc 110 return 200 rem 210 rem 220 rem* einlesen von bytes * 230 rem* haupt-algorithmus * 240 rem 250 rem 256 forsc=1024to2023:pokesc,16:next:poke53265,59:poke53272,24 257 c=8192 260 dimb(9):rem* konstante * 270 open1,6,1:rem* 1520 auf x/y plot * 275 forsq=l2tol2+7:l=l+1 280 :forsw=c+sqtoc+sq+312step8 290 :a=peek(sw):ifa=0then320 295 :gosub70 300 :gosub450 320 :z=0:nextsw 325 nextsq 330 l2=l2+320:ifl2<7680then275 340 rem 350 rem* ende * 360 rem 370 close1:open4,6:rem* 1520 auf ascii * 380 forsc=1to3:print#4,"" 390 nextsc:close4:end:rem**************** vorschub des 1520 * 400 rem 410 rem 420 rem* ausdrucken auf printer/plotter 430 rem* 1520 in hires * 440 rem 450 rem 452 ifb(z)=1then460 454 z=z+1:ifz<8then452 456 return 460 x=sw-c-sq+z+70:y=-l:print#1,"m",x,y 510 ifb(z+1)=0thenprint#1,"d",x+1,y:goto454 520 z=z+1:x=x+1:goto510