home *** CD-ROM | disk | FTP | other *** search
- *********************************************************
- * Prozeduren für UTILITY
- *********************************************************
- * CLOCKHandler
- * Funktion 0
- * SETCLOCK
- * p ist vom Typ C und enthält entweder
- * "0" : Uhr aussschalten
- * "1" : Uhr einschalten
- * " 10,10,15" : (Beispiel) wenn die erste Stelle
- * anders als 0 oder 1 ist, müssen
- * die folgenden Zeichen eine Folge
- * von drei Zahlen darstellen, wo-
- * die erste die Zeile, die zweite
- * die Spalte und die dritte den
- * Farbcode angibt. Das Beispiel
- * positioniert also die Uhr in Zei-
- * le 10, Spalte 10 in hellweiß.
- *********************************************************
- procedure setclock
- parameters p
- privat out
- do case
- case p="0"
- call utility with "00:"
- case p="1"
- call utility with "01:"
- otherwise
- out=stuff(p,1,1,"02:")
- call utility with out
- endcase
- return
- **********************************************************
- **********************************************************
- * SCREENHandler
- * Funktion 1
- * Unterfunktionen
- * 1 : SCROLL
- * 2 : WCLEAR
- * 3 : WSTR
- * 4 : WSTRC
- * 5 : WPUSH
- * 6 : WGET
- * 7 : WPOP
- **********************************************************
- * SCROLL
- * scrolled das aktive window (falls noch keins
- * geöffnet wurde das gesamte Fenster) um lines
- * nach oben oder unten
- *
- procedure scroll
- parameters lines
- call utility with "11:"+str(lines,2)
- return
- **********************************************************
- * WCLEAR
- * löscht das aktive Window (oder den ganzen
- * Bildschirm)
- *
- procedure wclear
- call utility with "12:"
- return
- **********************************************************
- * WSTR
- * direktes Schreiben, absolute Koordianten
- * Form: 13:<y>,<x>,<col>;<string>
- * mit <y> Zeile [0..24]
- * <x> Spalte [0..79]
- * <col> Farbe [0..255]
- * <string> Text
- * Wirklich schnell ist diese Zeichenausgabe
- * natürlich nur, wenn nicht diese Prozedur
- * aufgerufen wird, sondern direkt ein CALL-
- * Befehl mit den entsprechenden Parametern
- * angegeben wird. Auf die Variable out könnte
- * hier verzichtet werden, wenn die Zeilenlänge
- * größer als 60 sein dürfte; sagt das der TOOL-
- * BOX-Redaktion.
- *
- procedure wstr
- parameters y,x,col,str
- privat out
- out="13:"+str(y,2)+","+str(x,2)+","
- out=out+str(col,3)+";"+str
- call utility with out
- return
- **********************************************************
- * WSTRC
- * mit Zeichenkontrolle und window relativer
- * Cursorpositionierung
- * Form: 14:<y>,<x>,<col>;<string>
- * Erläuterung siehe oben
- *
- procedure wstrc
- parameters y,x,col,str
- privat out
- out="14:"+str(y,2)+","+str(x,2)+","
- out=out+str(col,3)+";"+str
- call utility with out
- return
- **********************************************************
- * WRITE
- * mit Zeichenkontrolle ab window relativer
- * Cursorposition
- * Form: 14:<col>;<string>
- * Erläuterung siehe oben
- *
- procedure write
- parameters col,str
- privat out
- out="14:"+str(col,3)+";"+str
- call utility with out
- return
- **********************************************************
- * WPUSH
- * öffnet ein neues Fenster mit den Koordinaten
- * uly,ulx,lry,lrx, die falls kein Rahmen (fr_type=0)
- * definiert wurde den freien Textbereich definieren,
- * andernfalls liegt der Textbereich innerhalb der
- * Koordinaten. Als Rahmentypen gibt es 5 Arten:
- * ┌────┐
- * 1 : │ │
- * └────┘
- * ╔════╗
- * 2 : ║ ║
- * ╚════╝
- * ╓────╖
- * 3 : ║ ║
- * ╙────╜
- * ╒════╕
- * 4 : │ │
- * ╘════╛
- * ██████
- * 5 : █ █
- * ██████
- * Die Farben für Rahmen und Textbereich werden in
- * der SET-COLOR Notation angegeben.
- * Die letzte Cursorposition und -form wird
- * gesichert.
- *
- procedure wpush
- parameters uly,ulx,lry,lrx,fr_color,fr_type,t_color,bheader
- privat out
- out="15:"+str(uly,2)+","+str(ulx,2)+","+str(lry,2)+","
- out=out+str(lrx,2)+","+fr_color+","+str(fr_type,2)+","
- out=out+t_color+";"+bheader
- call utility with out
- if substr(out,4,1)="1"
- ? "wpush : Kein Speicher mehr frei"
- cancel
- endif
- if substr(out,4,1)="2"
- ? "wpush : Stack ist voll"
- cancel
- endif
- if substr(out,4,1)="3"
- ? "wpush : Ungültige Parameter"
- cancel
- endif
- set color to &t_color
- return
- **********************************************************
- * WGET
- * holt den gesicherten Inhalt des Windowbereichs
- * zurück ohne das Window zu desaktivieren und vom
- * Stack zu holen. Ein eventuell definierter Rahmen
- * wird dabei gelöscht.
- *
- procedure wget
- privat out
- out="16: "
- call utility with out
- if substr(out,4,1)="2"
- ? "wget : Stack ist leer"
- cancel
- endif
- if substr(out,4,1)="3"
- ? "wget : Ungültige Parameter"
- endif
- return
- **********************************************************
- * WPOP
- * holt den gesicherten Inhalt des Windowbereichs
- * zurück und "popped" das Window vom Stack. Die
- * Kontrolle wird vom untergeordneten Window über-
- * nommen. Cursorposition und -form werden restau-
- * riert.
- *
- procedure wpop
- privat out
- out="17: "
- call utility with out
- if substr(out,4,1)="2"
- ? "wpop : Stack ist leer"
- endif
- if substr(out,4,1)="3"
- ? "wpop : Ungültige Parameter"
- endif
- return
- **********************************************************
- * WAITING
- * öffnet ein Fenster mit den oberen Koordinaten
- * (uly,ulx), gibt eine Wartemeldung aus und
- * wartet auf einen Tastendruck.
- *
- procedure waiting
- parameters uly,ulx
- do wpush with uly,ulx,uly+2,ulx+38,'+w',1,'',""
- @ uly+1,ulx+2 say "Bitte eine Taste drücken ..."
- wait ""
- do wpop
- return
- **********************************************************
- **********************************************************
- * PRINTHandler
- * Funktion 2
- * SETPRINT
- * übergibt einen String an den Handler und löst
- * die vordefinierte Funktion aus. Implementiert
- * sind folgende Funktionen (für einen NEC P9 XL),
- * d.h. die folgenden Zeichenketten sind im LOADER
- * definiert:
- * RESET : Reset des Druckers
- * ELITE_HS : Elite Highspeed
- * PICA_DRAFT : Pica Normalschrift
- * PICA_NAR : Pica Eng 18 dpi
- * NAR_OFF : Engschrift aus
- * 8_LPI : 8 Zeilen/Zoll
- * 6_LPI : 6 Zeilen/Zoll
- * 25_LPP : 25 Zeilen/Seite
- * 12_IPP : 12 Zoll/Seite
- * UNDERSCORE_ON : Unterstreichen an
- * UNDERSCORE_OFF : Unterstreichen aus
- * DOUBLE_HEIGHT_ON : doppelte Zeichenhöhe
- * DOUBLE_HEIGHT_OFF : normale Zeichenhöhe
- * LQ_ON : Letter Quality an
- * LQ_OFF : und aus
- *
- procedure setprint
- parameters p
- call utility with "20:"+p
- return
- **********************************************************
- **********************************************************
- * CURSOR
- * Funktion 3
- * SETCURS
- * übergibt einen String vom Format "<u>,<l>" an
- * den Handler. <u> ist eine Dezimalzahl für die
- * Startzeile, <l> eine Dezimalzahl für die End-
- * zeile (siehe auch SERV.C: setcurshape()).
- *
- procedure setcurs
- parameters a
- call utility with "30:"+a
- return
- **********************************************************
- **********************************************************
- * DELAY
- * Funktion 4
- * DELAY
- * läßt den Rechner für ca. a Millisekunden
- * pausieren
- *
- procedure delay
- parameters a
- call utility with "40:"+str(a,5)
- return
- **********************************************************