APPLICATIONSDIVERS ★ DRUCKERSPOOLER UNTER CP/M 2.2|CPC AMSTRAD INTERNATIONAL) ★

Druckerspooler unter CP/M 2.2 (CPC Amstrad International)Applications Divers
★ Ce texte vous est présenté dans sa version originale ★ 
 ★ This text is presented to you in its original version ★ 
 ★ Este texto se presenta en su versión original ★ 
 ★ Dieser Text wird in seiner Originalfassung präsentiert ★ 

Drucker oder Schnecke?

Es stimmt schon, die Überschrift ist auf den ersten Blick etwas irritierend. Aber sind Sie richtig zufrieden mit Ihrem Drucker, oder sind Sie gar einer der unglücklichen CPC-User, die über keinen Laserdrucker verfügen? Dann gehören Sie sicherlich zum Kreis derjenigen, die beim Ausdruck einer DIN-A4-Seite in NLQ-Qualität zu einer Kaffeepause gezwungen sind. Nun gut, also höchste Zeit, das Druckkonzept Ihres CP/M 2.2 Systems etwas zu tunen...

Benötigt wird lediglich ein CP/M-Texteditor, ein 8080-Assembler und ein entsprechender Linker. Letztere finden Sie unter den Namen ASM.COM und LOAD.COM auf der zu Ihrem System mitgelieferten CP/M-Diskette. Auf den ebenfalls auf dieser Dikette befindlichen CP/M-Zeilen-editor namens ED.COM bitte ich Sie zugunsten eines Textverarbeitungsprogrammes â la Wordstar oder ähnlichem doch zu verzichten, es sei denn, Sie entdecken gewisse selbstquälerische Züge an sich.

Die Funktionen des Programms

Bevor Sie sich auf nachfolgendes Assemblerlisting stürzen, bitte ich Sie, Ihre Lieblingsdisketten in Sicherheit zu bringen, da nachfolgendes Programm intensiv von Intimbereichen Ihres CPCs Gebrauch macht, und eventuell ein Tippfehler genügt, nicht nur Ihr System, sondern auch das Diskettenlaufwerk zu ungewöhnlichsten Aktionen zu veranlassen. SPOOL ist ein Variables Drucker-Spoolprogramm. Das heißt, Zeichen, die über die BIOS Funktion 3 an den Drucker gesandt worden sind, werden in einem als Ringpuffer organisierten Bereich zwischengespcichert. Der eigentliche Druckvorgang wird dann per Interrupt alle 1/50 Sekunden ausgeführt, wobei versucht wird, bis zu 16 Zeichen zu senden, damit auch ein schneller Drucker gut versorgt bzw. ein im Drucker vorhandener Puffer möglichst optimal ausgeschöpft wird. Die Routinen, die diese Steuerung übernehmen, finden im BlOS-Stack Platz. Wohin aber mit dem Pufferbereich? Für den Pufferbereich bietet sich zunächst einmal der ohnehin unter CP/M meist nutzlose Soundpuffer an. Leider ist dieser Bereich nicht besonders groß, aber besser ein kleiner Puffer als überhaupt keiner, was nachfolgende Benchmarks noch belegen werden. Was gibt es sonst noch für Alternativen? Nun, prinzipiell ist die Startadresse des Pufferbereichs und die Länge durch die Konstanten BLENGTH und BBASE im Assemblerlisting frei wählbar. Aus “Interruptgründen“ muß sich der Pufferbereich aber im zentralen RAM (Adresse 04000H - 0B000H) befinden. Leider kollidiert ein wahllos in diesen Bereich plazierter Puffer mit so ziemlich allem, was da unter CP/M Rang und Namen hat, nähmlich BDOS, BIOS, Firmware und nicht zuletzt mit diversen Anwenderprogrammen. Ohne spezielle Vorkehrungen geht hier also nichts. Eine mögliche Vorkehrung besteht beispielsweise darin, den TPA-Speicher zu verkürzen. Keine Angst, Wordstar, Turbo Pascal usw. verkraften eine Verkürzung in Maßen ohne weiteres. Verkürzen wir also den TPA-Bereich um 1K. Konstruieren Sie hierzu mit MOVCPM.COM zunächst ein 43k TPA-CP/M System mit MOVCPM 175 * ,danach sichern Sie dieses durch Eingabe von SAVE“CPM43.COM“ und übertragen das neue System anschließend mit SYSGEN CPM43.COM auf die Systemspur. Nun steht 1K ab Adresse A933 für unseren Spooler zur Verfügung. Um den SPOOLER entsprechend zu konfigurieren, ändern Sie bitte die Zeilen 27 und 30 im Assemblerlisting entsprechend ab (BBASE = 0A933H. BLENGTH = 00400H). So, bevor Sie nun loslegen, noch die Ergebnisse einiger Tests, damit Ihnen das Abtippen leichter fällt. Die Zeiten wurden übrigens mit einem Schneider DMP 2000 ermittelt.

