W O R D S T A R - P A T C H =============================== Ausgabe 02/88 INHALTSVERZEICHNIS: ------------------- 0. Einleitung und Quellenangabe .............1 1. Allgemeine Hinweise ......................2 2. Patch-Adressen ...........................3 2.1. Meldungen und Versionsnummern ............3 2.2. Verzoegerungen ...........................3 2.3. Flags, Zeiger und Parameter ..............4 2.3.1. Flags und Zeiger..........................4 2.3.2. Flags und Parameter.......................4 2.4. Puffer- und Patch-Bereiche ...............4 2.5. Bildschirmsteuerung ......................5 2.6. Memory-Mapped-Video ......................6 2.7. Bank-Switching ...........................6 2.8. Zeicheneingabe ...........................6 2.9. Standardeinstellungen ....................7 2.10. Trennhilfe ...............................9 2.11. Zeichen .................................10 2.11.1. Steuerzeichen bei der Eingabe ...........10 2.11.2. Flagzeichen und Sonderzeichen ...........10 2.11.3. Aktzentzeichen und Backspace ............10 2.11.4. Kommando-Tabellen .......................11 2.11.5. Mailmerge-Sonderzeichen .................11 2.12 Druckeranpassung ........................12 2.12.1 Standardeinstellung der Druckoptionen ...12 2.12.2 Druckersteuerung ........................12 2.12.3 Druckertreiber und Protokoll ............14 2.12.4 Anpassung fuer Typenraddrucker ..........16 3. ANHANG A: Installationshinweise 4. ANHANG B: Rechnerspezifische Installationen 5. ANHANG C: Druckerspezifische Installationen 0. EINLEITUNG UND QUELLENANGABE ====================================================================== Die nachfolgende Beschreibung des Textprogrammes WORDSTAR ist der Versuch dem versierten Nutzer m|glichst umfangreiche Informationen zur Anpassung dieses Programmes an seine speziellen Beduerfnisse und die konkrete Hardware-Umgebung zu ermoeglichen. Die Grundlage der Beschreibung sind neben einigen eigenen Erfahrungen, folgende Veroeffentlichungen: <1> "Individuelles Wordstar" HAPPY COMPUTER, Juli 86, Seite 110-114 (Auszug aus Gunter Jurgensmeier, "Wordstar fuer den Schneider CPC" Verlag Markt & Technik) <2> "WordStar-Installationshandbuch Version 3.0" Verlag Markt & Technik <3> Plate, "Das Betriebssystem CP/M" Franzis-Verlag, Muenchen Diese Beschreibung erhebt keinen Anspruch auf Vollstaendigkeit. Ebenso kann nicht in jedem Fall die Richtigkeit der Aussagen fuer an sich kompatible Textsysteme garantiert werden. Die Nutzung der Patch-Moeglichkeiten setzt diverse System- und Pro- grammkenntnisse voraus. An dieser Stelle sei dringlichst vor einer unueberlegten Anwendung gewarnt! Aendern Sie nie das Original! Fuer Hinweise zur Ergaenzung bzw. Richtigstellung der Beschreibung, bin ich jederzeit dankbar. Wenden Sie sich bitte an: Frank-Michael Schober Weberweg 2 Spremberg 7 5 9 0 Tel.: 09574 / 4565 (ab 17.00 Uhr) 0959 / 627807 (08.00-15.00 Uhr) Hiermit moechte ich allen, die durch Ueberlassung von Unterlagen, oder durch Mitteilung ihrer Erfahrungen, zu dieser Beschreibung beigetragen haben, danken. Spremberg, den 01.10.88 1. ALLGEMEINE HINWEISE ********************************************************************** Wenn Sie Wordstar, oder kompatible Textsysteme, ueber die im Installa- tionsprogramm INSTALL angebotenen Moeglichkeiten hinaus veraendern wollen, dann geben Sie im Hauptmenue des Installationsprogrammes "+" ein. Damit gelangen Sie in die "Custom Modifikation Routine", die einen direkten Patch von Wordstar ermoeglicht. Leider gilt das nicht fuer TPINSTD! Dieses Installationsprogramm ist lediglich eine zum Rudiment zusammengestrichene Variante von INSTALL, die von der Universalitaet der des Originals weit entfernt ist. Benut- zen Sie daher, wenn moeglich, das Original auch zur Installation von TP. Nur dann ist eine wirklich User-bezogene Installation moeglich. Zuerst werden Sie nach der Startadresse des zu aendernden Bereiches gefragt. Die Eingabe erfolgt hexadezimal in der Form "nnnnh" (n=0-F). Die der Inhalt der angegebenen Adresse und der nachfolgenden 15 Adres- sen wird ausgegeben. Eventuelle Aenderungen werden hexadezimal eingegeben und mit ET abge- schlossen. Bestaetigung der vorhandenen Werte erfolgt nur mit ET. Ebenso ist natuerlich eine Aenderung mit Hilfe entsprechender Dienst- programme wie DU oder POWER moeglich (siehe dazu auch 3.1.). Die unter 2. aufgefuehrten Tabellen geben die Adressen und Standards der aenderbaren Parameter an. Aufbau der Tabellen: --------------------- 1. Name des Bereiches bzw. der Variablen 2. Anfangsadresse (Hex.) 3. Laenge des Bereiches in Byte (Dez.) Vor der Laenge koennen folgende Parameter angegeben sein: "L": Das erste Byte mu~ die Laenge (Hex.) der nachfolgenden Byte- folge enthalten (z.B.: 02 1B 80). Die Gesamtl{nge des Berei- ches ergibt sich aus angegebene Bytezahl plus ein Byte fuer die Laengenangabe. "A": Die nachfolgenden Bytes m}ssen g}ltige ASCII-Zeichen sein. 4. Erlaeuterung der Funktion. Die evtl. angegebenen Datenwerte sind als Hex.-Werte zu verstehen. Werden bestimmte Steuersequenzen nicht benutzt, muessen die entspre- chenden Bereiche der angegebenen Variablen vollstandig mit "00" ge- fuellt werden. Notwendige User-Routinen sollten im Bereich MORPAT installiert werden. Nicht benutzte User-Routinen muessen mit dem jeweils angegebenen Stan- dard als nicht vorhanden gekennzeichnet werden. 2. PATCH-ADRESSEN ********************************************************************** 2.1. MELDUNGEN UND VERSIONSNUMMERN ====================================================================== OUTCHR 0106 03 Sprung zur Bildschirmaugaberoutine. PATVER 010C 02 ? MSGVER 010E 02 Versions-Nr. der Overlay-Datei mit Meldungen (WSMSGS.OVR). WSVER 0110 02 Versions-Nr. des Wordstar-Programmes. Die nachfolgenden Variablen enthalten die Meldungen, die auf dem Startbildschirm angezeigt werden. Jeder String wird mit "0F,00" abgeschlossen, "00" allein bewirkt einen Abbruch der gesamten String-Ausgabe. Steuerzeichen werden interpre- tiert. COPRINT 0117 A58 Copyright-Meldung von MicroPro SIGNON 0153 A58 Meldung mit Versions- und Serien-Nr. IDTEX 018f A34 Namen des installierten Computers bzw.Terminals. PIDTEX 01B8 A34 Name des installierten Druckers. PROTTX 01D7 A34 Angabe des Kommunikationsprotokolls. PDRVTX 01fB A34 Angabe des Druckertreibers. 2.2. VERZOEGERUNGEN ====================================================================== DEL1 02CF 01 Zeit die der Cursor bei Abfrage "Austausch (J/N)" bei Suchen u. Ersetzen in der Statuszeile steht und die er eingeschaltet bleibt, wenn er sich auf einem inversen Zeichen befindet (CRBLIV <>00). Standard: 03 DEL2 02D0 01 Zeit die der Cursor bei Abfrage "Austausch (J/N)" bei Suchen und Ersetzen im Textbereich verbleibt und die er ausgeschaltet bleibt, wenn er sich auf einem inversen Zeichen befindet (CRBLIV <>00). Standard: 09 DEL3 02D1 01 Mittlere Verzoegerungen. Z.B. Zeit, die gewartet wird bis nach Eingabe eines Steuerzeichens ein neues Menue angezeigt wird. Standard: 25 DEL4 02D2 01 Lange Verzoegerungen Z.B. fuer Zeit, die die Startmeldung auf dem Bild- schirm stehen bleibt. Standard: 40 DEL5 02D3 01 Zeit die gewartet wird, bevor der Bildschirm hori- zontal scrollt. Standard: 09 2.3. FLAGS, ZEIGER UND PARAMETER ====================================================================== 2.3.1. FLAGS UND ZEIGER ---------------------------------------------------------------------- INPORT 0233 PCLAS 0237 AUPAV 0234 SAVEND 0238 ABSVAR 0220 MSGLEN 0235 PTEXTS 023A DISDIR 022B INSTLD 0236 POVSTB 023C 2.3.2. FLAGS UND PARAMETER ---------------------------------------------------------------------- TRSCRS 02D4 01 Flag fuer Wordstar auf TRS-80 Modell I TRSCIF 02D5 01 Flag fuer Wordstar auf TRS-80 Modell I HETHBS 02D6 01 Flag fuer HEATH 89 unter CP/M 1.42 und 1.43 APLFLG 02D7 01 Flag fuer Wordstar auf APPLE II NMOFUS 02D8 01 Anzahl der Benutzer bei Mehrbenutzersystemen. TCKFLG 02DA 01 Bei MP/M <>0 wenn Systemaufruf 141 fuer Verzoege- rungen verwendet wird. RSTFLG 02DB 01 Bei <>0 kein Disk-Reset. Wichtig fuer MP/M, da alle Nutzer zuvor zustimmen muessen. DEFDSK 02DC 01 Angabe des Standard-Laufwerkes auf dem Wordstar Overlay-Dateien sucht (1=A, 2=B usw.). Standard: 01 SCRLSZ 02DD 01 Anzahl der Spalten um die der Bildschirm horizon- tal gescrollt wird. 2.4 PUFFER- UND PATCH-BEREICHE ====================================================================== MORPAT 02B0 124 Frei f}r benutzereigene Routinen Hier koennen die eventuell notwendigen User-Rou- tinen installiert werden. PBGMEM 035C 02 Zeiger auf Beginn des Arbeitsbereiches von Word- star im TPA, kann hochgesetzt werden, wenn MORPAT nicht ausreicht. ACHTUNG!: Das Inst.-Programm ueberschreibt diesen Bereich, Routinen erst nach Installation einf}gen. INFCB 083A 12 Puffer fuer zu bearbeitende Datei. Byte 1 : Aktuelles Laufwerk fuer die Datei (1=A, 2=B usw.). Byte 2-12: Dateiname im FCB-Format. 2.5. BILDSCHIRMSTEUERUNG ====================================================================== HITE 0248 01 Bildschirmhoehe in Zeilen. WID 0249 01 Bildschirmbreite in Zeichen. CLEAD1 024A 08 Beginn der Steuersequenz Cursorpositionierung. CLEAD2 0253 04 Zeichenfolge zwischen Zeilen- und Spaltenangabe. CTRAIL 0258 04 Zeichenfolge, die nach Zeilen- und Spaltenangabe ausgegeben wird. CB4LFG 025D 01 Wenn <>0 wird zuerst Spaltenangabe ausgegeben, sonst zuerst Zeilenangabe. LINOFF 025E 01 Zeilenoffsett fuer Bildschirmpositionierung. COLOFF 025F 01 Spaltenoffsett fuer Bildschirmpositionierung. ASCUR 0260 01 Flag fuer Art der Zeilen- und Spaltenangabe. 0= bin{r 2= zweistelliger ASCII-Wert 3= dreistelliger ASCII-Wert UCRPOS 0264 03 Sprung zu einer User-Routine zur Cursorpositio- nierung. Standard: NOP/NOP/RET Die folgenden sieben Variablen sind Steuersequenzen fuer die entspre- chende Funktion. Sie sind optional und je nach System zu verwenden. WS arbeitet auch ,wenn z.T. auch langsamer, ohne diese Steuersequenzen. ERAEOL 026D L06 Bis Zeilenende loeschen. LINDEL 0274 L06 Zeile loeschen. LININS 027B L08 Zeile einf}gen IVON 0284 L06 Darstellung der Menues und Meldunge invers, mit hoeherer Intensitaet oder Farbe. IVOFF 028B L06 Normale Textdarstellung. TRMINI 0292 L08 Bildschirminitialisierung, wird bei Start WS ein- mal ausgegeben. TRMUNI 029B L08 Wie TRMINI, nur bei Ende WS. INISUB 02A4 03 Sprung zu einer User-Routine fuer Bildschirmini- tialisierung bei Start WS. Standard: NOP/NOP/RET UNISUB 02A7 03 Wie INISUB, nur bei Ende WS. Standard: NOP/NOP/RET USELST 02AA 01 Flag, das angibt, ob bei Zeichenausgabe in der rechten unteren Ecke des Bildschirmes gescrollt wird. 00= nicht scrollen <>00= scrollen DELCUS 02AE 01 Verzoegerung nach jeder Ausgabe der Steuersequenz zur Cursorpositionierung. Standard: Systemabhaengig! DELMIS 02AF 01 Wie DELCUS, fuer alle anderen Bildschirm-Steuerse- quenzen. 2.6. MEMORY-MAPPED VIDEO ====================================================================== MEMAPV 02B0 01 Flag fuer Bildschirmansteuerung. 00= Verwendung von Steuersequenzen <>00= direkt auf Bildschirmspeicher MEMADR 02B1 02 Anfangsadresse des Bildschirmspeichers. Wird benutzt bei MEMPAV <>00. Die drei nachfolgenden Variablen sind Schalter fuer die angegebenen Funktionen. Sie sind Systemabhaengig! 00= Aus FF= Ein HIBIV 02B3 01 Inverse Zeichendarstellung durch gesetztes Bit 7 im Zeichenbyte. HIBCUR 02B4 01 Cursordarstellung durch Setzen hoeherwertiges Bit. CURBLIV 02B5 01 Flag fuer Cursorblinken auf inversem Zeichen. 2.7. BANK-SWITCHING ====================================================================== SWIN 02C3 06 Routine bzw. Sprung zur Routine, die den Bild- schirmspeicher in den adressierbaren Bereich schaltet. SWOUT 02C9 06 Wie SWIN, nur entadressieren. 2.7. ZEICHENEINGABE ====================================================================== ZAFCIN 02B6 02 Null oder Zeiger auf eine Adresse, die nach jeder Tastatureingabe auf 0 gesetzt werden soll. RUBFXF 02B8 01 Wenn <>00, wird nach Eingabe von "Del" das Zeichen in RFIXER ausgegeben. RFIXER 02B9 01 Siehe RUBFXF UCNSTA 02BA 03 Sprung zu einer User-Routine, die den Tastatursta- tus abfragt. Standard: NOP/NOP/RET UCONI 02BD 03 Sprung zu einer User-Routine fuer Tastaturabfrage. Standard: NOP/NOP/RET UCONO 02C0 03 Sprung zu einer User-Routine zur Bildschirmausgabe Standard: NOP/NOP/RET 2.9. STANDARDEINSTELLUNGEN ====================================================================== ITHELP 0360 01 Hilfsstufeneinstellung bei Start (0-3). NITHLF 0361 01 Wenn Null, wird direkt nach Dateier|ffnung und so lange, bis eine Eingabe erfolgt folgender Text an- gezeigt: Zum Anzeigen aller Erlauteterungen setze Hilfsstufe 3 mit dem Befehl >>^H3<80 Zeichen + OVPCHR 03B0 Ueberdrucken der Zeile - LFCHR 03B1 Zeilenende mit LF ohne CR . PAGCHR 03B2 Seitenumbruch P SOFTCR 03B3 Zeilenende durch Zeilenumbruch (SPACE) HARDCR 03B4 Zeilenende durch CR < FDTCHR 03B5 Zeile mit MAILMERGE-Befehl M SOFHYC 03B8 Weicher Trennstrich 1) - oder _ PAGFIL 03B9 Anzeige Seitenumbruch - MARKS 03BA Kennzeichen Blockanfang 2) B - " - 03BB - " - Blockende 2) K 1) BIT 7 des Zeichens ist fuer inverse Darstellung gesetzt. 2) Wir nicht verwendet wenn inverse Darstellung erlaubt (siehe IVON). 2.11.3. AKZENTZEICHEN UND BACKSPACE ---------------------------------------------------------------------- AUTOBS 0422 11 Optional bis 10 Zeichen, bei denen WS automatisch einen Backspace einfuegt. Tabelle muss mit "00" abgeschlossen werden. BSCHR 042D 01 Standardzeichen fuer Backspace. Standard: 08 2.11.4. KOMMANDO-TABELLEN ---------------------------------------------------------------------- Die nachfolgenden vier Kommando-Tabellen enthalten pro Eintrag vier Byte. Sie haben folgende Bedeutung: Byte 1 : ASCII-Code fuer 1.CTRL-Zeichen. Byte 2 : ASCII-Code fuer 2.CTRL-Zeichen, bei einstelligem Befehl =00. Byte 3-4: Start-Adr. der entsprechenden Routine. Nicht benutzte Eintraege sind mit "00" gefuellt. NOFTAB 0430 61 Tabelle fuer gueltige Kommandos im Startmenue. Es sind 20 Eintraege vorhanden, jedoch nicht alle benutzt. VTAB 0481 457 Tabelle mit ein- oder zweistelligen Controlcodes. Es sind 114 Eintraege vorhanden. XTAB 0649 37 Erweiterungstabelle fuer VTAB. Normalerweise nicht belegt, kann fuer eigene Kom- mandos benutzt werden. FPTAB 066E 17 Tabelle der Steuerzeichen die MAILMERGE waehrend des Druckes annimmt. PNFTAB 067F 02 Zeiger auf NOFTAB. PVTAB 0681 02 Zeiger auf VTAB. PFPTAB 0683 02 Zeiger auf FPTAB. 2.11.5. MAILMERGE-SONDERZEICHEN ---------------------------------------------------------------------- RVELIM 03D8 01 Trennzeichen fuer Datenfelder in Datendateien. Standard: "," RVQUOT 03D9 01 Zeichen, die Zeichenketten einschliessen, die ein Komma enthalten. Standard: """ VARCH1 03DB 01 Kennzeichen fuer Anfang einer Variablen. Standard: "&" VARCH2 03DC 01 Kennzeichen fuer Ende einer Variablen. Standard: "&" VARNBC 03DD 01 ? VAROPC 03DE 02 Zwei Zeichen, die vor dem Variablen-Endezeichen benutzt werden um den Druck einer Leerzeile bei leerer Variablen zu verhindern. Standard: "/O" FNWSCM 03E6 12 Name der WS-COM-Datei im FCB-Format, wird nach ei- nem R-Befehl benoetigt. Standard: "WS.COM" DSKTNA 03F2 12 Name der Datei mit Meldungen/Menues im FCB-Format. Standard: "WS-MSGS.OVR" FNOVLY 03FE 12 Name der Datei mit WS-Overlays im FCB-Format. Standard: "WSOVLY0.OVR" bzw. "WSOVLY1.OVR" FNMRGP 040A 12 Name der MAILMERGE-Datei im FCB-Format. 2.12. DRUCKERANPASSUNG ====================================================================== 2.12.1. Standardeinstellungen der Druckoptionen ---------------------------------------------------------------------- PODBLK 03CA 04 Vier Standard-Einstellungen fuer Fragen vor Druck- ausgabe. 00= Standardantwort ist "NEIN" FF= Standardantwort ist "JA" Adr. FRAGE Standard 03CA "Ausgabe auf eine Datei (J/N)" NEIN 03CB "Seitenvorschub verwenden (J/N" NEIN 03CC "Formatierung unterdruecken (J/N)" NEIN 03CD "Pause fuer Papierwechsel (J/N)" NEIN NOUFF 03D1 01 Anzeige der Frage nach Seitenvorschub 00= Frage wird unterdrueckt FF= Frage wird gestellt Standard: FF ITPOPN 03D3 01 Schalter fuer Seitenzahl-Ausgabe (.OP/.PN). 00= Seitenzahl wird automatisch ausgegeben (.PN) FF= Seitenzahl wird unterdrueckt (.OP) Standard: 00 ITMIJ 03D4 01 Schalter fuer Feinjustierung waehrend des Druckes (.UJ). 00= Keine Aenderung moeglich FF= Aenderung moeglich Standard: 00 ITBIP 03D5 01 Schalter fuer bidirektionalen Druck. 00= Aus FF= Ein Standard: Entsprechend Drucker! 2.12.2. DRUCKERSTEUERUNG ---------------------------------------------------------------------- POSMTH 0690 01 Steuerung fuer Ueberdrucken. 00: Mit Backspace 01: Typenraddrucker mit VMI und HMI FF: Mit CR BLDSTR 0691 01 Anzahl der Ueberdrucke bei Fettdruck, sollte bei Typenraddruckern =2 sein. DBLSTR 0692 01 Anzahl der Ueberdrucke bei Doppeldruck. Standard: 2 Die nachfolgenden Zeichenfolgen gelten fuer die angegebenen Funktionen. Die Zeichenfolgen USR1 bis USR4 koennen vom Anwender frei belegt werden. PSCRLF 0696 L10 CR und LF. PSCR 06A1 L06 CR ohne LF. PSHALF 06A8 L06 CR und 1/2 LF. PBACKS 06AF L05 Backspace. PALT 06B5 L04 alternative Schreibdichte. PSTD 06BA L04 normale Schreibdichte. ROLUP 06BF L04 Papier um einen Teil einer Zeile r}ckwaerts bewe- gen (vor Hoch- und nach Tiefstellen). ROLDOW 06C4 L04 Papier um einen Teil einer Zeile vorwaerts bewe- gen (vor Tief- und nach Hochstellen). USR1 06C9 L04 Zeichenfolge, die bei ^PQ ausgegeben wird. USR2 06CE L04 Zeichenfolge, die bei ^PW ausgegeben wird. USR3 06D3 L04 Zeichenfolge, die bei ^PE ausgegeben wird. USR4 06D8 L04 Zeichenfolge, die bei ^PR ausgegeben wird. RIBBON 06DD L04 Zweite Bandfarbe. RIBOFF 06E2 L04 Original-Bandfarbe. PSINIT 06E7 L16 Druckerinitialisierung. 1) PSFINI 06F8 L16 Druckerdeinitialisierung 1) SOCHR 070B A01 Zeichen fuer Durchstreichen Standard: "-" ULCHR 070C A01 Zeichen fuer Unterstreichen Standard: "_" PRINIT 070D 03 Sprung zu einer User-Routine zur Druckerinitiali- sierung. 1) Standard: NOP/NOP/RET PRFINI 0710 03 Wie PRINIT, nur De-Initialisierung. 1) 1) Wird vor bzw. nach jedem Druck-Kommando benutzt! 2.12.3. DRUCKERTREIBER UND PROTOKOLL ---------------------------------------------------------------------- CSWITCH 0717 01 Schalter fuer Auswahl des Druckertreibers. 00= CP/M-List-Einheit (Standard-Treiber) Ausgabe durch LIST-Fkt. des BIOS ueber das WS-Unterprog. LISEND. - Kein weiterer Patch notwendig, dann aber sehr langsam bei Textbearbeitung und gleich- zeitigem Druck. - Protokoll nur bei Implementierung der User- Routine LISINP moeglich. - BUSY-Test nur bei Implementierung der User- Routine LIBSY. 01= WS-Port-Treiber Direktsteuerug ueber die Portadressen der Drucker-Schnittstelle durch Patch der Variab- len POSTAT, POMASK, POOM und POOP. - WS-Drucker-Puffer aktiviert, dadurch weniger Disk-Zugriffe bei Druck. Puffer benoetigt zusaetzlich 3 kByte TPA! - Protokoll bei Patch der Variablen PISTAT POINSK, POIM und POIP moeglich. - BUSY-Test durch WS, daher fluessigere Arbeit bei Text-Bearbeitung und gleichzeitigem Druck gegenueber Betriebsart 0. 02= Druckersteuerung ueber User-Routinen Sollten die vorhandenen Treiber nicht nutzbar sein, koennen die User-Routinen PUBSY und PUSEND implementiert werden. - Protokoll nur bei Implementierung der User- Routine PUINP moeglich. 03= Treiber fuer Typenraddrucker - "OEM"-Drucker ohne normgerechte Schnitt- Stelle (spezielles Interface notwendig). - DAISY-Drucker. 04= Alternativer Konsolen-Treiber Ausgabe ueber eines der logischen Ausgabege- raete des Systems durch Umsetzen von IOBYTE. - Geraeteauswahl ueber die Variable CONFIE. - BUSY-Test nur bei Implementierung der User- Routine ACBSY. - Protokoll nur bei Implementierung der User- Routine ACINP moeglich. HAVBSY 0718 01 Schalter fuer BUSY-Test (CSWITCH 0-4). 00= Kein BUSY-Test <>00= BUSY-Test vorhanden Standard: Je nach Treiber! Die nachfolgenden Unterroutinen und Variablen werden in Abhaengigkeit von CSWITCH genutzt. Die Teilroutinen fuer die Uebernahme eines Byte vom Drucker werden nur benoetigt wenn mit Protokoll gearbeitet wird (PROTCL <>0). Bei CSWITCH= 00 und 01 muessen fuer die Statusabfrage des Druckers entsprechend der Hardware-Gestaltung folgende Masken erstellt erstellt werden: - Maske fuer Statusbyte : Bits die ausgewertet werden sollen muessen gesetzt werden! - Maske fuer Bit-Zustand: Bits die gesetzt sind, wenn der Drucker bereit ist gleich 0, alle Anderen gleich 1! Die Standardwerte fuer nicht eigefuegte User-Routinen koennen sein: A) NOP/NOP/RET B) NOP/OR A/RET C) NOP/SCF/RET Der jeweils gueltige Standard ist in Klammern angegeben. Fuer die Angabe der Port-Adr. bei I/O-Operationen stehen 2 Byte zur Verfuegung. Dadurch kann auch mit Memory-Mapped-I/O gearbeitet werden. Das zweite Byte ist bei direktem I/O auf "00" zu setzen. CSWITCH= 00 ----------- LIBSY 071A 03 Sprung zu einer User-Routine fuer BUSY-Test bei HAVBSY <>0. (B) LISEND 071D 08 Unterroutine zur Zeichenausgabe auf LIST-Einheit. LISINP 0725 03 Sprung zu einer User-Routine zur Protokollsteue- rung. (C) CSWITCH= 01 ----------- POBSY 0728 Start der Routine fuer BUSY-Test ueber 8-Bit-Port. POSTAT 0729 02 Port-Nr. fuer POBSY POMASK 072C 01 Maske fuer Status-Byte. POOM 072E 01 Maske fuer Bit-Zustand POSEND 0733 Start der Routine zur Zeichenausgabe auf 8-Bit- Port. POOP 0734 02 Port-Nr. fuer POSEND. POINP 0737 Start der Routine Uebernahme eines Zeichens vom Drucker ueber 8-Bit-Port. PISTAT 0738 02 Port-Nr. fuer POINP. POINSK 073B 01 Maske fuer Status-Byte POIP 0741 01 Maske fuer Bit-Zustand CSWITCH= 02 ----------- PUBSY 074C 03 Sprung zu einer User-Routine fuer BUSY-Test. (B) PUSEND 074F 03 Sprung zu einer User-Routine zur Zeichenausgabe, ASCII-Zeichen wird in Reg. A uebergeben. (A) 0755 03 Reserviert CSWITCH= 04 ----------- ACBSY 0758 03 Sprung zu einer User-Routine fuer BUSY-Test. (B) ACSEND 075B Beginn der Routine zur Zeichenausgabe. ACINP 0764 Beginn der Routine, die ein Zeichen vom Drucker einliest. ACFIN 076E Beginn der Routine, die IOBYTE ruecksetzt. ACSTA1 076F Einsprungpunkt fuer ACSTAR ACSTAR 0777 Beginn der Routine, die IOBYTE setzt. CONFIE 077F 01 Schalter fuer Auswahl Ausgabeeinheit 00= TTY 01= CRT 02= BAT 03= UC1 PROTCL 0786 01 Schalter fuer Drucker-Protokoll 00= Kein Protokoll 01= ETX/ACK 02= XON/XOFF EAKBSZ 0787 01 Puffergroesse bei PROTCL= 1. Es muss die Groesse des Drucker-internen Puffers mal 0.5 minus 1 Byte (EOT) angegeben werden, da WS immer zwei Meldungen hintereinander ausgibt. Standard: 7F (fuer Puffergroesse 256 Byte) 0788 06 Reserviert 2.12.4. ANPASSUNG FUER TYPENRADDRUCKER ---------------------------------------------------------------------- DVMILE 0790 L04 Steuersequenz fuer vertikale Bewegung. DVMMIN 0795 01 Minimaler Wert fuer vertikale Bewegung. DVMRNG 0797 01 Gueltiger Wertebereich fuer vertikale Bewegung. DHMILE 0799 L04 Steuersequenz fuer horizontale Bewegung. DHMIFG 079E 01 Schalter fuer Schrittgroesse der Bewegung. 00= 1/60 Zoll FF= 1/120 Zoll DHMIN 079F 01 Minimaler Wert fuer horizontale Bewegung. DHRNG 07A1 01 Gueltiger Wertebereich fuer horizontale Bewegung. Die nachfolgenden Variablen sind Steuersequenzen fuer die angegebenen Funktionen. DFWD 07A3 L04 Steuersequenz fuer Vorwaertsdruck. DBAK 07A8 L04 Steuersequenz fuer Rueckwaertsdruck. DSP 07AD L04 Druckkopf ein Zeichen vorwaerts. DBS 07B2 L04 Druckkopf ein Zeichen rueckwaerts. DLF 07B7 L04 Zeilenschaltung vorwaerts. DRLF 07BC L04 Zeilenschaltung rueckwaerts. DPHSPC 07C1 L04 Zeichenfolge fuer Phantom-Leerzeichen. DPHRUB 07C5 L04 Zeichenfolge fuer Phantom-Rubout. DNPROS 07D3 01 Schalter fuer Proportionaldruck. 00= Aus FF= Ein DMJWB 07D4 01 Schalter fuer Feinjustierung. Wenn "FF" kann der Raum zwischen den Zeichen eines Wortes staerker auseinandergezogen werden. PSTAB 07D8 96 Tabelle mit Werten fuer Proportionaldruck. Fuer jedes Zeichen von SPACE bis DEL ein Byte. Die Bits 0-2 und 4-6 haben spezielle Bedeutung. Lt. <1> soll diese Fkt. nicht exakt arbeiten!