Conversion to ASCII of German comments by Dietmar Warning
This commit is contained in:
parent
d2fd6d545a
commit
c80365cbf3
|
|
@ -1,5 +1,5 @@
|
||||||
/* Hauptprogramm für Spice 3F5 unter Windows95
|
/* Hauptprogramm fuer Spice 3F5 unter Windows95
|
||||||
Autor: Wolfgang Mües
|
Autor: Wolfgang Muees
|
||||||
Stand: 28.10.97
|
Stand: 28.10.97
|
||||||
Autor: Holger Vogt
|
Autor: Holger Vogt
|
||||||
Stand: 01.05.2000
|
Stand: 01.05.2000
|
||||||
|
|
@ -8,7 +8,7 @@
|
||||||
#include "config.h"
|
#include "config.h"
|
||||||
#ifdef HAS_WINDOWS
|
#ifdef HAS_WINDOWS
|
||||||
|
|
||||||
#define STRICT // strikte Typprüfung
|
#define STRICT // strikte Typpruefung
|
||||||
#define WIN32_LEAN_AND_MEAN
|
#define WIN32_LEAN_AND_MEAN
|
||||||
#include <windows.h> // normale Windows-Aufrufe
|
#include <windows.h> // normale Windows-Aufrufe
|
||||||
#include <windowsx.h> // Win32 Message Cracker
|
#include <windowsx.h> // Win32 Message Cracker
|
||||||
|
|
@ -30,19 +30,19 @@
|
||||||
|
|
||||||
// bool defined
|
// bool defined
|
||||||
// Konstanten
|
// Konstanten
|
||||||
#define TBufSize 2048 // Größe des Textbuffers
|
#define TBufSize 2048 // Groesze des Textbuffers
|
||||||
#define CR VK_RETURN // Carriage Return
|
#define CR VK_RETURN // Carriage Return
|
||||||
#define LF 10 // Line Feed
|
#define LF 10 // Line Feed
|
||||||
#define SE 0 // StringEnde
|
#define SE 0 // StringEnde
|
||||||
#define BorderSize 8 // Umrandung des Stringfeldes
|
#define BorderSize 8 // Umrandung des Stringfeldes
|
||||||
#define SBufSize 100 // Größe des Stringbuffers
|
#define SBufSize 100 // Groesze des Stringbuffers
|
||||||
#define IOBufSize 1024 // Größe des printf-Buffers
|
#define IOBufSize 1024 // Groesze des printf-Buffers
|
||||||
#define HistSize 20 // Zeilen History-Buffer
|
#define HistSize 20 // Zeilen History-Buffer
|
||||||
#define StatusHeight 25 // Höhe des Status Bars
|
#define StatusHeight 25 // Hoehe des Status Bars
|
||||||
#define StatusFrame 2 // Abstand Statusbar / StatusElement
|
#define StatusFrame 2 // Abstand Statusbar / StatusElement
|
||||||
#define StatusElHeight (StatusHeight - 2 * StatusFrame)
|
#define StatusElHeight (StatusHeight - 2 * StatusFrame)
|
||||||
#define SourceLength 400 // Platz für Source File Name
|
#define SourceLength 400 // Platz fuer Source File Name
|
||||||
#define AnalyseLength 100 // Platz für Analyse
|
#define AnalyseLength 100 // Platz fuer Analyse
|
||||||
|
|
||||||
// Typen
|
// Typen
|
||||||
typedef char SBufLine[SBufSize+1]; // Eingabezeile
|
typedef char SBufLine[SBufSize+1]; // Eingabezeile
|
||||||
|
|
@ -56,7 +56,7 @@ HWND swString; // Eingabezeile
|
||||||
HWND hwStatus; // Status-Balken
|
HWND hwStatus; // Status-Balken
|
||||||
HWND hwSource; // Anzeige des Source-Namens
|
HWND hwSource; // Anzeige des Source-Namens
|
||||||
HWND hwAnalyse; // Anzeige des Analyse-Fensters
|
HWND hwAnalyse; // Anzeige des Analyse-Fensters
|
||||||
static int nReturnCode = 0; // Rückgabewert von WinMain
|
static int nReturnCode = 0; // Rueckgabewert von WinMain
|
||||||
static int nShowState; // Anzeigemodus des Hauptfensters
|
static int nShowState; // Anzeigemodus des Hauptfensters
|
||||||
static WNDCLASS hwMainClass; // Klassendefinition des Hauptfensters
|
static WNDCLASS hwMainClass; // Klassendefinition des Hauptfensters
|
||||||
static LPCTSTR hwClassName = "SPICE_TEXT_WND";// Klassenname des Hauptfensters
|
static LPCTSTR hwClassName = "SPICE_TEXT_WND";// Klassenname des Hauptfensters
|
||||||
|
|
@ -75,17 +75,17 @@ static WNDCLASS hwElementClass; // Klassendefinition der Statusanzeigen
|
||||||
static LPCTSTR hwElementClassName = "ElementClass";
|
static LPCTSTR hwElementClassName = "ElementClass";
|
||||||
static LPCTSTR hwSourceWindowName = "SourceDisplay";
|
static LPCTSTR hwSourceWindowName = "SourceDisplay";
|
||||||
static LPCTSTR hwAnalyseWindowName = "AnalyseDisplay";
|
static LPCTSTR hwAnalyseWindowName = "AnalyseDisplay";
|
||||||
static int RowHeight = 16; // Höhe einer Textzeile
|
static int RowHeight = 16; // Hoehe einer Textzeile
|
||||||
static int LineHeight = 25; // Höhe der Eingabezeile
|
static int LineHeight = 25; // Hoehe der Eingabezeile
|
||||||
static int VisibleRows = 10; // Anzahl der sichtbaren Zeilen im Textfenster
|
static int VisibleRows = 10; // Anzahl der sichtbaren Zeilen im Textfenster
|
||||||
static BOOL DoUpdate = FALSE; // Textfenster updaten
|
static BOOL DoUpdate = FALSE; // Textfenster updaten
|
||||||
static WNDPROC swProc = NULL; // originale Stringfenster-Prozedur
|
static WNDPROC swProc = NULL; // originale Stringfenster-Prozedur
|
||||||
static WNDPROC twProc = NULL; // originale Textfenster-Prozedur
|
static WNDPROC twProc = NULL; // originale Textfenster-Prozedur
|
||||||
static SBufLine HistBuffer[HistSize]; // History-Buffer fürs Stringfenster
|
static SBufLine HistBuffer[HistSize]; // History-Buffer fuers Stringfenster
|
||||||
static int HistIndex = 0; // History-Verwaltung
|
static int HistIndex = 0; // History-Verwaltung
|
||||||
static int HistPtr = 0; // History-Verwaltung
|
static int HistPtr = 0; // History-Verwaltung
|
||||||
|
|
||||||
extern BOOL oflag; // falls 1, Output über stdout in File umgeleitet
|
extern BOOL oflag; // falls 1, Output ueber stdout in File umgeleitet
|
||||||
extern FILE *flogp; // siehe xmain.c, hvogt 14.6.2000
|
extern FILE *flogp; // siehe xmain.c, hvogt 14.6.2000
|
||||||
int argc;
|
int argc;
|
||||||
char *argv[];
|
char *argv[];
|
||||||
|
|
@ -97,7 +97,7 @@ void DisplayText( void);
|
||||||
|
|
||||||
// --------------------------<History-Verwaltung>------------------------------
|
// --------------------------<History-Verwaltung>------------------------------
|
||||||
|
|
||||||
// Alle Puffer löschen und Zeiger auf den Anfang setzen
|
// Alle Puffer loeschen und Zeiger auf den Anfang setzen
|
||||||
void HistoryInit(void)
|
void HistoryInit(void)
|
||||||
{
|
{
|
||||||
int i;
|
int i;
|
||||||
|
|
@ -107,7 +107,7 @@ void HistoryInit(void)
|
||||||
HistBuffer[i][0] = SE;
|
HistBuffer[i][0] = SE;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Erste Zeile des Buffers löschen; alles rückt auf
|
// Erste Zeile des Buffers loeschen; alles rueckt auf
|
||||||
void HistoryScroll(void)
|
void HistoryScroll(void)
|
||||||
{
|
{
|
||||||
memmove( &(HistBuffer[0]), &(HistBuffer[1]), sizeof(SBufLine) * (HistSize-1));
|
memmove( &(HistBuffer[0]), &(HistBuffer[1]), sizeof(SBufLine) * (HistSize-1));
|
||||||
|
|
@ -126,14 +126,14 @@ void HistoryEnter( char * newLine)
|
||||||
HistIndex = HistPtr;
|
HistIndex = HistPtr;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Mit dem Index eine Zeile zurückgehen und den dort stehenden Eintrag zurückgeben
|
// Mit dem Index eine Zeile zurueckgehen und den dort stehenden Eintrag zurueckgeben
|
||||||
char * HistoryGetPrev(void)
|
char * HistoryGetPrev(void)
|
||||||
{
|
{
|
||||||
if (HistIndex) HistIndex--;
|
if (HistIndex) HistIndex--;
|
||||||
return &(HistBuffer[HistIndex][0]);
|
return &(HistBuffer[HistIndex][0]);
|
||||||
}
|
}
|
||||||
|
|
||||||
// Mit dem Index eine Zeile vorgehen und den dort stehenden Eintrag zurückgeben
|
// Mit dem Index eine Zeile vorgehen und den dort stehenden Eintrag zurueckgeben
|
||||||
char * HistoryGetNext(void)
|
char * HistoryGetNext(void)
|
||||||
{
|
{
|
||||||
if (HistIndex < HistPtr) HistIndex++;
|
if (HistIndex < HistPtr) HistIndex++;
|
||||||
|
|
@ -171,7 +171,7 @@ void WaitForMessage(void)
|
||||||
|
|
||||||
// -----------------------------<Stringfenster>--------------------------------
|
// -----------------------------<Stringfenster>--------------------------------
|
||||||
|
|
||||||
// Löschen des Stringfensters
|
// Loeschen des Stringfensters
|
||||||
void ClearInput(void)
|
void ClearInput(void)
|
||||||
{
|
{
|
||||||
// Darstellen
|
// Darstellen
|
||||||
|
|
@ -228,7 +228,7 @@ void AdjustScroller(void)
|
||||||
DoUpdate = FALSE;
|
DoUpdate = FALSE;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Löschen einer Zeile im Textbuffer
|
// Loeschen einer Zeile im Textbuffer
|
||||||
void _DeleteFirstLine(void)
|
void _DeleteFirstLine(void)
|
||||||
{
|
{
|
||||||
char * cp = strchr( TBuffer, LF);
|
char * cp = strchr( TBuffer, LF);
|
||||||
|
|
@ -244,13 +244,13 @@ void _DeleteFirstLine(void)
|
||||||
TBuffer[TBufEnd] = SE;
|
TBuffer[TBufEnd] = SE;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Anfügen eines chars an den TextBuffer
|
// Anfuegen eines chars an den TextBuffer
|
||||||
void AppendChar( char c)
|
void AppendChar( char c)
|
||||||
{
|
{
|
||||||
// Textbuffer nicht zu groß werden lassen
|
// Textbuffer nicht zu grosz werden lassen
|
||||||
while ((TBufEnd+4) >= TBufSize)
|
while ((TBufEnd+4) >= TBufSize)
|
||||||
_DeleteFirstLine();
|
_DeleteFirstLine();
|
||||||
// Zeichen anfügen
|
// Zeichen anfuegen
|
||||||
TBuffer[TBufEnd++] = c;
|
TBuffer[TBufEnd++] = c;
|
||||||
TBuffer[TBufEnd] = SE;
|
TBuffer[TBufEnd] = SE;
|
||||||
DoUpdate = TRUE;
|
DoUpdate = TRUE;
|
||||||
|
|
@ -259,18 +259,18 @@ void AppendChar( char c)
|
||||||
DisplayText();
|
DisplayText();
|
||||||
}
|
}
|
||||||
|
|
||||||
// Anfügen eines Strings an den TextBuffer
|
// Anfuegen eines Strings an den TextBuffer
|
||||||
void AppendString( const char * Line)
|
void AppendString( const char * Line)
|
||||||
{
|
{
|
||||||
size_t i;
|
size_t i;
|
||||||
if (!Line) return;
|
if (!Line) return;
|
||||||
|
|
||||||
// Zeilenlänge bestimmen
|
// Zeilenlaenge bestimmen
|
||||||
i = strlen(Line);
|
i = strlen(Line);
|
||||||
// Textbuffer nicht zu groß werden lassen
|
// Textbuffer nicht zu grosz werden lassen
|
||||||
while ((i+TBufEnd+3) >= TBufSize)
|
while ((i+TBufEnd+3) >= TBufSize)
|
||||||
_DeleteFirstLine();
|
_DeleteFirstLine();
|
||||||
// Zeile dranhängen
|
// Zeile dranhaengen
|
||||||
strcpy( &TBuffer[TBufEnd], Line);
|
strcpy( &TBuffer[TBufEnd], Line);
|
||||||
TBufEnd += i;
|
TBufEnd += i;
|
||||||
DoUpdate = TRUE;
|
DoUpdate = TRUE;
|
||||||
|
|
@ -285,15 +285,15 @@ void DisplayText( void)
|
||||||
AdjustScroller();
|
AdjustScroller();
|
||||||
}
|
}
|
||||||
/*
|
/*
|
||||||
// Anfügen einer Zeile an den Textbuffer
|
// Anfuegen einer Zeile an den Textbuffer
|
||||||
void AppendLine( const char * Line)
|
void AppendLine( const char * Line)
|
||||||
{
|
{
|
||||||
if (!Line) return;
|
if (!Line) return;
|
||||||
|
|
||||||
// String anhängen
|
// String anhaengen
|
||||||
AppendString( Line);
|
AppendString( Line);
|
||||||
|
|
||||||
// CRLF anhängen
|
// CRLF anhaengen
|
||||||
AppendString( CRLF);
|
AppendString( CRLF);
|
||||||
}
|
}
|
||||||
*/
|
*/
|
||||||
|
|
@ -321,7 +321,7 @@ int w_getch(void)
|
||||||
WaitForMessage();
|
WaitForMessage();
|
||||||
c = SBuffer[0];
|
c = SBuffer[0];
|
||||||
} while ( !c );
|
} while ( !c );
|
||||||
// Zeichen an die Ausgabe anhängen
|
// Zeichen an die Ausgabe anhaengen
|
||||||
AppendString( SBuffer);
|
AppendString( SBuffer);
|
||||||
// Cursor = warten
|
// Cursor = warten
|
||||||
SetCursor( LoadCursor( NULL, IDC_WAIT));
|
SetCursor( LoadCursor( NULL, IDC_WAIT));
|
||||||
|
|
@ -341,7 +341,7 @@ int w_putch( int c)
|
||||||
|
|
||||||
// -------------------------------<Fensterprozeduren>--------------------------
|
// -------------------------------<Fensterprozeduren>--------------------------
|
||||||
|
|
||||||
// Hauptfenster verändert seine Größe
|
// Hauptfenster veraendert seine Groesze
|
||||||
#pragma warn -par
|
#pragma warn -par
|
||||||
void Main_OnSize(HWND hwnd, UINT state, int cx, int cy)
|
void Main_OnSize(HWND hwnd, UINT state, int cx, int cy)
|
||||||
{
|
{
|
||||||
|
|
@ -385,26 +385,26 @@ LRESULT CALLBACK MainWindowProc( HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lPa
|
||||||
case WM_CLOSE:
|
case WM_CLOSE:
|
||||||
// den Spice-Befehl zum Beenden des Programms in den Textbuffer schreiben
|
// den Spice-Befehl zum Beenden des Programms in den Textbuffer schreiben
|
||||||
PostSpiceCommand( "quit");
|
PostSpiceCommand( "quit");
|
||||||
// Unterbrechen, falls Simulation schon läuft, 30.4.2000 hvogt
|
// Unterbrechen, falls Simulation schon laeuft, 30.4.2000 hvogt
|
||||||
raise (SIGINT);
|
raise (SIGINT);
|
||||||
return 0;
|
return 0;
|
||||||
|
|
||||||
/* //gedacht für ctrl C , geht noch nicht
|
/* //gedacht fuer ctrl C , geht noch nicht
|
||||||
case WM_KEYDOWN:
|
case WM_KEYDOWN:
|
||||||
i = (UINT) wParam;
|
i = (UINT) wParam;
|
||||||
if ((i == 0x63) && (GetKeyState(VK_CONTROL) < 0)) {
|
if ((i == 0x63) && (GetKeyState(VK_CONTROL) < 0)) {
|
||||||
// Interrupt zum Unterbrechen (interaktiv)
|
// Interrupt zum Unterbrechen (interaktiv)
|
||||||
// oder Beenden (Batch) des Programms auslösen
|
// oder Beenden (Batch) des Programms ausloesen
|
||||||
raise (SIGINT);
|
raise (SIGINT);
|
||||||
return 0;
|
return 0;
|
||||||
} */
|
} */
|
||||||
|
|
||||||
/* //gedacht für ctrl C , geht noch nicht
|
/* //gedacht fuer ctrl C , geht noch nicht
|
||||||
case WM_CHAR:
|
case WM_CHAR:
|
||||||
i = (char) wParam;
|
i = (char) wParam;
|
||||||
if ((i == "c") && (GetKeyState(VK_CONTROL) < 0)) {
|
if ((i == "c") && (GetKeyState(VK_CONTROL) < 0)) {
|
||||||
// Interrupt zum Unterbrechen (interaktiv)
|
// Interrupt zum Unterbrechen (interaktiv)
|
||||||
// oder Beenden (Batch) des Programms auslösen
|
// oder Beenden (Batch) des Programms ausloesen
|
||||||
raise (SIGINT);
|
raise (SIGINT);
|
||||||
return 0;
|
return 0;
|
||||||
} */
|
} */
|
||||||
|
|
@ -718,7 +718,7 @@ int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpszCmdLi
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
// globale Variablen füllen
|
// globale Variablen fuellen
|
||||||
hInst = hInstance;
|
hInst = hInstance;
|
||||||
nShowState = nCmdShow;
|
nShowState = nCmdShow;
|
||||||
|
|
||||||
|
|
@ -873,7 +873,7 @@ THE_END:
|
||||||
// -----------------------------------<User-IO>--------------------------------
|
// -----------------------------------<User-IO>--------------------------------
|
||||||
|
|
||||||
/* Eigentlich wollte ich die Standard-Streams durch einen Hook in der Library umleiten,
|
/* Eigentlich wollte ich die Standard-Streams durch einen Hook in der Library umleiten,
|
||||||
aber so etwas gibt es anscheinend nicht. Deswegen muß ich praktisch alle
|
aber so etwas gibt es anscheinend nicht. Deswegen musz ich praktisch alle
|
||||||
IO-Funktionen umdefinieren (siehe wstdio.h). Leider geht das nicht bei allen.
|
IO-Funktionen umdefinieren (siehe wstdio.h). Leider geht das nicht bei allen.
|
||||||
Man schaue also nach, bevor man eine Funktion benutzt!
|
Man schaue also nach, bevor man eine Funktion benutzt!
|
||||||
*/
|
*/
|
||||||
|
|
@ -1111,8 +1111,8 @@ void p_e_r_r_o_r(const char * __s)
|
||||||
fp_u_t_s( cp, stderr); */
|
fp_u_t_s( cp, stderr); */
|
||||||
cp = strerror(errno);
|
cp = strerror(errno);
|
||||||
fp_r_i_n_t_f(stderr, "%s: %s\n", __s, cp);
|
fp_r_i_n_t_f(stderr, "%s: %s\n", __s, cp);
|
||||||
// nur als Test für NT
|
// nur als Test fuer NT
|
||||||
// fp_u_t_s("Test für NT: perror, weiter mit RETURN\n", stderr);
|
// fp_u_t_s("Test fuer NT: perror, weiter mit RETURN\n", stderr);
|
||||||
// fg_e_t_c(stdin);
|
// fg_e_t_c(stdin);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -1260,7 +1260,7 @@ int fp_u_t_char(int __c)
|
||||||
return fp_u_t_c( __c, stdout);
|
return fp_u_t_c( __c, stdout);
|
||||||
}
|
}
|
||||||
|
|
||||||
// --------------------------<Verfügbarer Speicher>----------------------------
|
// --------------------------<Verfuegbarer Speicher>----------------------------
|
||||||
/*
|
/*
|
||||||
size_t _memavl(void)
|
size_t _memavl(void)
|
||||||
{
|
{
|
||||||
|
|
@ -1276,12 +1276,12 @@ size_t _memavl(void)
|
||||||
|
|
||||||
int system( const char * command)
|
int system( const char * command)
|
||||||
{
|
{
|
||||||
// info-Blöcke
|
// info-Bloecke
|
||||||
STARTUPINFO si;
|
STARTUPINFO si;
|
||||||
PROCESS_INFORMATION pi;
|
PROCESS_INFORMATION pi;
|
||||||
DWORD ExitStatus;
|
DWORD ExitStatus;
|
||||||
|
|
||||||
// Datenstrukturen füllen
|
// Datenstrukturen fuellen
|
||||||
memset( &si, 0, sizeof( STARTUPINFO));
|
memset( &si, 0, sizeof( STARTUPINFO));
|
||||||
si.cb = sizeof( STARTUPINFO);
|
si.cb = sizeof( STARTUPINFO);
|
||||||
memset( &pi, 0, sizeof( PROCESS_INFORMATION));
|
memset( &pi, 0, sizeof( PROCESS_INFORMATION));
|
||||||
|
|
@ -1300,11 +1300,11 @@ int system( const char * command)
|
||||||
&pi // address of PROCESS_INFORMATION
|
&pi // address of PROCESS_INFORMATION
|
||||||
)) return -1;
|
)) return -1;
|
||||||
|
|
||||||
// dieses Handle muß da sein
|
// dieses Handle musz da sein
|
||||||
if (!pi.hProcess) return -1;
|
if (!pi.hProcess) return -1;
|
||||||
|
|
||||||
do {
|
do {
|
||||||
// Multitasking ermöglichen
|
// Multitasking ermoeglichen
|
||||||
WaitForIdle();
|
WaitForIdle();
|
||||||
// hole mir den Exit-Code des Prozesses
|
// hole mir den Exit-Code des Prozesses
|
||||||
if (!GetExitCodeProcess( pi.hProcess, &ExitStatus)) return -1;
|
if (!GetExitCodeProcess( pi.hProcess, &ExitStatus)) return -1;
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue