-

/*

** Projekt:

** Modul:

** Abhaengige module:

** Copyright:

** Version:

** Lastmodification:

.* History:

**

**

** fl - 465.970 MHZ

** f2 = 466.075 MHz

** f3 - 466.230 MHz

**

*/

/* compaat memory model -/
/* keine flotingpoint emu */
/* nested comment6 */

/*

**

** Inoludes fuer dieses Modul

**

~t

#in~lude cstdio.h>
~inalude Cio.h>
#inelude cdos.h>
~inclnde cfentl.h>
tinelnde ca11Oc.h> ~,
finclude c~tdlib.h~
#inolude <string,h>
#include cconio.h>
~inclnde ctime.h>

SCCD (Simple City-Call Decoder)
pocfiac. c
none
gone
keppa 1.3E-15 (standallone COM1)
15.11.92 19:38

512 Bits/sec
1200 Biteisec
1200 Bits/sec.

/*

**

** Defines die die arbeitsweise beeinflussen

*/
#define BITWRONG
~define LOGFILE

/*

**

** Defines fuer dieses Modul

**

*/
tdefine TIMER0CLOCK 1193182L

#define TIMEROB512 2330

#define TIMER0B1200 994

#define MA~ARRAY 60000

/* fallback wenn paritset nicht stimmt */
/* Wir schreiben eine Logfile fuer
spaetere DatenbankaUswertungen */

/* Grundfregenz des Timerbauateins */
J* divisor fr timer 0 : sample
timo=30/CLOCK_FREQ ~ 25.1 uSec */
/* Teilerrate fuer 512 Baud */
/* Teilerrate fuer 1200 Baud */

/* groesse dea bitpuffere */

#define SYNCRON Cx7cd215d8L
~defJ.ne SYNCINFO 0x7cd21436L
#define ]DLE 0x'/a89clg7L
#define COMPORT 0xJfff
#define TXBYTX O
D~ wiss~sc~RIicheFachblaU ~rDat~reixndc

..

/* Frame fuer das Syncronwort ./
/* Frame fuer das InforufSyneronwort */
/* Frame fuer das Idlewort */
/* alles fuer COM1 */

~Ie ~nicn~cõ~ru~c'

~definc RXBY1E
#define DIF~LB
#define DIFLHB
~define 1ER
tdefine IIR
~define LCR
#define MCR
~define LSR
#define MS~

#def ine GETSYNCR
#define GETFRAME

o

o

1
1
2
3
4
S
6

2

/* Auf erstes Syncronwort warten */
i* Frames einladen */

/*

**

** Variablen / Speicher der Von diesem Modul benutzt wird

**

*/

char *roh_daten_feld;
. volatile unsigned int roh_daten_anfang;

.

volptile unsigned int rah_daten_ende;

volatlle unsigned ~nt roh_daten_leenge;

unsigned int tics;

unsigned int tias_2;

void interrupt (*old_vec)t);
void interrupt (*time int)();
void.interrupt time_i( ?;
void interrupt lauf_er();
volatile int abbruch - 0;
volatile int eine_sek_weg - O;

~ifdef LOGFILE
FILE *logLile = NULL;
volatile int last_sync;

#endif

/* zeiger auf pufferfeld */
/* momentaner Anfang de6
Ringpuffers */
/* momentanes Ende des
Ringpuffers */
J* momentane Ringpufferlaenge
(anzahl der Daten) */

	.	.	.
/* soviel Teilerschritte treten pro Bit
auf */
/. die Haelfte der Schritta */

i* Adresse der alten Timersoviceroutine *J
/* Adresse der alten TimerO Routine */
t. protatYp der TimerO Routine */
i* prototyp der bitholrautine */
/* wir nollen das Programm verlassen */
/* es ist eine 5ekunde vergangen */

/* logfile fuer die daten */
/* Sekunden zaehlen wann das letzte
mal ein Sync emfangen wurde */

char asc_time[403 = ~Keine Zeit angegeben '~;

atic char numerik[] =
. ' O ' ,
,Q,
~ ,

'4' t
r

';t '

~ ._,

	'6',	.	-

],
'1' ,
,9"
'5'
l

, .

'~'
'U' ,
'7',
[
~;
Ie S`nten~c'Icol"

/. Decedierrung von Numerik~agern ./

_~

_h

~ .

1~:

i

Re~x,I'm onbr h - . hw ~. ~kxk-~Hny

D~ ~s~nschalliche Fa~blan ~rDa'~ei~t

