浜様様様様様様様様様様様様様様様様様様様様様様様様様様様様様様様様様融 栩烝烝烝烟 栩 栩 栩 栩 栩 栩 栩 栩 栩 栩 栩 栩 栩 栩樛樛樛 栩 烝 栩 栩 栩 栩 栩 栩 栩 栩 栩 栩栩栩栩栩 栩栩栩栩栩 栩栩栩栩栩 栩栩栩栩栩 S O F T W A R E ******************************************************************** * * * W A R N G U L B * * * * VERSION 3.40 (C) 1989, 1990 G. Blumert * ******************************************************************** 藩様様様様様様様様様様様様様様様様様様様様様様様様様様様様様様様様様夕 Gunnar Blumert Burg, im April 1989 Hafenstr. 17 2224 Burg/Dithm. Neben WARNGULB kann ich noch folgende Angebote machen: ******************************************************************* Hardware: - PC/XT/AT 16-Kanal-Schaltinterface 8 Eingnge fr Gleich- und Wechselspannungen von 4 - 250V 8 Ausgnge, Umschalter 250 V / 2 A Ein- und Ausgnge galvanisch getrennt inklusive Steckkarte und Gehuse Best.-Nr. Mi - 205008 nur 358,-- DM - V24 / RS 232 C - Schnittstellentester Test der logischen Zustnde Test der Handshake-Leitungen Beliebige Verdrahtung der Handshake-Leitungen Aufschaltung von Festpegeln auf jede Leitung mglich Mglichkeit der Verbindung zweier Schnittstellen inklusive Gehuse Best-Nr. Mi - 205003 nur 420,-- DM - Centronics-Schnittstellentester Test von 8-Bit-Schnittstellen Prfung von dynamischen und statischen Signalen Leitungstest inklusive Gehuse Best-Nr. Mi - 205004 nur 260,-- DM - Schnittstellenwandler Umsetzung von Signalen einer parallelen Schnittstelle auf eine serielle Schnittstelle und umgekehrt inklusive Gehuse Best.-Nr. Mi 205005 nur 312,-- DM - 8 / 16-Bit A/D - D/A Wandlerkarte A/D-Wandler mit 16-Bit Auflsung, Genauigkeit 0,005% Umsetzrate 2/s bis 1000/s (programmierbar) bis zu 8 Eingangsgren abfragbar D/A-Wandler mit 12-Bit Auflsung, Genauigkeit 0,025% 8 Ausgnge zu Steuerzwecken Best.-Nr. Mi 205011 ******************************************************************* Software - Das Kalenderprogramm K1 Dieses kann zwar nur Kalender anzeigen und ausdrucken, dafr aber nicht nur den heute blichen gregorianischen Kalender, sondern obendrein den julianischen und den der franzsischen Revolution. Demoversion: DM 10,-- inkl. Versand Vollversion: DM 49,-- + DM 4,-- Versandkosten - Der Quellcode des Kalendariums (mit Bestimmung aller Feiertage) kann fr DM 88,-- erworben werden. Es handelt sich um eine Turbo-Pascal 4.0 - Unit, die Ihnen auf einfache Art und Weise die Aufnahme des Kalenders in eigene An- wendungen ermglicht. Ein einziger Befehl bewirkt die Anzeige des Kalenders. Die Berechnung der Mondphasen ist ebenfalls enthalten. Hier folgt jetzt die Interfacedokumentation der Kalenderunit: { $D-,I-,R-,V-} {Diese UNIT enthlt einen kompletten Kalender. Wird sie mit USES CALENDAR IN ein Programm eingebunden, kann er jederzeit mit KALENDER(X,Y) aufgerufen werden, wobei x und y die Koordinaten der linken oberen Ecke bezeichnen. x < 26; y < 8 Sprache: Turbo-Pascal 4.0 Getestet auf einem Noname-Turbo-XT mit Herkules-Karte. Sollte auf allen PC/XT/AT-Kompati- blen laufen. (C) 1989 Gunnar Blumert Hafenstr. 17 D-2224 Burg/Dithm. } UNIT KALUNIT; INTERFACE USES crt, dos; TYPE ftstring = STRING[18]; {Stringdefinition fr Feiertage } wtstring = STRING[10]; {Stringdefinition fr Wochentage } ftag_arr = ARRAY[0..27] OF ftstring; {ARRAY fr Feiertage - [0] verfgbar} {z. B. fr Samstage } wtag_arr = ARRAY[0..6] OF wtstring; {entsprechend fr Wochentage } Mon_arr = ARRAY[1..12] OF STRING[9]; {nimmt Monatsnamen auf } kalenderdatum = RECORD {Array fr 6 Daten zur Aufnahme der } t,m,j: WORD; {Mondphasen } h, min: BYTE END; mondmonat = ARRAY[1..6] OF kalenderdatum; CONST monstring: mon_arr = ('Januar', 'Februar', 'Mrz', 'April', 'Mai', 'Juni', 'Juli', 'August', 'September', 'Oktober', 'November', 'Dezember'); wtag: wtag_arr = ('Sonntag', 'Montag', 'Dienstag', 'Mittwoch', 'Donnerstag', 'Freitag', 'Sonnabend'); ftag: ftag_arr = ('', { 0} 'Neujahr', { 1} 'Heilige 3 Knige', { 2} 'Muttertag', { 3} 'Erntedankfest', { 4} 'Allerheiligen', { 5} 'Volkstrauertag', { 6} 'Bu- und Bettag', { 7} 'Totensonntag', { 8} 'Rosenmontag', { 9} 'Fasching', {10} 'Aschermittwoch', {11} 'Karfreitag', {12} 'Ostersonntag', {13} 'Ostermontag', {14} 'Himmelfahrt', {15} 'Pfingstsonntag', {16} 'Pfingstmontag', {17} 'Fronleichnam', {18} 'Maifeiertag', {19} 'Tag d. dt. Einheit',{20} 'Mari Himmelfahrt', {21} 'Heiligabend', {22} '1. Weihnachtstag', {23} '2. Weihnachtstag', {24} 'Silvester', {25} 'Pfingsten/Muttert', {26} 'Fronlchnm/17.Juni' {27}); VAR tag,monat,jahr,wt : WORD; {wt = Wochentagsnummer} tagnr,o_nr : INTEGER; eingabeK : CHAR; FUNCTION JULIAN_DAY(t,m,j: WORD): LongInt; {Ermittelt zu jedem beliebigen gltigen gregorianischen Datum die } {julianische Tagnummer - gut geeignet zur Ermittlung von Differenzen} PROCEDURE JD_GREG_DATE(jd: LongInt; VAR tt,mm,jj: WORD); {Ermittelt zu einer julianischen Tagnummer das greg. Datum } FUNCTION SCHALTJAHR(jahr:WORD): BYTE; {Liefert fr Schaltjahre den Korrekturwert 1, sonst 0 } FUNCTION ERMITTLE_WOCHENTAGNUMMER(tag,monat,jahr: WORD): WORD; {Liefert die Nummer des Wochentages: 0 = Sonntag 1 = Montag 2 = Dienstag 3 = Mittwoch 4 = Donnerstag 5 = Freitag 6 = Samstag 7 = Sonntag } FUNCTION TAG_IM_JAHR(tag,monat,jahr: WORD): INTEGER; {Liefert die laufende Nummer des Tages im Jahr zurck } FUNCTION OSTERN(jahr: WORD): INTEGER; {Liefert die laufende Tagnummer von Ostersonntag } {Die bisher verwendete Formel lie leider einige Ausnahmen unberck-} {sichtigt. } {Daher werden jetzt Tabellen verwendet. } {Interessierten sei das Buch "Kalender und Chronologie" von } {Heinz Zemanek, Oldenbourg-Verlag, ISBN 3-486-20447-5 empfohlen. } FUNCTION FEIERTAG_NR(wotag,tnr,onr: WORD; sj: BYTE): BYTE; {Liefert die Nummer des Feiertages (0 = kein Feiertag) } {wotag = Wochentagnummer } {tnr = Tagnummer } {onr = Tagnummer von Ostersonntag } {Ist bei Prfung von mehreren Daten eines Jahres schneller als die } {Funktion FEIERTAG,da Ostern nicht jedesmal neu berechnet werden mu} FUNCTION FEIERTAG(tag,monat,jahr: WORD): ftstring; {Liefert den Namen des Feiertages oder Leerstring } FUNCTION ANZ_TAGE(monat,jahr: WORD):BYTE; {Bestimmt die Anzahl der Tage eines Monats } PROCEDURE ERMITTLE_DATUM(nummer:INTEGER;VAR tag,monat:WORD;jahr:WORD); {Ermittelt aus der Tagnummer und der Jahresangabe das Datum } FUNCTION KAL_WO(tag,monat,jahr: WORD): BYTE; {Ermittelt aus dem Datum die Nummer der dazugehrigen Kalenderwoche } {Wochen beginnen am Montag, die erste Woche des Jahres beginnt am } {ersten Montag des Jahres; daher haben einige Jahre 53 Wochen } PROCEDURE GET_MoonMonth(m,j: WORD; VAR mond: mondmonat); {Eingabe: Monat, Jahr } {Ausgabe: Ein Array aus 6 Daten, von denen die ersten 3 Vollmondter-} {mine und die letzten 3 Neumondtermine enthalten } FUNCTION CHECK_DATE(tag,monat,jahr: WORD): BOOLEAN; {Prfung der Datumseingabe auf fehlerhafte Werte } {Werte, die den Gltigkeitsbereich des Kalendariums berschreiten, } {(1.1.1700 bis 31.12.2199) werden abegewiesen. } {Der Gregorianische Kalender wurde nicht berall gleichzeitig einge-} {fhrt. } PROCEDURE KALENDER(eckeX,eckeY:BYTE); {Parameter bestimmen die} VAR eingabeh : CHAR; {linke obere Ecke } Alle Angebote freibleibend, Liefermglichkeit und Preisnderung vorbehalten!