ohne SPOOLSPOOL(1SPOOL(2)
2K Text Normal26 sec.20 sec.14 sec.
4K Text Normal66 sec.58 sec.47 sec.
2K Text NLQ103 sec.65 sec.23 sec.

(1) SPOOL mit Soundpuffer
(2) SPOOL mit verkürzter TPA

Bernd Ott/jb, CPCAI

★ PUBLISHER: CPC Amstrad International
★ YEARE: 1989 , 1988
★ CONFIG: 64K + CP/M
★ LANGUAGE:
★ TAG: /PRINT/
★ LICENCE: LISTING
★ AUTHOR: Bernd Ott

★ AMSTRAD CPC ★ DOWNLOAD ★

Type-in/Listing:
» Druckerspooler  unter  CPM    (CPC  Amstrad  International)    ENGLISHDATE: 2020-06-21
DL: 4 fois
TYPE: ZIP
SIZE: 3Ko
NOTE: 40 Cyls
.HFE: NON

Je participe au site:
» Newfile(s) upload/Envoye de fichier(s)
★ AMSTRAD CPC ★ A voir aussi sur CPCrulez , les sujets suivants pourront vous intéresser...

Lien(s):
» Applications » Spooler (CPC Amstrad International)
» Applications » Spooler de Impressora para CPC (Amstrad Magazine)
» Applications » Spool-464
» Applications » Vortex-Spooler-Utility (CPC Magazin)
» Applications » RSX Spooler (Computer Partner)

QUE DIT LA LOI FRANÇAISE:

L'alinéa 8 de l'article L122-5 du Code de la propriété intellectuelle explique que « Lorsque l'œuvre a été divulguée, l'auteur ne peut interdire la reproduction d'une œuvre et sa représentation effectuées à des fins de conservation ou destinées à préserver les conditions de sa consultation à des fins de recherche ou détudes privées par des particuliers, dans les locaux de l'établissement et sur des terminaux dédiés par des bibliothèques accessibles au public, par des musées ou par des services d'archives, sous réserve que ceux-ci ne recherchent aucun avantage économique ou commercial ». Pas de problème donc pour nous!

CPCrulez[Content Management System] v8.7-desktop/cache
Page créée en 235 millisecondes et consultée 32 fois

L'Amstrad CPC est une machine 8 bits à base d'un Z80 à 4MHz. Le premier de la gamme fut le CPC 464 en 1984, équipé d'un lecteur de cassettes intégré il se plaçait en concurrent  du Commodore C64 beaucoup plus compliqué à utiliser et plus cher. Ce fut un réel succès et sorti cette même années le CPC 664 équipé d'un lecteur de disquettes trois pouces intégré. Sa vie fut de courte durée puisqu'en 1985 il fut remplacé par le CPC 6128 qui était plus compact, plus soigné et surtout qui avait 128Ko de RAM au lieu de 64Ko.