'Name..........: Lbit-Kombitreiber-laden.BAS.ocb
'Sprache.......: OCBASIC 1.0
'Zweck.........: Bereitstellung von FASTBAS (Lbit0x00.s19), sowie ggf. RTC/DCF77 Anpassung (Lbit1_xx.s19), weitere Treiber (Lbit2_xx), usw.
'Funktion......: Der Maschinencodetreiber fuer das benötigte System wird hochgeladen.
'
'
'Status........: Betaversion, 20.Dezember 2019 - Einsatz auf eigene Gefahr!
'
'Zuletzt dran rumgefummelt:

' 06. Juli 2020, Anpassung fuer 9,830400 MHz Quarzfrequenz
' 22. Juni 2020, Anpassung fuer 18,432000 MHz Quarzfrequenz
' 20. Mai 2020, Anpassung fuer 17,734475 MHz Quarzfrequenz
' 27. April 2020, Anpassung fuer 10,000.000.000.000 GPS-gefuehrte Taktfrequenz
 ' 22. Februar 2020, Anpassung fuer weitere Quarzfrequenzen hinzugefuegt
'
'
'
'
option ccbas
define a byte : LOOKTAB EEPROM_bytes_used,0,a

print
print "CCTRL1.1-Kombitreiber nutzt obere ";a;" Bytes im EEPROM des 68HC05
print " Ideen: Dietmar Harlos, Andre' Helbig, Giso Wittig, & das |_ Team"
print
print "Noch "; : Print(255-a);" Assembler-Bytes frei. Ansicht: <STRG+I> "

#LPrg_END TABLE L_CAll_34 &h05ff &hd500 TABEND 'Mit 'GOSUB' Abwandlunng aus Datei: L:\x2g\Include\OCBASIC\L-BMCALL.PRO
print "Lbit-FW nicht aktiv."
end

'Legende: _____
' [_MHz_] --> Verbindung zur Standard-RS232 (auch) mit 9600 baud moeglich
' ______
' \_MHz_\ --> Verbindung zur Standard-RS232 moeglich, jedoch nicht mit 9600 baud (z.B. 12 MHz --> 28800 baud)
' ______
' /_MHz_/ --> Verbindung zur Standard-RS232 nicht moeglich, mit manchen USB-Seriell-Adaptern moeglich (z.B. FTDI)
'

