**************************************************************** * * * A S M - W I N D O W * * * * Maskengenerator fr * * * * MS ASM, MS Quick ASM, Turbo ASM * * * **************************************************************** Version 4.0 (c) 1989-1992, Ebnet Software D - 8000 Mnchen 70 , Passauerstrasse 2 b, Tel. 089/7698755 1 Sharewarekonzept ------------------- Das Programm ASM-WINDOW ist urheberrechtlich geschtzt. Zu Prfzwecken darf die vorliegende Programmversion jedoch frei verwendet, kopiert und weitergegeben werden. Bitte machen Sie Gebrauch davon und geben Sie das Programm an Freunde, Bekannte etc. weiter. Falls Sie nach Prfung von ASM-WINDOW weiterhin damit arbeiten m”chten, bitte ich Sie sich als registrierter Anwender eintragen zu lassen. Fr eine Registrierungsgebhr von DM 85.-- erhalten Sie die folgenden Leistungen - Nutzungsrecht fr ASM-WINDOW - Zusendung der Vollversion von ASM-WINDOW (mit allen Speichermodellen) - Anwenderuntersttzung - Updateservice fr knftige Programmversionen zum Vorzugs- preis von nur DM 45,-- - ein umfangreiches Benutzerhandbuch - eine steuerlich abzugsf„hige Rechnung Nur durch Ihr faires Verhalten wird es m”glich sein ASM-WINDOW nach Ihren Wnschen weiterzuentwickeln. Es wird Ihnen die M”glichkeit gegeben, das Programm zu testen und auf seine Verwendungsm”glichkeit hin zu prfen, bevor Sie sich bei Gefallen als registrierter Anwender eintragen lassen. Das Registrierungsformular ist in der Datei REGIST.FOR enthalten und kann per DOS-Befehl PRINT ausgedruckt werden. Die Prfversion ist eine vollst„ndige Programmversion und keine Demoversion. ASM-WINDOW steht im vollen Funktionsumfang zur Verfgung. In der Ihnen vorliegenden Sharewareversion wird bei Ausgabe eines jeden Formates ein Copyrighthinweis ausgegeben. 2 Formatgenerator UniForm ------------------------- Fr die interaktive Generierung der Bildschirmformate fr den Einsatz mit ASM-WINDOW wird der universelle Formatgenerator UniForm V4.0 mit ausgeliefert. UniForm ist ein universelles Formatgenerierungssystem fr den Einsatz in allen g„ngigen Compilern. Das Gesamtpaket mit Treiberprogrammen fr alle genannten Compiler erhalten Sie zum Preis von DM 169.--. Die unten genannten Produkte sind Teilkomponenten von UniForm. Jedes der Teilprodukte erhalten Sie zum Preis von DM 85.--. C-WINDOW MS C, MS Quick C, Turbo C, Turbo C++ BASIC-WINDOW MS Basic, MS Quick Basic, Turbo Basic, Power Basic PASCAL-WINDOW MS Pascal, MS Quick Pascal, Turbo Pascal COBOL-WINDOW MS Cobol, MF VS Cobol, MF Professinal Cobol, MF Cobol/2 ASM-WINDOW MS Assembler, MS Quick Assembler, Turbo Assembler FORTRAN-WINDOW MS Fortran CLIPPER-WINDOW Clipper V5.01 Im folgenden werden nur die Komponenten von ASM-WINDOW beschreiben. Inhaltsverzeichnis 1 Warum UniForm 2 Und so wirds gemacht 3 Ein einfaches Beispiel 4 Inbetriebnahme 4.1 Systemanforderungen 4.2 Disketteninhalt 4.3 Installation 5 Formatgenerierung (nur in Vollversion) 6 Formataufruf 6.1 Ablaufschema 6.1.1 Programmsource 6.1.1.1 Bereitstellen Standard-Include-Datei 6.1.1.2 Bereitstellen Include-Datei fr variable Felder 6.1.1.3 Maussteuerung 6.1.1.4 Bereitstellen Include-Datei fr Formatlayout 6.1.1.5 Versorgen šbergabeparameter 6.1.1.6 Aufruf Treiberprogramm UNIF 6.1.1.7 Auswerten Returnfeld 6.1.2 Compilieren/ Linken 6.1.3 Programmausfhrung 6.1.4 Schattenfunktion 6.1.5 Dynamische Attributmodifikation 6.2 Ablauf Compilerspezifisch 6.2.1 Ablauf in MS ASM, MS Quick ASM ,Turbo ASM 7 Ablauf im Beispiel 8 Beispiel fr "dynamische Attributmodifikation" 9 Beispiel fr "Menauswahl" A1 Cursorsteuerung 1 Warum UniForm Komfortabele Benutzeroberfl„chen sind heutzutage schlichtweg zum MUSS geworden. Doch die Programmierung von Masken, Mens, Fen- stern und dergleichen ist relativ kompliziert und zeitaufwendig. Zudem sollten solche zeitkritischen Routinen in schnellem Assemblercoding realisiert werden. Kurzum - viele Grnde sprechen dafr geignete Hilfsmittel zu verwenden. Die Softwareindustrie bietet fr jeden Compiler dutzende sogenannter Toolboxen an. Der Programmierer hat es bei der Auswahl schwer. Das letztendlich gew„hlte Produkt stellt sich nicht selten als schwierig in der Handhabung heraus oder bietet nicht den Funktionsumfang, der fr eine schnelle und komfortable Formatintegration in sein Programm unabdingbar ist. In jedem Fall aber ist die Anwendung auf eine Programmiersprache, oft gar auf einen bestimmten Compiler begrenzt. UniForm als universelles Formatierungssystem macht endgltig Schluá mit diesem Dilemna. Das System ist sehr leistungsf„hig aber dennoch praktisch ohne Einarbeitung bedienbar. UniForm generiert fr jedes generierte Format automatisch ein einfaches Sourcebeispiel fr den Einsatz in der augenblicklich gew„hlten Programmiersprache. Selbst Programmierneulinge erreichen somit innerhalb weniger Minuten erste beeindruckende Ergebnisse! Durch seine universelle Programmschnittstelle ist der Formateinsatz in allen g„ngigen Compilern realisiert. Das sind im einzelnen... - Microsoft C - Microsoft Pascal - Microsoft Quick C - Microsoft Quick Pascal - Turbo C - Turbo Pascal - Turbo C++ - Microsoft Assembler - Microsoft Basic - Microsoft Quick Assembler - Microsoft Quick Basic - Turbo Assembler - Turbo Basic - Microsoft Cobol - Power Basic - VS Cobol - Microsoft Fortran - Cobol/2 - Clipper - Professional Cobol Bei einem eventuellen Umstieg auf einen anderen Compiler oder gar auf eine andere Programmiersprache sind vorhandene Formate sofort wieder verfgbar. UniForm bietet eine vollst„ndige L”sung von der Formatgenerierung bis zum Formateinsatz und zeichnet sich darberhinaus durch ein breites Funktionsspektrum aus, deren wesentliche Aspekte an dieser Stelle in einer kurzen šbersicht einen ersten Eindruck ber die Leistungsf„higkeit vermitteln soll. Formatgenerierung - Interaktive maskengesteuerte Formatgenerierung - Mausuntersttzung bei der Formaterstellung - Umfangreiche Editierfunktionen - Alphanumerische-, Ganzzahl- und Dezimalfelder - Ein-und Ausgabefelder (nur dem Programm zug„nglich) - Menfelder(als"Menu-Items" in Funktions-Auswahlmens) - Frei w„hlbare Feld-, Text-, Schatten- und Rahmenattribute - Umfangreiche Formatverwaltungsfunktionen - Integriertes Hilfesystem Formataufruf im Programm - Formataufruf mit nur einem Funktionsaufruf - Formateinsatz in allen g„ngigen Programmiersprachen - Automatische Generierung eines Sourcebeispieles - Fenstertechnik, Mens, Popups, Pulldowns ... - Dynamische Attribute fr Felder, Text, Rahmen und Schatten - Mausuntersttzung im Programm - Funktionsauswahl ber Maus, Funktionstasten und Buchstaben - Untersttzung aller g„ngigen Grafikkarten 2 Und So wirds gemacht Das Konzept von UniForm ist in zwei Verarbeitungsschrittenreali- siert. Im ersten Schritt erstellen Sie Ihre Formate interaktiv mit dem UniForm-Formatgenerator. Im zweiten Verarbeitungsschritt bringen Sie die automatisch generierten INCLUDE-Dateien fr das Formatlayout und die variablen Felder in Ihren Sourcecode ein und binden das Programm zusammen mit dem entsprechenden (vom eingesetzten Compiler abh„ngig) UniForm-Treibermodul. 2.1 Formate generieren Optionen einstellen - Compiler, mit dem Sie arbeiten m”chten - Verzeichnis, in dem UniForm alle Dateien ablegen soll - Feldkennzeichen fr die Definition variabler Felder - Standardattribute fr variable Felder, Text und Rahmen - Formatkennzeichen einstellen - Formatname - Formatdimension Formatlayout editieren - fester Text im Format - wahlweise einen einfachen oder dicken Rahmen - wahlweise variable Eingabefelder oder Ausgabefelder Format- und Feldattribute und Feldnamen modifizieren - wahlweise ver„ndern der Standardfeldnamen fr variable Felder - wahlweise ver„ndern der Feldfarben - wahlweise ver„ndern der Text- und/oder Rahmenfarbe 2.2 Programme mit Formaten erstellen Anpassen Programmsource - mit Standard-Include Datei fr Ihren Compiler - mit Include-Datei fr variable Felder (von UniFormgeneriert) - mit Include-Datei fr das Formatlayout (von UniFormgeneriert) - mit UniForm-Funktionsaufruf mit entsprechender Parameterbergabe Programmegenerierung - bersetzen Sourcecode wie gehabt - Linken mit dem entsprechenden UniForm-Treibermodul 3 Ein einfaches Beispiel Frau Mary Mustermann bekommt den Auftrag eintreffende Waren in einer kleinen Datenbank zu verwalten. Frau Mustermann verwendet UniForm fr die Generierung und Einbindung einer Eingabemaske in Ihr Projekt, das Sie mit dem MASM Compiler realisieren will. Formatgenerierung Als erstes definiert Sie im Men die gewnschte Voreinstellung... - Compiler Microsoft Assembler - Verzeichnis C:\muster - Feldkennzeichen fr Eingabefeld alphanumerisch ! fr Eingabefeld numerisch " - Standardattribute fr Eingabefeld alphanumerisch Hellweiss auf Schwarz fr Eingabefeld numerisch Hellweiss auf Schwarz fr Text Schwarz auf Weiss fr Rahmen Schwarz auf Weiss Als n„chstes w„hlt Sie im Men die Funktion und definiert in den Folgemasken den Formatnamen mit "order" und die Formatgr”áe mit Zeile 3 - 18 und Spalte 5 - 70. Frau Mustermann sieht sich einem leeren Format in den gew„hlten Attributeinstellungen fr Text und Rahmen gegenber. Sie editiert das Formatlayout durch Tastatureingabe, den Cursor positioniert Sie ber die Maus oder die entsprechenden Cursor- Richtungstasten. Funktionen wie Linien ziehen, Rechtecke zeichnen, Zeilen bzw. Spalten l”schen oder den Rahmen wahlweise ein- oder auszuschalten beschleunigen die Formaterstellung erheblich. Die variablen Felder definiert Sie durch Eingabe der festgelegten Feldkennzeichen in der gewnschten Feldl„nge oder alternativ durch Die Funktion (F5). Die Edi- tierfunktionen blendet Sie im Bedarfsfall mit F9 ein um sich mit den wichtigsten Editierfunktionen vertraut zu machen. Frau Mustermann sichert Ihr Format duch Eingabe von . Im Verarbeitungsschritt modifiziert Sie schlieálich die von UniForm automatisch vergebenen Standard- Feldnamen (fld0 bis fld5) in "product", "orderdate", "nr", "quantity" und "price. Von der M”glichkeit die Farben fr Ihre Felder oder fr Text und Rahmen zu modifizieren macht Sie keinen Gebrauch. Sie sichert das Format mit . Der Formatgenerator zeigt im Format die erstellten Dateien an, die im eingestellten Verzeichnis abgelegtwerden.und im Men angezeigt werden k”nnen... - order.bld enth„lt Formatdatei fr Formatgenerator - order.mac enth„lt die variablen Felder und Formatlayout - order.smp enth„lt ein Sourcebeispiel - order.att enth„lt Informationen ber Attribute Programmgenerierung Frau Mustermann erg„nzt das von UniForm automatisch generierte Sourcebeispiel um einige wenige Programmanweisungen und Kommentare, und schon steht ihr erstes Programm mit UniForm kurz vor der Vollendung. Der Sourcecode sieht letztlich wie folgt aus. DOSSEG EXTRN UNIF:NEAR EXTRN MOUSEON:NEAR EXTRN MOUSEOFF:NEAR .MODEL SMALL .CODE jmp start INCLUDE UFAS01.MAC INCLUDE order.MAC format DB 'order ' start: push cs pop ds push cs pop es call MOUSEON mov word ptr FKZ,2 mov word ptr SM,0 l1: lea bx,FKZ push bx lea bx,format push bx lea bx,product push bx lea bx,RETC push bx lea bx,SM push bx lea bx,Atestfmt push bx call UNIF add sp,12 ; DB-Verarbeitung mov word ptr FKZ,2 cmp word ptr RETC,110 je l1 fin: call MOUSEOFF mov ah,4ch mov al,0 int 21h END Anschlieáend compiliert und linkt er sein Programm mit dem ASSEMBLER-WINDOW Schnittstellenmodul und stellt dabei die Include-Dateien UFAS01.MAC und ORDER.MAC bereit. Frau Mustermann ruft das generierte Programm "ORDER.EXE" auf und schon sieht sie sich dem Format gegenber - bereit zur Eingabe von Daten. 4 Inbetriebnahme 4.1 Systemanforderungen Fr den Einsatz von UniForm wird folgende Minimalkonfiguration vorausgesetzt - IBM Personal Computer oder 100 % kompatibel - 1 Diskettenlaufwerk/ Festplatte empfohlen - PC-DOS, MS-DOS Version 2.1 und h”her oder DR-DOS - VGA-, EGA-, MDA- oder Hercules-Grafikkarte - wahlweise eine Microsoft-kompatible Maus 4.2 Disketteninhalt Komponenten fr Formatgenerator UNIFORM.EXE Formatgenerierungsprogramm UNIFORM.CFG Konfigurationsdatei UNIFORM.HLP Hilfedatei Komponenten fr MS Assembler, MS Quick Assembler, TurboAssembler UFAS01S.OBJ Treibermodul - model small UFAS01M.OBJ Treibermodul - model medium (nur Vollversion) UFAS01C.OBJ Treibermodul - model compact (nur Vollversion) UFAS01L.OBJ Treibermodul - model large (nur Vollversion) UFAS01.MAC Standard Include Datei UFAS012.ASM Sourcebeispiel "menu" UFAS013.ASM Sourcebeispiel "order" UFAS014.ASM Sourcebeispiel "easy" UFAS015.ASM Sourcebeispiel "dynamic" Formatdateien fr Sourcebeispiele MENU01.BLD Formatdatei "menu01" MENU02.BLD Formatdatei "menu02" MENU03.BLD Formatdatei "menu03" ORDER.BLD Formatdatei "order" MESSAGE.BLD Formatdatei "message" TESTFMT.BLD Formatdatei "testfmt" Dokumentation HILFE.TXT Dokumentation REGIST.FOR Registrierungsformualar 4.3 Installation Der UniForm Formatgenerator ist auf einem beliebigen Verzeichnis auf Festplatte oder Diskettenlaufwerk ablauff„hig. Wir empfehlen die Einrichtung des Verzeichnisses (MD \UNIFORM). Kopieren Sie die Dateien UNIFORM.EXE und UNIFORM.CFG (Konfigurationsdatei) in das Verzeichnis Ihrer Wahl. Die Hilfedatei UNIFORM.HLP wird im Aufrufverzeichnis oder im Hauptverzeichnis des aktuellen Laufwerkes erwartet. Die Treibermodule und die Standard-Include Dateien kopieren Sie in Ihre Compilerverzeichnisse. 5 Formatgenerierung Die Formatgenerierung mit all seinen Formaten und den Funktionen zu den Formaten ist im Handbuch der Vollversion ausfhrlich be- schrieben. An dieser Stelle nur ein Tip. Rechtecke (beim Erstellen des For- matlayouts) zeichnen Sie wie folgt: definieren 1. Koordinate mit ALT-Y definieren 2. Koordinate mit ALT-Z Das Rechteck wird mit dem aktuell eingestellten Linienzeichen dargestellt. 6 Formataufruf Der Aufruf eines mit dem UniForm Formatgenerator erzeugten Formates wird durch Aufruf nur einer einzigen Funktion (UNIF) realisiert. Das Treibermodul ist fr die unterschiedlichen Compiler in unterschiedlicher Auspr„gung vorhanden und bernimmt s„mtliche bei einer Formatverarbeitung anfallenden Aufgaben wie Ausgabeformatierung, Bildschirmausgabe, Cursorsteuerung, Maussteuerung, Eingabeformatierung und liefert Ihnen den Returncode der gedrckten Funktionstaste oder Tastenkombination am Ende der Verarbeitung. Die Treibermodule sind im schnellem Assemblercode geschrieben und zeichnen sich demzufolge durch eine extrem kurze Laufzeit aus. Alle Dateien die fr den Ablauf erforderlich sind, werden von UniForm bei der Formatgenerierung automatisch zur Verfgung gestellt. Sie sind als INCLUDE- bzw. COPY-Elemente in der Programmsource bereitzustellen 6.1 Ablaufschema Fr den Aufruf eines mit UniForm generierten Formates stellen Sie in Ihrer Programmsource die von UniForm zur Verfgung gestellten Include-Dateien bereit, versorgen die šbergabeparameter und rufen das entsprechende Treiberprogramm UNIF auf. Anschlieáend compilieren Sie wie gehabt und Linken Ihr Programm mit dem entsprechenden UniForm Treibermodul zusammen. 6.1.1 Programmsource - Bereitstellen Standard-Include-Datei - Bereitstellen Include-Datei fr variable Felder - Bereitstellen Include-Datei fr Formatlayout - Aufruf Maussteuerung - Versorgen šbergabeparameter - Aufruf Treiberprogramm UNIF - Auswerten Returncode 6.1.1.1 Bereitstellen Standard-Include-Datei Die Standard Include Datei ist je Compiler vorhanden und enth„lt Felddefinitionen fr die šbergabeparameter des Treiberprogrammes sowie - im Bedarfsfall - die Definition des Maschinenspracheunterprogrammes UNIF selbst. Die Standard-Include-Dateien finden Sie auf Ihren Produktdisketten. Detailinformationen entnehmen Sie bitte Punkt 6.2. 6.1.1.2 Bereitstellen Include-Datei fr variable Felder Die Include-Datei fr variable Felder beinhaltet die Definition der variablen Felder fr ein Format im Dialekt des gew„hlten Compilers. Die Include-Datei wird Ihnen bei der Formatgenerierung mit dem UniForm Formatgenerator automatisch zur Verfgung gestellt. Detailinformationen entnehmen Sie bitte Punkt 6.2. 6.1.1.3 Aufruf Maussteuerung Wenn Sie Ihre Formate mit Mausuntersttzung zum Ablauf bringen wollen, muá am Programmanfang die Maus initialisiert und am Programmende die Maus wieder ausgeschaltet werden. Diese Funktionen werden jeweils durch einen einmaligen Funktionsaufruf realisiert. Der Aufruf ist compilerspezifisch und in 6.2 beschrieben. 6.1.1.4 Bereitstellen Include-Datei fr Formatlayout Die Include-Datei fr das Formatlayout beinhaltet die Definition des Formatlayouts fr ein Format im Dialekt des gew„hlten Compi- lers. Die Layoutdatei wird Ihnen bei der Formatgenerierung mit dem UniForm Formatgenerator automatisch zur Verfgung gestellt. Detailinformationen entnehmen Sie bitte Punkt 6.2. 6.1.1.5 Versorgen šbergabeparameter Der Aufruf des Treiberprogrammes UNIF setzt die sinnvolle Versorgung der šbergabeparameter voraus. Die Definition der šbergabeparameter erfolgt in den o. g. Standard-Include-Dateien. In der hier angegebenen Reihenfolge sind im jeweiligen Dialekt des gew„hlten Compilers die folgenden Parameter zu bergeben. Funktionskennzeichen FKZ Formatname FMT Feldname 1. variables Feld Returnfeld RET Schreibmarke SM Formatlayout Daten Funktionskennzeichen FKZ šber das Funktionskennzeichen FKZ wird die auszufhrende Funktion an das Treiberprogramm UNIF bergeben. Das Feld FKZ wird in der Standard-Include-Datei als 2 Byte langes Bin„rfeld zur Verfgung gestellt. In Clipper wird FKZ als 1 Byte langes Characterfeld bereitgestellt. Folgende Funktionen stehen zur Verfgung. 0 + Sichern aktuellen Bildschirminhalt + Rckkehr zum aufrufenden Programm 1 + L”schen Bildschirm + Ausgeben Formatlayout + Ausgeben variable Felder mit den aktuellen Feldinhalten + Warten auf Tastatureingabe(n) + Rckkehr zum aufrufenden Programm nach ENTER/ ESC/ Funktionstaste 2 + Ausgeben Formatlayout + Ausgeben variable Felder mit den aktuellen Feldinhalten + Warten auf Tastatureingabe(n) + Rckkehr zum aufrufenden Programm nach ENTER/ ESC/ Funktionstaste 3 + Ausgeben variable Felder mit den aktuellen Feldinhalten + Warten auf Tastatureingabe(n) + Rckkehr zum aufrufenden Programm nach ENTER/ ESC/ Funktionstaste 4 + Ausgeben Formatlayout eines leeren Formates + Warten auf Tastatureingabe(n) + Rckkehr zum aufrufenden Programm nach ENTER/ ESC/ Funktionstaste 5 + Ausgeben gesicherten Bildschirminhalt 6 + Ausgeben Formatlayout + Ausgeben variable Felder mit den aktuellen Feldinhalten + Rckkehr zum aufrufenden Programm 7 + Ausgeben variable Felder mit den aktuellen Feldinhalten + Rckkehr zum aufrufenden Programm 20*) + Dynamisches Žndern Feldattribut + Rckkehr zum aufrufenden Programm 21*) + Dynamisches Žndern Textattribut + Rckkehr zum aufrufenden Programm 22*) + Dynamisches Žndern Rahmenattribut + Rckkehr zum aufrufenden Programm Bei der dynamischen Žnderung von Text-, Rahmen- und Feldattributen (Funktionen 20 bis 22) wird das neue Attribut im Parameter RET bergeben. Das zu modifizierende variable Feld wird im šbergabeparameter SM als fortlaufende Nummer (beginnend mit 0) bergeben. Beispiel (Attributeinstellung "Rot auf Weiss" fr 5. variables Feld) FKZ = 20 FKZ fr dynamisches Žndern Feldattribut SM = 4 5. variables Feld RET = 244 Code fr Attributeinstellung "Rot auf Weiss" Beispiel (Attributeinstellung "Schwarz auf Grn" fr Textbereich) FKZ = 21 FKZ fr dynamisches Žndern Textattribut RET = 32 Code fr Attributeinstellung "Schwarz auf Grn" Beispiel (Attributeinstellung "Blau auf Rot" fr Rahmenbereich) FKZ = 22 FKZ fr dynamisches Žndern Rahmenattribut RET = 65 Code fr Attributeinstellung "Blau auf Rot" *) Eine weitere M”glichkeit der dynamischen Attributmodifikation ist im Kapitel 6.1.5 beschrieben. Formatname FMT Im šbergabeparameter FMT wird der Formatname an das Treiberprogramm UNIF bergeben. Das Feld FMT wird in der Standard-Include-Datei als 8 Byte langes Characterfeld zur Verfgung gestellt. Der Formatname ist ggf. rechtsbndig mit Leerzeichen aufzufllen. Unterscheidungen zwischen Groá- und Kleinbuchstaben werden nicht gemacht. Feldname des ersten variablen Feldes In diesem šbergabeparameter ist das erste variable Feld bzw. dessen Adresse an das Treiberprogramm UNIF zu bergeben. Bei den Funktion 0, 4 und 5 ist der šbergabeparameter irrelevant und mit FMT zu versorgen. Etwaige compilerspezifische Abweichungen entnehmen Sie bitte aus Punkt 6.2 ff. Returnfeld RET Im šbergabeparameter RET wird der Tastenreturncode an das aufrufende Programm von UNIF zurckgegeben. Das Feld RET wird in der Standard-Include-Datei als 2 Byte langes Bin„rfeld zur Verfgung gestellt. In Clipper wird FKZ als 1 Byte langes Cha- racterfeld bereitgestellt. Der Parameter RET dient auch zur šbergabe des Schattenattributes(siehe 6.1.4). Der Parameter wird weiterhin bei den Funktionen der dynamischen Attributmodifikation fr Text, Rahmen oder variable Felder (Funktionen 20 bis 22) als šbergabeparameter fr den neueinzustellenden Attributcode verwendet. Schreibmarke SM Im šbergabeparameter SM wird die Schreibmarkenposition an das Treiberprogramm UNIF als fortlaufende Nummer (beginnend mit 0) bergeben. Nur zug„ngliche Felder (Eingabefleder und Menfelder) sind dabei zu bercksichtigen. Die Positionierung der Schreibmarke auf Ausgabefelder ist nicht m”glich. Weiterhin wird nach Rckkehr vom Treiberprogramm die aktuelle Schreibmarkenposition zurckgegeben. Das Feld SM wird in der Standard-Include-Datei als 2 Byte langes Bin„rfeld zur Verfgung gestellt. In Clipper wird SM als 1 Byte langes Characterfeld bereitgestellt. Beispiel (Schreibmarke auf 1. zug„ngliches Feld) SM = 0 Beispiel (Schreibmarke auf 5. zug„ngliches Feld) SM = 4 Der Parameter wird darberhinaus bei der Funktion der dynamischen Attributmodifikation fr variable Felder (Funktion 22) als šbergabeparameter (fortlaufende Nummer, beginnend mit 0) fr das zu bearbeitende Feld verwendet. Im Gegensatz zur Schreibmarkenpositionierung sind hier Ausgabefelder zu bercksichtigen. Formatlayout Daten Im šbergabeparameter Daten wird das Formatlayout an das Unterprogramm UNIF bergeben. UniForm stellt fr die Versorgung des Bereiches ein entsprechendes INCLUDE- bzw. COPY-Element zur Verfgung. Das Feld Daten wird in der Standard-Include-Datei als 3 Kilobyte langes Characterfeld zur Verfgung gestellt. 6.1.1.6 Aufruf Treiberprogramm UNIF Der Unterprogrammaufruf ist nach erfolgter Parameterversorgung in Notation des gew„hlten Compilers vorzunehmen. Detailinformationen entnehmen Sie bitte Punkt 6.2. 6.1.1.7 Auswerten Returnfeld Im šbergabeparameter RET wird nach jedem Formataufruf der Tastenreturncode hinterlegt. D. h. nach Bet„tigung einer der u. g. Tasten(kombinationen) erhalten Sie die Steuerung in Ihrem Programm zurck. - Tastenretuncodes ESC 99 | ENTER 100 | F1 101 | SH - F1 111 F2 102 | SH - F2 112 F3 103 | SH - F3 113 F4 104 | SH - F4 114 F5 105 | SH - F5 115 F6 106 | SH - F6 116 F7 107 | SH - F7 117 F8 108 | SH - F8 118 F9 109 | SH - F9 119 F10 110 | SH - F10 120 | ^ - F1 121 | ALT - F1 131 ^ - F2 122 | ALT - F2 132 ^ - F3 123 | ALT - F3 133 ^ - F4 124 | ALT - F4 134 ^ - F5 125 | ALT - F5 135 ^ - F6 126 | ALT - F6 136 ^ - F7 127 | ALT - F7 137 ^ - F8 128 | ALT - F8 138 ^ - F9 129 | ALT - F9 139 ^ - F10 130 | ALT - F10 140 | ALT - 1 141 | ALT - 6 146 ALT - 2 142 | ALT - 7 147 ALT - 3 143 | ALT - 8 148 ALT - 4 144 | ALT - 9 149 ALT - 5 145 | ALT - 10 150 | ALT - A 151 | ^ - A 177 ALT - B 152 | ^ - B 178 ALT - C 153 | ^ - C 179 ALT - D 154 | ^ - D 180 ALT - E 155 | ^ - E 181 ALT - F 156 | ^ - F 182 ALT - G 157 | ^ - G 183 ALT - H 158 | ^ - H 184 ALT - I 159 | ^ - I 185 ALT - J 160 | ^ - J 186 ALT - K 161 | ^ - K 187 ALT - L 162 | ^ - L 188 ALT - M 163 | ^ - M 189 ALT - N 164 | ^ - N 190 ALT - O 165 | ^ - O 191 ALT - P 166 | ^ - P 192 ALT - Q 167 | ^ - Q 193 ALT - R 168 | ^ - R 194 ALT - S 169 | ^ - S 195 ALT - T 170 | ^ - T 196 ALT - U 171 | ^ - U 197 ALT - V 172 | ^ - V 198 ALT - W 173 | ^ - W 199 ALT - X 174 | ALT - Y 175 | ALT - Z 176 | Bei Tastenreturncode 99 (ESC) werden eventuelle Modifikationen variabler Felder verworfen. Fr die Realisierung sog. Balkenmens ber Menfelder beachten Sie bitte folgendes. Bei Bet„tigung der Tasten ENTER von einem Menfeld aus (Cursor zeigt auf Menfeld) wird der Returncode n+200 zurckgegeben (n = Nummer des ungeschtzten variablen Feldes (Eingabefelder und markierbare Felder) innerhalb des aktuellen Formates). Bei der Bet„tigung einer der o. g. Tasten(Kombinationen) auf einem markierbaren Feld wird der Tastenreturncode der Funktionstaste zurckgemeldet. Bei der Eingabe von ESC wird 99 zurckgemeldet. 6.1.2 Compilieren/ Linken Fr das Compilieren Ihres Programmes stellen Sie die Std- Include-Datei, die Include-Dateien fr die variablen Felder und das Formatlayout bereit. Das entsprechende Treibermodul ist in das Programm einzubinden. Detaillierte Informationen ber Compiler- und Linkvorschriften entnehmen Sie bitte aus Ihren Programmierhandbchern. 6.1.3 Programmausfhrung Fr die Ausfhrung Ihrer Programme sind neben der eigentlichen EXE-Datei keine weiteren Komponenten erforderlich. 6.1.4 Schattenfunktion Neben der Rckgabe der Tastenreturncodes wird das Feld RET benutzt um das Schattenattribut fr die Ausgabe von Formatenmit Schatten zu bergeben. Beachten Sie bitte die folgenden Regeln... Bei RET=0 wird das Format ohne Schatten ausgegeben. Bei RET !=0 wird das Format mit Schatten mit dem Attributwert in RET ausgegeben. Die Attributwerte fr Monochrom- bzw. Farbmodus finden Sie im Anhang A3 (Vollversion). Die Schattenfunktion ist fr Differenzausgaben (FKZ=3) nicht relevant. Der Schatten wird am rechten und unteren Rand des Formates angezeigt. 6.1.5 Dynamische Attributmodifikation Jedes Elenent eines Formates ist in dem Bereich hinterlegt. So sind u. a. die Farbattribute fr Text, fr Rahmen und fr alle variablen Felder in einem Byte im Bereich dargestellt. Das gleiche gilt fr den Feldtyp. Durch Modifizie- rung dieses Bytes kann das entsprechende Attribut durch einen einzigen MOVE-Befehl ge„ndert werden. In der Attribut-Distanzdatei (format.ATT) werden die Distanzen zu den jeweiligen Elementen hinterlegt. Die Attribut- Distanzdatei wird bei der Formatgenerierung automatisch frjedes Format erzeugt. Folgende Distanzen im Bereich werden angezeigt... Text-Farbattribut Rahmen-Farbattribut Feld-Farbattribut Feld-Typ Die Farbattribute k”nnen durch Ver„nderung des Bytewertes mit den Werten 0 bis 255 (siehe Attributwerte im Anhang A3) modifiziert werden. Der Feldtyp kann die Werte fr Ausgabefeld bzw. fr Eingabefeld enthalten. Alle anderen Zuweisungen sind ungltig und fhren zu unvorhergesehenen Ergebnissen. Ein Beispiel finden Sie in Kapitel 8. 6.2 Ablauf Compilerspezifisch Im folgenden werden compilerspezifische Hinweise fr den For- mataufruf mit UniForm bersichtlich zusammengefaát. Die šbersicht zeigt insbesondere alle INCLUDE Dateien, die syntaktischen Vorschriften fr den Aufruf des universellen Treiberprogrammes UNIF sowie šbersetzungs- und Linkvorschriften. Ein einfaches Sourcebeispiel verdeutlicht schlieálich den Formateinsatz mit UniForm. In dem Sourcebeispiel wird das Format "order" am Bildschirm angezeigt und das Programm nach einer beliebigen Tasten(kombinations)eingabe beendet (die Formatdatei ORDER.BLD finden Sie auf Ihren Produktdisketten). Das Sour- cebeispiel k”nnen Sie vom UniForm-Formatgenerator durch Generierung des Formates ORDER automatisch generieren lassen. UniForm erzeugt die Sourcedatei ORDER.SMP (SMP fr sample). 6.2.1 Ablauf in MASM, MS Quick ASM, Turbo ASM Standard-Include-Datei UFAS01.MAC Formatspezifische Include-Dateien .MAC Include-Datei fr variable Felder Die Formatlayoutanweisungen sind in .MAC enthalten. Der Feldname ist A. Unterprogrammaufruf Speichermodelle Small und Medium EXTRN UNIF:NEAR PUSH Offset FKZ PUSH Offset FNAME PUSH Offset feldname PUSH Offset RETC PUSH Offset SM PUSH Offset A CALL UNIF Speichermodelle Compact und Large EXTRN UNIF:FAR PUSH Segment FKZ PUSH Offset FKZ PUSH Segment FNAME PUSH Offset FNAME PUSH Segment feldname PUSH Offset feldname PUSH Segment RETC PUSH Offset RETC PUSH Segment SM PUSH Offset SM PUSH Segment A PUSH Offset A CALL UNIF Maussteuerung EXTRN MOUSEON:NEAR/FAR CALL MOUSEON Maus initialisieren EXTRN MOUSEOFF:NEAR/FAR CALL MOUSEOFF Maus wieder ausschalten Compilieren Bereitstellen der o. g. Include-Dateien Linken einbinden UFAS01S.OBJ - Speichermodell Small einbinden UFAS01M.OBJ - Speichermodell Medium einbinden UFAS01C.OBJ - Speichermodell Compact einbinden UFAS01L.OBJ - Speichermodell Large Sourcebeispiel "ORDER.ASM" - Ausgeben Format ORDER šbersetzen: masm order tasm order Linken: link order ufas01s (Speichermodell SMALL) Programmaufruf: order DOSSEG EXTRN UNIF:NEAR EXTRN MOUSEON:NEAR EXTRN MOUSEOFF:NEAR .MODEL SMALL .CODE jmp start INCLUDE UFAS01.MAC ; Standard-Include-Datei INCLUDE order.MAC ; Definieren variable Felder aus format DB 'order ' ; Formatname start: push cs pop ds push cs pop es call MOUSEON ; Maus initialisieren mov word ptr FKZ,2 ; Funktionskennzeichen mov word ptr SM,0 ; Cursorposition mov word ptr RETC,112 ; Schattenattribut lea bx,FKZ ; push Parameter push bx lea bx,format push bx lea bx,fld0 push bx lea bx,RETC push bx lea bx,SM push bx lea bx,Aorder push bx call UNIF ; call UNIF add sp,12 ; stack restaurieren call MOUSEOFF ; Maus ausschalten mov ah,4ch ; Programmende mov al,0 int 21h END Include-Datei fr variable Felder ORDER.MAC product DB 20 DUP(020h) orderdate DB 8 DUP(020h) nr DB 20 DUP(020h) EVEN quantity DD 0 EVEN price DD 0.0 Hinweise Bei den kleinen Datenmodellen werden die šbergabeparameter im Datensegment erwartet. Das Feld RET ist in ASM ein reserviertes Wort. Deshalb heiát der šbergabeparameter RET hier RETC. Die Zeichen ALT 0 und ALT 255 sind in der Formatgenerierung nicht zugelassen. 7 Ablauf im Beispiel Der Formateinsatz mit UniForm wird im folgenden durch weitere Beispiele verdeutlicht. Zun„chst soll das einfache Anwendungsbeispiel aus Kapitel 3 geringfgig erweitert werden. Nach der Erfassung eines Artikels im Men soll in dem berlappenden leeren Format die Aufnahme in die Datenbank bildlich best„tigt werden. Nach Programmbeendigung mit der Funktionstaste soll der gesicherte Bildschirminhalt vor Programmaufruf wieder angezeigt werden. Die Generierung des Formates ist in Kapitel 3 nachzulesen. Zur Generierung des Formates ist einzig zu bemerken, daá es sich hier um ein sog. leeres Format (Format ohne variable Felder) handelt. Somit entf„llt der Verarbei- tungsschritt "Feldnamen/ Attribute" bei der Formaterstellung mit dem UniForm Formatgenerator; der Formataufruf muá mit Funktionskennzeichen FKZ = 4 erfolgen. Das o. g. Beispiel ist in diesem Kapitel in allen von UniForm untersttzten Compilern realisiert. Der Dialekt des Sourcecodes in den Listings bezieht sich jeweils auf eine bestimme Version des jeweiligen Compilers. Etwaige geringfgige Abweichungen in „lteren oder neueren Versionen entnehmen Sie bitte aus IhrenProgrammierhandbchern. Aus Grnden der besseren Lesbarkeit des Sourcecodings wurde in den Beispielen weitgehend auf die Prinzipien der wohlstrukturierten Programmierung verzichtet. Das Sourcecodebeispiel und die beiden Formatdateien ORDER.BLD und MESSAGE.BLD finden Sie brigens auch auf Ihren Produktdisketten (siehe Punkt 4.2, Programmbeispiel "order"). Compiler- und Linkeranweisungen entnehmen Sie bitte aus Kapitel 6 Sie k”nnen also das Programmbeispiel auf einfache Art und Weise ausprobieren! In der Vollversion ist das Programmbeispiel im Handbuch abgedruckt. 8 Beispiel fr "dynamische Attributmodifikation" Durch Modifiziern des Bereiches haben Sie die M”glichkeit die Attribute fr Text, Rahmen und variable Felder dynamisch, d. h. w„hrend des Programmablaufes zu modifizieren. In einem einfachen Beispiel wird das Ablaufprinzip der o. g. Funktion deutlich gemacht. Das Format wird zun„chst in den generierten Attributen fr Text, Rahmen und die beiden variablen Felder und angezeigt. Bei der zweiten Ausgabe werden die Farben der beiden Felder und modifiziert. Bei der dritten Ausgabe wird der Feldtyp der beiden Felder und auf modifiziert. D. h. Sie sind fr den Benutzer nicht mehr zug„nglich. Bei der vierten Ausgabe werden die Farben von Text und Rahmen modifiziert. Bei der fnften und letzten Ausgabe wird das Schattenattribut modifiziert. Das Sourcecodebeispiel und die Formatdatei finden Sie wiederum auf Ihren Produktdisketten (siehe Punkt 4.2, Programmbeispiel "dynamic"). Sie k”nnen also auch dieses Programmbeispiel sofort testen. Compiler- und Linkeranweisungen entnehmen Sie bitte aus Kapitel 6. In der Vollversion ist das Programmbeispiel im Handbuch abgedruckt. 9 Beispiel fr "Menauswahl" In diesem Beispiel wird der Einsatz von Menfeldern demonstriert. Im Ersten Format werden die Menpunkte und zur Auswahl angeboten. Die Funktionen k”nnen ausgew„hlt werden ber Cursor/Maus- Positionierung und Enter oder durch die Rechte Maustaste oder durch Eingabe der hervorgehobenen Buchstaben. Im zweiten Format wird ein Pull-Down Format angezeigt mit den Funktionen . Die Funktionsauswahl kann hier neben den oben beschriebenen M”glichkeiten ber die entsprechende Funktionstaste ausgew„hlt werden. Im letzten Format wird lediglich eine Funktion angedeutet, die durch Auswahl einer der Menpunkte denkbar w„re. Sie kehren mit jeder Eingabe zum ersten Format zurck. Das Sourcecodebeispiel und die oben beschriebenen Formatdateien finden Sie wiederum auf Ihren Produktdisketten (siehe Punkt 4.2, Programmbeispiel "menu"). Anhang A1 - Cursorsteuerung Die Cursor- und Maustasten werden im UniForm-Formatgenerator und in mit UniForm eingesetzten Formaten wie fogt ausgewertet: - Pfeil links Cursor um 1 Spalte nach links. Bei Feldanfang springen zu Feldende des vorherigen Feldes. - Pfeil rechst Cursor um 1 Spalte nach rechts. Bei Feldende springen zu Feldanfang des n„chsten Feldes. - Home Cursor auf Feldanfang des aktuellen Feldes. - End Cursor auf Feldende des aktuellen Feldes. - Pfeil unten Cursor auf Feldanfang des n„chsten Feldes. - Pfeil oben Cursor auf Feldanfang des vorherigen Feldes. - Page Down Cursor auf Feldanfang des n„chsten Feldes - Page Up Cursor auf Feldanfang des vorherigen Feldes. - Back Slash L”schen aktuelle Spalte und Cursor um 1 Zeichen nach links. - Del L”schen Zeichen an Cursorposition. Das Fllzeichen am Feldende ist Space. bzw. Null. - Ins (Modus) Einfgen Zeichen an Cursorposition. Das letzte Zeichen geht verloren. - Maustaste links Cursor an Mausposition. - Maustaste rechts Cursor an Mausposition und Rckkehr zum aufrufenden Programm (Rckgabe ENTER (RET = 100)). - Zeichen an Feldende Cursor auf Feldanfang des n„chsten Feldes. - SPACE (NUM-Felder) Im Vorkammabereich wird SPACE akzeptiert. Im Nachkommabereich wird SPACE durch 0 ersetzt. An Ebnet Software D-8000 Mnchen 70 Passauerstrasse 2 b REGISTRIERUNG/ BESTELLUNG Softwareprodukt ASM-WINDOW ------------------------------------------------------ Hiermit bestelle(n) ich(wir) das Softwareprodukt ASM-WINDOW zum Preis von DM 85.-- zzgl. Versand (DM 4.--). Die Bezahlung soll erfolgen: ( ) durch beigefgten Verrechnungsscheck ( ) durch Vorauszahlung auf das nachfolgendes Konto: Postgiroamt Mnchen BLZ. 700 100 80 Konto 418194-800 ( ) durch Postnachnahme zuzglich Versandkosten ( ) in der BRD DM 3,-- ( ) im Ausland DM 10,-- Die Lieferung soll erfolgen: ( ) im 5.25 Zoll Disketten-Format ( ) im 3.5 Zoll Disketten-Format Die genannten Preise verstehen sich inklusive Mehrwertsteuer. Als registrierter Anwender werden Sie ber knftige Programm- versionen automatisch benachrichtigt. Neue Programm-Versionen k”nnen im Updateservice zum Vorzugspreis von DM 45.-- bestellt werden. Anwenderuntersttzung (telefonisch/schriftlich) wird ausnahmslos fr registrierte Anwender geleistet. Absender: Datum/Unterschrift: .............................