'[ OHNE RTC Anpassung, und nur FASTBAS] (Mit 4 MHz-Originalquarz verwenden)
'table EEPROM_bytes_used 33 tabend : syscode "Lbit0_00.s19"
'table EEPROM_bytes_used 20 tabend : syscode "Lbit0n00.s19"
'
'
'
'[ MIT RTC Anpassung fuer... (bitte *eine* der nachfolgenden Zeilen entsprechend der vorhandenen Quarzfrequenz auskommentieren) ]
' ______________________
'|___3,6864 MHz-Quarz___|..................................
'table EEPROM_bytes_used 77 tabend : syscode "Lbit1_03.s19"
'table EEPROM_bytes_used 59 tabend : syscode "Lbit1n03.s19"
'
' ____________________________________________________________________________
'|___4 MHz (Originaltakt, evt. zur Korrektur einer Uhrzeitabweichung sinnvoll)|
'table EEPROM_bytes_used 77 tabend : syscode "Lbit1_04.s19"
'table EEPROM_bytes_used 59 tabend : syscode "Lbit1n04.s19"
'
' ______________________
'|___7,3728 MHz-Quarz___|..................................
'table EEPROM_bytes_used 77 tabend : syscode "Lbit1_07.s19"
'table EEPROM_bytes_used 59 tabend : syscode "Lbit1n07.s19"
'
' ______________________
'|___8 MHz Quarz________|..................................
table EEPROM_bytes_used 77 tabend : syscode "Lbit1_08.s19"
'table EEPROM_bytes_used 59 tabend : syscode "Lbit1n08.s19"
'
'
'|___9,8304 MHz Quarz________|.............................
'table EEPROM_bytes_used 77 tabend : syscode "Lbit1_09.s19"
'table EEPROM_bytes_used 59 tabend : syscode "Lbit1n09.s19"
'
' ______________________...................................
'|___10,000.000.000.000_| (z.B. GPS-stabilisierte Eichfrequenz)
'''''''''table EEPROM_bytes_used 77 tabend : syscode "Lbit2_10.s19" 'Mit SEI, CLI. Wenn Beep-Anweisungen hoherer Frequenz enthalten sind
'table EEPROM_bytes_used 77 tabend : syscode "Lbit1_10.s19"
'table EEPROM_bytes_used 59 tabend : syscode "Lbit1n10.s19"
'
' ______________________
'|___11,0592 MHz-Quarz__|..................................
'table EEPROM_bytes_used 77 tabend : syscode "Lbit1_11.s19"
'table EEPROM_bytes_used 59 tabend : syscode "Lbit1n11.s19"
'
'______________________
'\___12 MHz-Quarz______\...................................
'table EEPROM_bytes_used 77 tabend : syscode "Lbit1_12.s19"
'table EEPROM_bytes_used 59 tabend : syscode "Lbit1n12.s19"
'
' ______________________
'|___14,7456 MHz-Quarz__|..................................
'table EEPROM_bytes_used 77 tabend : syscode "Lbit1_14.s19"
'table EEPROM_bytes_used 59 tabend : syscode "Lbit1n14.s19"
'
' _______________________
'|___15 MHz-Quarz________|.................................
'table EEPROM_bytes_used 77 tabend : syscode "Lbit1_15.s19"
'table EEPROM_bytes_used 59 tabend : syscode "Lbit1n15.s19"
'
' _______________________
'|___16 MHz-Quarz________|.................................
'table EEPROM_bytes_used 77 tabend : syscode "Lbit1_16.s19"
'table EEPROM_bytes_used 59 tabend : syscode "Lbit1n16.s19"
'
' __________________________
'/___17,734475 MHz-Quarz___/...............................
'table EEPROM_bytes_used 77 tabend : syscode "Lbit1_17.s19"
'table EEPROM_bytes_used 59 tabend : syscode "Lbit1n17.s19"
'
'
'**********************************************************
'ACHTUNG: Treiber fuer 18,432 MHz funktionierte im Test *
' bei Zimmertemperatur nur noch teilweise: *
' Waehrend die Uhrzeit-Funktionen offenbar ohne *
' Probleme funktionieren und auch die DCF-OK bei *
' ungestoertem DCF-77 Empfang nach kurzer Zeit *
' an geht, scheint der FASTBAS-Teil nicht aus- *
' gefuehrt zu werden. Zuverlaessiger Betrieb des *
' internen EEPROM bei Raumtemperatur scheint wohl *
' nur bei sehr niedriger Temperatur möglich zu *
' sein. (Siehe auch die Hinweise bei 20 MHz) *
'**********************************************************
'ACHTUNG: Treiber fuer 18,432 MHz erfordert Kuehlung auf *
' Minusgrade. (Kein Witz) *
'**********************************************************
' __________________________
'/___18,432000 MHz-Quarz___/...............................
'table EEPROM_bytes_used 77 tabend : syscode "Lbit1_18.s19"
'table EEPROM_bytes_used 59 tabend : syscode "Lbit1n18.s19"
'
'
'**********************************************************
'ACHTUNG: Treiber fuer 20 MHz erfordert Kuehlung auf etwa *
' minus 20 Grad Celsius. (Kein Witz) *
'**********************************************************
' (20 MHz-Quarz, internes EEPROM geht nicht bei Zimmertemperatur)
'table EEPROM_bytes_used 76 tabend : syscode "Lbit1_20.s19"
'table EEPROM_bytes_used 76 tabend : syscode "Lbit1n20.s19"
'**********************************************************

'Testergebnisse:

'------------------------------
'Treiber OHNE Uhrzeitanpassung:
'------------------------------
'33 Bytes: "Lbit0_00.s19"
'// Kombiniert Fastbas-Treiber von Dietmar Harlos. Achtung: geaenderte FASTBAS-Einsprungadresse: &h01ed
'// 33 obere Bytes im int. EEPROM, untere 223 Bytes koennen fuer eigene Assemblerprogramme verwendet werden.

'20 Bytes: "Lbit0n00.s19"
'// "n"oend, wie oben allerdings darf der END-Befehl in BASIC-Programmen nicht mehr verwendet werden!
'// Dennoch kompatibel mit Lbit Programmen: Dort einfach die "LPrg_END" Funktion der 'Lbit' FW verwenden.
'// Ansonsten kann man das Programm auch mit einer Endlosschleife "beenden": #ProgrammEnde:GOTO:ProgrammEnde
'// Nachteil: Keine END Anweisung im Programm erlaubt.
'// Vorteil1: 235 Bytes im int. EEPROM bleiben frei fuer eigene Assemblerprogramme
'// Vorteil2: Ergibt nochmals etwas hoehere Geschwindigkeit.


'-----------------------------
'Treiber MIT Uhrzeitanpassung:
'-----------------------------
'77 Bytes: "Lbit1_03.s19"
'Kombiniert Fastbas-Treiber von Dietmar Harlos (&h01ec) und RTC/DCF77-Anpassung fuer 3,6864 MHz Quarz von Giso Wittig (&h01c5)
'(empfohlen) '76 obere Bytes im int. EEPROM, untere 179 Bytes koennen fuer eigene Assemblerprogramme verwendet werden.
'Ergebnis von BENCHMARK_M11.bas = 676 I/s (Fastbas aktiv & 24,95 Hz gemessen am "25Hz" Pin) Ohne Fastbas: 574 bis 590 I/s schwankend

'59 Bytes: "Lbit1n03.s19"
'Kombiniert Fastbas-Treiber von Dietmar Harlos (&h01ec) und RTC/DCF77-Anpassung fuer 3,6864 MHz Quarz von Giso Wittig (&h01c5)
'(empfohlen) '76 obere Bytes im int. EEPROM, untere 179 Bytes koennen fuer eigene Assemblerprogramme verwendet werden.
'Ergebnis von BENCHMARK_M11.bas = ??? I/s (Fastbas aktiv & 24,95 Hz gemessen am "25Hz" Pin) Ohne Fastbas: ??? I/s

' Zum Betrieb des C-Control an einer GPS-gefuehrten Labor-Eichfrequenz von 10,000.000.000.000 MHz
'77 Bytes: "Lbit1_10.s19"
'Kombiniert Fastbas-Treiber von Dietmar Harlos (&h01ec) und RTC/DCF77-Anpassung fuer 10,000.000.000.000 MHz von Giso Wittig (&h01c5)
'(empfohlen) '76 obere Bytes im int. EEPROM, untere 179 Bytes koennen fuer eigene Assemblerprogramme verwendet werden.
'Ergebnis von BENCHMARK_M11.bas = 1986 (2000) I/s (schwankend) (ohne Fastbas: 1742 I/s) Die Frequenz am "25Hz" Pin sollte exakt 25 Hz betragen)

'59 Bytes: "Lbit1n10.s19"
'"no"end, 10,000.000.000.000 MHz wie zuvor, doch hier darf auch der END-Befehl nicht verwendet werden. Es ergibt sich eine nochmals etwas hoehere
'Geschwindigkeit beim BENCHMARK_M11.bas = 2000 (2014) I/s (schwankend) Die Frequenz am "25Hz" Pin sollte exakt 25 Hz betragen)
'Durch den 10 MHz Quarz ergibt sich eine I2C-Taktfrequenz von etwa 150 kHz

'77 Bytes: "Lbit1_14.s19"
'Kombiniert Fastbas-Treiber von Dietmar Harlos (&h01ec) und RTC/DCF77-Anpassung fuer 14,7456 MHz Quarz von Giso Wittig (&h01c5)
'(empfohlen) '76 obere Bytes im int. EEPROM, untere 179 Bytes koennen fuer eigene Assemblerprogramme verwendet werden.
'Ergebnis von BENCHMARK_M11.bas = 2994 I/s

'59 Bytes: "Lbit1n14.s19"
'"no"end, 14,7456 MHz wie zuvor, doch hier darf auch der END-Befehl nicht verwendet werden. Es ergibt sich eine nochmals etwas hoehere
'Geschwindigkeit beim BENCHMARK_M11.bas = 3008 I/s

'77 Bytes: "Lbit1_15.s19"
'Kombiniert Fastbas-Treiber von Dietmar Harlos (&h01ec) und RTC/DCF77-Anpassung fuer 15,000 MHz Quarz von Giso Wittig (&h01c5)
'(empfohlen) '76 obere Bytes im int. EEPROM, untere 179 Bytes koennen fuer eigene Assemblerprogramme verwendet werden.
'Ergebnis von BENCHMARK_M11.bas = 3038 bis 3052 I/s (schwankend)

'59 Bytes: "Lbit1n15.s19"
'"no"end, 15,000 MHz wie zuvor, doch hier darf auch der END-Befehl nicht verwendet werden. Es ergibt sich eine nochmals etwas hoehere
'Geschwindigkeit beim BENCHMARK_M11.bas = 3052 bis 3066 I/s (schwankend)

'77 Bytes: "Lbit1_16.s19"
'Kombiniert Fastbas-Treiber von Dietmar Harlos (&h01ec) und RTC/DCF77-Anpassung fuer 16,000 MHz Quarz von Giso Wittig (&h01c5)
'(empfohlen) '76 obere Bytes im int. EEPROM, untere 179 Bytes koennen fuer eigene Assemblerprogramme verwendet werden.
'Ergebnis von BENCHMARK_M11.bas = 3254 I/s (schwankend) (ohne Fastbas: 2864 I/s) (bei exakt 25,00 Hz, gemessen am "25Hz" Pin)

'59 Bytes: "Lbit1n16.s19"
'"no"end, 16,000 MHz wie zuvor, doch hier darf auch der END-Befehl nicht verwendet werden. Es ergibt sich eine nochmals etwas hoehere
'Geschwindigkeit beim BENCHMARK_M11.bas = 3268 I/s (schwankend) (ebenfalls exakt 25,00 Hz, gemessen am "25Hz" Pin)

'77 Bytes: "Lbit1_17.s19"
'Kombiniert Fastbas-Treiber von Dietmar Harlos (&h01ec) und RTC/DCF77-Anpassung fuer 17,734475 MHz Quarz von Giso Wittig (&h01c5)
'(empfohlen) '76 obere Bytes im int. EEPROM, untere 179 Bytes koennen fuer eigene Assemblerprogramme verwendet werden.
'Ergebnis von BENCHMARK_M11.bas = 3614 I/s (schwankend) (ohne Fastbas: 3196 I/s, schwankend) (bei exakt 25,00 Hz, gemessen am "25Hz" Pin)

'77 Bytes: "Lbit1_20.s19"
'Kombiniert Fastbas-Treiber von Dietmar Harlos (&h01ec) und RTC/DCF77-Anpassung fuer 20,000 MHz Quarz von Giso Wittig (&h01c5)
'(empfohlen) '76 obere Bytes im int. EEPROM, untere 179 Bytes koennen fuer eigene Assemblerprogramme verwendet werden.
'Ergebnis von BENCHMARK_M11.bas = ????? I/s (ohne Fastbas: ?????? I/s)

'59 Bytes: "Lbit1n20.s19"
'"no"end, 20,000 MHz wie zuvor, doch hier darf auch der END-Befehl nicht verwendet werden. Es ergibt sich eine nochmals etwas hoehere
'Geschwindigkeit beim BENCHMARK_M11.bas = ????? I/s (schwankend) )



'das |_ Team






Links mit den Dateien:

**********************************************************



3,6864 MHz-Quarz
7,3728 MHz-Quarz
8,0000 MHz-Quarz
9,8304 MHz-Quarz
NEU:10,000.000.000.000 MHz "Für GPS-Labor-Eichfrequenz"
11,0592 MHz-Quarz
12,000 MHz-Quarz
14,7456 MHz-Quarz
15,000 MHz-Quarz
16,000 MHz-Quarz
17,734475 MHz-Quarz
18,432000 MHz-Quarz
20,000 MHz-Quarz

'Die nachfolgenden Treiber belegen etwas weniger Speicher und sie sind
'nochmals geringfuegig schneller. Allerdings darf in den Anwenderprogrammen
'der END - Befehl nicht verwendet werden, ansonsten haengt das System und
'man muss einen Reset auslösen, um in den Hostmodus zurueck zu kommen.
'Anwender der
'Lbit' - Erweiterung koennen als Alternative zu END die
'Lbit-Funktion "LPrg_End" verwenden.

3,6864 MHz-Quarz ('noEND')
7,3728 MHz-Quarz ('noEND')
8,0000 MHz-Quarz ('noEND')
9,8304 MHz-Quarz ('noEND')
NEU:10,000.000.000.000 MHz ('noEND') "Für GPS-Labor-Eichfrequenz"
11,0592 MHz-Quarz ('noEND')
12,000 MHz-Quarz ('noEND')
14,7456 MHz-Quarz ('noEND')
15,000 MHz-Quarz ('noEND')
16,000 MHz-Quarz ('noEND')
17,734475 MHz-Quarz ('noEND')
18,432000 MHz-Quarz ('noEND')
20,000 MHz-Quarz ('noEND')

Nur 'FASTBAS' ohne Frequenzkorrektur. Für 4 MHz-Quarz oder bei starkem Platzmangel

Nur 'FASTBAS' ('noEND')
nochmals kleiner & schneller. Allerdings darf der END-Befehl nicht genutzt werden

Starten der Echtzeitkorrektur mit
diesem Programm

Beschleuniger FASTBAS starten mit diesem Programm