Ver las NORMAS de estos Foros Web ZackYFileS Chat ZackYFileS Agregar a Favoritos Contactar con Administrador
 
 

TU PUBLICIDAD AQUÍ!!
Navegación
Retroceder   Foros ZackYFileS >
RECEPTORES de SATÉLITE e IPTV:
> FTE MAXIMAL / COMAG > SILVERCREST SL65 / COMAGSL35chipB1 > 6 PINES
Nombre de usuario
Contraseña
Configuración de UsuarioAyuda (FAQs)Nuevos PostsBuscar


Respuesta
 
Herramientas
Antiguo 28/07/2007, 00:44   #1
vishero 
ZFU-4788-02
 
Fecha de ingreso: 27/dic/2002
Mensajes: 1.146
vishero es realmente agradablevishero es realmente agradablevishero es realmente agradablevishero es realmente agradable
Mod decos Sl35/SL65s para que funcionen con firms Truman

Proyecto original de "Vinix & Kosovo & SAT-ULC users" en el foro alemán ULC.

Hilo de dicho proyecto: [B]w*w.sat-ulc.com/ulc/thread.php?threadid=50033&threadview=0&hilight=&hilightuser=0&page=1[/B] [SIZE="1"](Información "legal" en alemán, solo modificación de hard)[/SIZE]

Se trata de un pequeño circuito que permite solucionar la incompatibilidad de los decos Comag SL35 y SL65s con los Truman, es decir solucionar los problemas con el mando y el sonido cuando tienen flasheados dicho firm.

En el caso de los Sl35 es un Mod del frontal, con varias conexiones desde dicho frontal al circuito. En el SL65s solo hay que conectar a 3,3v, masa, intercalar la señal IR y lo mas "complicado", conectar con tres patas del chip de sonido PCM1742KE.

Para el proyecto se pueden usar desde el "glorioso" PIC 16F84-04 hasta los ATMega 8 y 32...

A continuación poner la información que se encuentre, diagramas, fotos, dudas sobre programadores de pics, etc. etc...

sl2

P.D.: Si se registra en el foro alemán, además de poder ver el hilo, se podrá acceder a las descargas de los correspondientes archivos hex para meterle a los pic's y AT's, tanto en dicho hilo como en en ulpload que tiene el foro en la sección de los SL35/SL65.

Última edición por vishero; 28/07/2007 a las 17:41.
vishero está desconectado
Respuesta rápida a este mensaje
Responder Citando Subir
Publicidad: Conoce las ofertas de ANUNCIATE
Antiguo 28/07/2007, 01:02   #2
vishero 
ZFU-4788-02
 
Fecha de ingreso: 27/dic/2002
Mensajes: 1.146
vishero es realmente agradablevishero es realmente agradablevishero es realmente agradablevishero es realmente agradable
Fotos de MOD de bertram02 (foro ULC) hecho en un SL65s y con un pic 16F84:





Como se ve, alimentó el Mod desde los 3.3v que viene de la fuente, masa al tornillo de la placa, cortó el cable negro que va desde el frontal a la placa (conexión "ida y vuelta"), y lo mas dificultoso, la conexión de tres cables a las patas del chip de sonido1742KE, en este caso para poder soldar, retiró previamente los dos condensadores que están pegados a el. Para otros "Moders" (muy apañados ellos... ) no ha sido necesario.


sl2

Última edición por vishero; 28/07/2007 a las 17:43.
vishero está desconectado
Respuesta rápida a este mensaje
Responder Citando Subir
Antiguo 28/07/2007, 01:31   #3
SantiPHREACK 
Usuario PREMIUM+
 
Fecha de ingreso: 13/abr/2006
Mensajes: 223
SantiPHREACK está en el buen camino
Aquí mi [B]"SL65-12 A1 MOD"[/B] perdonad por la calidad de la afoto

[URL=http://img341.imageshack.us/my.php?image=21072007002cp5.jpg][/URL]
SantiPHREACK está desconectado
Respuesta rápida a este mensaje
Responder Citando Subir
Antiguo 28/07/2007, 01:47   #4
vishero 
ZFU-4788-02
 
Fecha de ingreso: 27/dic/2002
Mensajes: 1.146
vishero es realmente agradablevishero es realmente agradablevishero es realmente agradablevishero es realmente agradable
Yo quiero ver los condesadores!!!!...

Veo que le pusiste los leds y el interruptor Mode-Truman/Mode-Comag.

Tengo una duda con el circuito, en vez de meterle un Resonador cerámico de 4MHz quería meterle un cristal de 4MHz que ya tengo, con dos condensadores de 22pf, alguien lo hizo así en ULC, pero no entiendo bien como los puso. Van de cada una de las patas del cristal a masa?

sl2
vishero está desconectado
Respuesta rápida a este mensaje
Responder Citando Subir
Antiguo 28/07/2007, 03:03   #5
vishero 
ZFU-4788-02
 
Fecha de ingreso: 27/dic/2002
Mensajes: 1.146
vishero es realmente agradablevishero es realmente agradablevishero es realmente agradablevishero es realmente agradable
Foto de los cables soldados en el chip de sonido de un SL35, al estar mas despejado que en SL65, es menos dificultoso soldarlos, incluso pareciera que uno de ellos se suelda en una resistencia conectada a la pata 15.


Foto by Vinix

sl2

Última edición por vishero; 28/07/2007 a las 17:45.
vishero está desconectado
Respuesta rápida a este mensaje
Responder Citando Subir
Antiguo 28/07/2007, 03:16   #6
vishero 
ZFU-4788-02
 
Fecha de ingreso: 27/dic/2002
Mensajes: 1.146
vishero es realmente agradablevishero es realmente agradablevishero es realmente agradablevishero es realmente agradable
Unas ideas de como hacer algún "artilugio" para ponerlo pegado encima del chip de sonido y no soldar directamente en el. En este caso se usaría parte de un zócalo, torciendo las patas para que encajen sobre las del PCM1742KE, como está pensado para un SL35 son solo 2.

[URL=http://img521.imageshack.us/my.php?image=dackontxr6.jpg][/URL]

Alguna otra idea?

sl2
vishero está desconectado
Respuesta rápida a este mensaje
Responder Citando Subir
Antiguo 28/07/2007, 03:50   #7
vishero 
ZFU-4788-02
 
Fecha de ingreso: 27/dic/2002
Mensajes: 1.146
vishero es realmente agradablevishero es realmente agradablevishero es realmente agradablevishero es realmente agradable
Diagrama del circuito para un SL35 by Vinix:



Código:
Componentes:

Pos.     Cant.       Tipo              Referencia 
  1        1    16F84 o 16F84a          IC1 
  2        1    Resonador 4 MHz         RES1 
  3        1    LED 2,5mm verde         LED MODE 
  4        1    LED 2,5mm rojo          LED IR 
  5        6     10 K 0,25W 5%          R1,R2,R3,R4,R5,R6 
  6        2      330 0,25W 5%          R7,R8
En el SL35 hicieron un Mod de frontal, para el SL65s habría que quitarle las conexiones a los botones del mismo, con sus respectivas resistencias, no estoy seguro que funcionen, en la documentación dice que son solo para los SL35. Otra diferencia son las referencia a los números de conectores CON que difieren con los del SL65s. El resto es igual.

Habría que "limpiar" dicho diagrama para el SL65s para no crear confusión.

Otra duda que tengo es lo referido a la sustitución del resonador por un cristal de 4MHz con 2 condensadores de 22pf.

Sería ideal que alguien con conocimientos de alemán tradujera el pdf de la documentación, que está muy bien hecho. La traducción online se entiende menos que el original....
sl2

Última edición por vishero; 28/07/2007 a las 17:46.
vishero está desconectado
Respuesta rápida a este mensaje
Responder Citando Subir
Antiguo 28/07/2007, 04:14   #8
vishero 
ZFU-4788-02
 
Fecha de ingreso: 27/dic/2002
Mensajes: 1.146
vishero es realmente agradablevishero es realmente agradablevishero es realmente agradablevishero es realmente agradable
Hex v2.5 Final (27.07.2007) para el Pic 16F84 y 16F84A by Vinix:
(no contiene HOT-CODE)

SL35_SO_FB_WDT_V2_5.HEX
Código:
:020000040000FA
:020000001928BD
:080008009800030E99000108A5
:100010009A0064001714971081018316C430810080
:1000200083128B10190E8300980E180E0B168B1767
:1000300009006400AA131F3085008316850083120F
:10004000813086008316860083128316C4308100B7
:10005000831286140611061606136400A501861B7A
:10006000A5174922861B482864008B130508A600A3
:1000700026189828A6189B2826199E280608803935
:100080002506031D2D2806180616061C0612342800
:1000900064000B309300D7309500970196019A01C8
:1000A000A301A4016400060880392506031D2D283C
:1000B0000B168B176400171C5E286E28050807397D
:1000C000A60026181429A618172926191A29060881
:1000D00080392506031D2D2864005B289714971886
:1000E0006F2864001A081502031C77287928161453
:1000F0007A281610930B7D288128960D971464009A
:100100006F28640000309300640083121308890094
:100110008316081483120808940016081406031D99
:1001200092281D29930A22301306031D842848288B
:100130001E30A800A1282830A800A1282A30A80035
:10014000A128291CA428AE28F730900006126D22A1
:100150000616D620F520D6202914B828F7309000AE
:1001600006126D220616D620D620D6202910B828D1
:100170000830A700A81FD328D620A80DA70BBA289F
:10018000003090006D22003090006D220030900011
:100190006D22003090006D22003090006D22003002
:1001A00090006D223428F520A80DBE281C30900048
:1001B0006D22F930900006126D2200000000000050
:1001C000000000000000000000000000000000002F
:1001D000000000000000000000000000000000001F
:1001E000000000000000061608006A3090006D2232
:1001F000F930900006126D2200000000000000009F
:1002000000000000000000000000000000000000EE
:1002100000000000000000000000000000000000DE
:100220000000000006160800003093001D290D3064
:1002300093001D29113093001D298616640021307A
:1002400013060319752AAA1B772A1308A200A30113
:1002500064003E2264002308A400AA1F3929C73085
:10026000A40703300318013E8A002408C7239B001B
:100270004229CB30A40702300318013E8A0024082B
:10028000CB229B00A30AA40164002308A400AA1F98
:100290005329C730A40703300318013E8A002408FD
:1002A000C7239C005C29CB30A40702300318013E11
:1002B0008A002408CB229C00A30AA401640023081E
:1002C000A400AA1F6D29C730A40703300318013EFC
:1002D0008A002408C7239D007629CB30A40702306A
:1002E0000318013E8A002408CB229D00A30AA40122
:1002F00064002308A400AA1F8729C730A40703307D
:100300000318013E8A002408C7239E009029CB30A1
:10031000A40702300318013E8A002408CB229E0065
:10032000A30AA40164002308A400AA1FA129C730BE
:10033000A40703300318013E8A002408C7239F0046
:10034000AA29CB30A40702300318013E8A002408F2
:10035000CB229F00A30AA40164002308A400AA1FC3
:10036000BB29C730A40703300318013E8A002408C4
:10037000C723A000C429CB30A40702300318013ED4
:100380008A002408CB22A000A30AA4016400230849
:10039000A400AA1FD629C730A40703300318013EC2
:1003A0008A002408C723A100AA13DF29CB30A407A1
:1003B00002300318013E8A002408CB22A100A401C8
:1003C00064000822E6211422861248280730930090
:1003D00030220830930030221B08930030221C0882
:1003E000930030221D08930030221E089300302213
:1003F0001F08930030222008930030220130930020
:10040000302221089300302201309300302208006E
:100410000612003090006D22D73090006D22061633
:10042000753090006D2208000616053093000030EC
:1004300090006D22930B172A7D3090006D220612DA
:10044000013090006D22E13090006D220616BD3023
:1004500090006D220612E93090006D220616080009
:100460000612E93090006D220616F23090006D22DF
:10047000930B302AD03090006D2208000030220605
:100480000319472A2308073EA300A20B422AA30A06
:10049000080014309100861B512A05309200061383
:1004A000542A033092000617861008309300110D6D
:1004B0000318861591006922930B572A0830930080
:1004C000120D0318861592006922930B602A861478
:1004D0000800061506118611080009309400940BD7
:1004E0006F2A6400900F6D2A0800AA17482864003C
:1004F000163013060319992A1730130603199C2A7C
:10050000183013060319A02A193013060319A42A58
:100510001A3013060319A82A1B3013060319AC2A34
:100520001C3013060319B02A1D3013060319B42A10
:10053000482800309300B72A013093006400B72A9E
:10054000023093006400B72A033093006400B72A96
:10055000043093006400B72A053093006400B72A82
:10056000063093006400B72A073093006400252901
:0A05960082000334023405340234FD
:1005A000023401340134023401340334063401349A
:1005B0000234013402340134023401340634033489
:1005C000013404340234043401340234023401347A
:1005D0000434043402340134023401340234023469
:1005E0000134013402340734023401340234033458
:1005F0000134053401340334013403340534023446
:100600000234013401340234033403340434023438
:100610000134023401340234063403340134013429
:100620000134023408340234013401340134013419
:100630000234053401340434013401340334013408
:1006400002340134013401340934013401340234F8
:1006500001340234073402340134013402340434E6
:1006600005340134013402340134023402340134DB
:1006700006340334013401340634043401340134C3
:1006800001340234013403340134013405340434B8
:1006900001340134023401340134013401340934A9
:1006A0000134033401340134013404340534013499
:1006B0000234023401340134053404340134033487
:1006C0000134023404340334023401340234093472
:1006D0000134013401340134013403340734023469
:1006E0000134013401340134023401340934013459
:1006F0000134013401340434063401340234013449
:100700000134013402340234073402340134013438
:100710000134033401340634033401340134013428
:100720000234013401340934013401340134053414
:100730000534013401340234013401340234033409
:1007400006340134023401340134033402340134F8
:1007500004340234033401340A34013401340134E2
:1007600001340134013402340234043403340234D9
:04077000013402341A
:02078E008200E7
:1007900002340134013404340534013402340234A7
:1007A0000134053404340134013402340334013497
:1007B0000434023403340134023404340434023483
:1007C0000134023401340234043401340134043479
:1007D0000134043401340434013405340134033465
:1007E0000134013402340234023405340234023458
:1007F0000134023402340434033402340134023448
:02400E00F53F7C
:104200001E00100022001900140032001A002600BF
:104210002000300027002F0037002800210029004F
:1042200031002A0023001B002E00180035002D004D
:1042300025001D0034002C0024001C003300360033
:104240002B001F00560049004E0049005800200076
:0842500032003000300037009D
:00000001FF
Se acuerdan cuando posteabamos los hex para las PIC1...
Que tiempos aquellos!!!...

Código fuente de la v2.4, el de la v2.5 no estaba:
(Solo como verificación del contenido del HEX)

SL35_SO_FB_WDT_V2_4.asm
Código:
; Init Sequenzer für PCM1742 DAC in SL35 und SL35/1CI
; FB Code Swaper für Comag an Truman Software auf SL35 und SL35/1CI
; Abfrage ob Truman Firmware oder Orginal Firmware benutzt werden soll
; Orginal Fernbedienung von Comag auf Truman Firmware
; SOFTWARE VERSION 2.04
;
; 26.06.2007 by VINIX
; 27.06.2007 Abfrage ob Truman FIRMWARE oder COMAG Firmware benutzt wird hinzugefügt,Sound INIT "professionalisiert" ;-)
; 28.06.2007 FB Emulator COMAG FB auf Truman FIRMWARE hinzugefügt
; 02.07.2007 Emulator Implementiert
; 06.07.2007 Interrupt Versuch RB0, Hardware Modifiziert
; 07.07.2007 Tabelle Vervollständigt und Optimiert
; 08.07.2007 IR Indikator bleibt in der Software / war Urrsprünglich nur zum Test Eingebaut / ist aber auch so nützlich 
; 09.07.2007 Mode Abfrage zur Laufzeit 
; 10.07.2007 WDT Implementiert (soll ein "Hängen" der FB bei längerer Nichtbenutzung Verhindern)
;			 Hintergrund ist die Empfindlichkeit des IR Empfängers. Dieser Reagiert auf alle Impulse, dadurch kann es
;			 Vorkommen das die Software in der Datenempfangs Routine, die Interruptgesteuert ist, "Gefangen" ist.
;			 Sollte das Passieren so wird der WDT nach ca. 10 - 20 mS nicht mehr gelöscht und dieser Löst dann ein
;			 RESET aus und der Controller begint wieder von Vorne.
; 14.07.2007 Tabelleadressberechnung verbessert
; 20.07.2007 Fronttastatur Funktion über FB EMU zum Portpin Sparen für den TRUMAN und den COMAG Mode Eingebaut  


; PORTBELEGUNG des PIC 16F84:
; ===========================
; Hardware Version 2_4
;
; RA 0 = POWER				(EINGANG)
; RA 1 = UP					(EINGANG)
; RA 2 = DOWN 				(EINGANG)
; RA 3 = NC					(EINGANG)
; RA 4 = NC					(EINGANG)
;
; RB 0 = IR_IN				(EINGANG)    INTERRUPT EINGANG !
; RB 1 = ML/15 Data Latch	(AUSGANG)	  
; RB 2 = MC/14 CLOCK		(AUSGANG)  
; RB 3 = MD/13 DATA			(AUSGANG)  
; RB 4 = FBC_OUT	 		(AUSGANG)
; RB 5 = LED IR AKTIV		(AUSGANG)	
; RB 6 = LED C/T			(AUSGANG)
; RB 7 = Truman Enable		(EINGANG)   / Hinzugefügt um bei FB EMU implementation eine Möglichkeit zu haben die
;										/ Orginal Firmware wieder Benutzen zu können ohne den Verlust der FB Funktion
;										/ wenn die Versorgungsspannung vom Pic genommen würde.


	TITLE	"SL35_FB.ASM"
	include "p16f84.inc"
	LIST	P=16F84
        __CONFIG _CP_OFF & _WDT_ON & _XT_OSC & _PWRTE_ON

     
; Fileregister Definieren für Konastanten und Variablen
; =====================================================
VERKO	EQU	0x10				; Speicher der Verzögerungsdurchläufe	
FDIX	EQU	0x11				; First out / MSB also Register Index
LDDX	EQU 0x12				; Last out / LSB also Register Data
ZWI		EQU	0x13				; Zwischenspeicher für Vergleichsroutine usw.
ZWI2	EQU	0x14				; Zwischenspeicher 2 für Vergleichsroutine usw.
ENT		EQU	0x15				; Entscheidungszahl
IRIN1	EQU	0x16				; Speicher für das 16 Bit LSB Empfangsbyte
FIRST	EQU 0x17				; Interrupt Durchlauf Flag's
W_TEMP	EQU	0x18				; TEMPFILE Work
STA_TMP	EQU	0x19				; TEMPFILE Status
ZEIT	EQU 0x1A				; TMR0 Speicher nach Interrupt
TCA1	EQU 0x1B				; Truman Code Ausgabe 1'te Byte
TCA2	EQU 0x1C				; Truman Code Ausgabe 2'te Byte
TCA3	EQU 0x1D				; Truman Code Ausgabe 3'te Byte
TCA4	EQU 0x1E				; Truman Code Ausgabe 4'te Byte
TCA5	EQU 0x1F				; Truman Code Ausgabe 5'te Byte
TCA6	EQU 0x20				; Truman Code Ausgabe 6'te Byte
TCA8	EQU 0x21				; Truman Code Ausgabe 8'te Byte
MULTI	EQU	0x22				; Multiplikator
ERGEB	EQU 0x23				; Tabellen Index Comag
VV		EQU	0x24				; Tabellensprungadresse aus Comag Index und Truman Code Table 
ITE		EQU	0x25				; INIT TEST Register / Mode Umschaltung
FRONTP	EQU	0x26				; Frontpanel Abfrage
SCHI	EQU	0x27				; SCHLEIFENZÄHLER COMAG
IHCS	EQU	0x28				; COMAG TASTENSPEICHER
WETA	EQU	0x29				; COMAG Zwischenspeicher für den Wechsel der Präambel im Comag FB / Frontpanel Mode

		ORG	0					; RESET VECTOR (Hauptprogramm)
		GOTO	HAUPTPROGRAMM	 

; ################################################################################################################################

; INTERRUPT SERVICE ROUTINEN (werden Aufgerufen sobald eine Interrupt Kondition erfüllt wurde)
; ============================================================================================
        ORG	4					; Start der Interrupt Routine

; PUSH (Retten von System Registern vor dem Interrupt)
; ====================================================
		MOVWF	W_TEMP			; Work FR Sichern 
		SWAPF	STATUS, W		; STATUS ins W Register 
		MOVWF	STA_TMP			; STATUS im Temporary File Speichern 

; Hier wird Abgefragt welche Quelle den Interrupr Ausgelöst hat:
; ==============================================================
; In diesem Programm wird nur der INT am RB0 Benutzt, deshalb frei

; Register für die Spätere Verarbeitung Sichern:
; ==============================================
		MOVF	TMR0,W			; Timerwert sichern PRIORITÄT, die Größe ist equivalent des Bitzustandes Kurz = 0 / Lang = 1
		MOVWF	ZEIT			; Zeit bis zum Auslösen des Interrupt Speichern

; Watchdog Löschen wenn Interrupr Ausgelöst wird:
; ===============================================
		CLRWDT					; Watchdog Löschen

; Startimpuls Flag setzen:
; ========================
		BSF		FIRST,0			; Schleifenflag setzen, wenn 0 dann ist das der Start des FB Telegramm (Startimpuls)

; Daten Flag	Löschen:
; ======================
		BCF		FIRST,1			; Flag Löschen	

; TMR0 Löschen:
; =============
		CLRF	TMR0			; TMR0 0

; TMR0 Neu Starten, da nach einem Schreibzugriff /CLRF ist auch Schreiben/ der Vorteiler Automatisch auf 1:2 Gesetzt wird:
; ========================================================================================================================
		BSF		STATUS,RP0		; Page Select 0
		MOVLW	B'11000100'		; Option Register laden mit: Pullup AUS / INT bei 0->1 / RTCC auf INTERN / Prescaler 1:32
		MOVWF	OPTION_REG		; In das Option Register schreiben 
		BCF		STATUS,RP0		; Page Select 1

; Löschen des Interrupt Flags für RB0
; ===================================
		BCF		INTCON,INTF		; Interrupt Flag Löschen (WICHTIG, da sonst sofort nach RETFIE wieder ein INT Ausgelöst wird)

; POP (Zurückschreiben von System Registern nach dem Interrupt)
; =============================================================
		SWAPF	STA_TMP, W		; STATUS in das W
		MOVWF	STATUS			; STATUS Restaurieren
		SWAPF	W_TEMP,F		; Nibble Tauschen und im FR speichern
		SWAPF	W_TEMP,W		; Nibbles Tauschen im W Register Speichern
		BSF		INTCON,INTE		; RB-0 Interrupt Einschalten 
		BSF		INTCON,GIE		; Generell Interrupt Enable 
		RETFIE					; Rücksprung vom Interrupt 

; #################################################################################################################################

; Hier Startet das HAUPTPROGRAMM
; ==============================
HAUPTPROGRAMM:
; Watchdog Löschen:
; =================
		CLRWDT					; Watchdog Löschen
		
; Port A initialisieren und Tris Register setzten
; ===============================================
; 			  1 = EINGANG
;             0 = AUSGANG
;             BIT 76543210
		MOVLW	B'00011111'		; APORT PIN 0 - 4 Eingang
		MOVWF	PORTA			; an den PORT Anlegen
		BSF		STATUS,RP0		; Page Select ausführen 1
		MOVWF	TRISA			; ins Tris Register übernehmen
		BCF		STATUS,RP0		; Page select wieder auf 0

; Port B initialisieren und Tris Register setzten
; ===============================================
; 			  1 = EINGANG
;             0 = AUSGANG
;             BIT 76543210
		MOVLW	B'10000001'		; BPORT Pin 0 und 7 Ausgang, 1 - 6 Ausgang
		MOVWF	PORTB			; an den PortB legen
		BSF		STATUS,RP0		; Page select ausführen 1
		MOVWF	TRISB			; PortB lesen und ins TRIS Register schreiben
		BCF		STATUS,RP0		; Page select wieder auf 0
		
; TMR0 und Prescaler definieren
; =============================
; Bit Value		TMR0 Rate  t/count bei 4 MHz
; ------------------------------------------
; 		000		1:2		  		2 uS
;		001		1:4		  		4 uS
;		010		1:8		  		8 uS
;		011		1:16	 		16 uS
;		100		1:32	 		32 uS
;		101		1:64	 		64 uS
;		110		1:128			128 uS
;		111		1:256			256 uS

		BSF		STATUS,RP0		; Page Select 0
		MOVLW	B'11000100'		; Option Register laden mit: Pullup AUS / INT bei Wechsel von 0->1 / RTCC auf INTERN / Prescaler 1:32
		MOVWF	OPTION_REG		; In das Option Register schreiben 
		BCF		STATUS,RP0		; Page Select 1

; Portpins für den PCM1742 Labeln:
; ================================
; ACHTUNG HARDWARE GEÄNDERT WEGEN INTERRUPT EINGANG IR AUF RB0:
; =============================================================
#DEFINE ML		PORTB,1			; PCM 1742KE Latch 
#DEFINE MC		PORTB,2			; PCM 1742KE Clock 
#DEFINE MD		PORTB,3			; PCM 1742KE Data

; Portpins für den IR Empfänger und Fernbedienung Ausgang COMAG Labeln:
; =====================================================================
#DEFINE IR		PORTB,0			; Infrarot FB Eingangssignal von der Frontplatine
#DEFINE FBC		PORTB,4			; FB Ausgang zum ALI vom Emulator

; Portpins für den IR Indikator LED Labeln:
; =========================================
#DEFINE LEDI	PORTB,5			; LED IR Indikator (Blinkt bei Empfang von der Fernbedienung)  

; Portpins für den Wahlschalter Firmware und Anzeige LED Labeln:
; ==============================================================
#DEFINE LED		PORTB,6			; LED AUS = COMAG Firmware / LED AN = Truman Firmware  
#DEFINE TB		PORTB,7			; Schalter Eingang Comag oder Truman Firmware

; Anweisung für den Compiler / MPASM Microchip 
; ============================================
#DEFINE	TABLELENGTH	d'238'		; Tabellelänge der Codes

; Grundzustände Herstellen, egal ob Truman Firmware oder Comag Firmware:
; ======================================================================
		BSF		ML				; Latch ist aktiv Low, Ruhezustand High
		BCF		MC				; Clock ist aktiv High, Ruhezustand Low
		BSF		FBC				; FBC ist aktiv LOW, Ruhezustand High
		BCF		LED				; LED Ausgeschaltet beim Einschalten des Receivers am Netzschalter

; Grundeinstellung nach dem Einschalten Speichern:
; ================================================
REINIT: CLRWDT					; Watchdog Löschen
		CLRF	ITE				; LÖSCHEN
		BTFSC	TB				; Aktuellen MODE Speichern
		BSF		ITE,7			; 1 Speichern

; PCM 1742 KE Initialisieren:
; ===========================
		CALL	PCMINIT			; SOUNDINI Auswahl des Modes nun in der INIT Routine

; Truman Software Enable Abfragen, um Festzustellen ob die FB Emulation laufen soll oder nur Signale Relayed werden / HIGH = Truman / LOW = SL35:
; ======================================================================================================================================================
		BTFSC	TB				; Zeiter Test ob HIGH, wenn LOW (COMAG Ausgewählt) Überspringe nächste Zeile
		GOTO	FBEMU			; Springe in die Fernbedienungsemulation COMAG FB auf TRUMAN Firmware

; Truman Bit war nicht gesetzt, 		
; COMAG Fernbedienung für COMAG Orginal Firmware bzw. Truman, es werden nur die Eingangszustände auf den Ausgang gelegt:
; ======================================================================================================================
COMAG:	CLRWDT					; Watchdog Löschen
		BCF		INTCON,GIE		; Generell Interrupt Disable (sonst würde ein IR Signal diese Routine Stören)
		MOVF	PORTA,W			; Port A Einlesen
		MOVWF	FRONTP			; Speichern im FR 
		BTFSC	FRONTP,0		; Auf 0 Testen / wenn 0 dann POWER Auslösen
		GOTO	FCPOWER			; Funktion POWER 
		BTFSC	FRONTP,1		; Auf 0 Testen / wenn 0 dann CH UP Auslösen
		GOTO	FCUP			; Funktion UP
		BTFSC	FRONTP,2		; Auf 0 Testen / wenn 0 dann CH DOWN Auslösen
		GOTO	FCDOWN			; Funktion DOWN
		MOVF	PORTB,W			; Gesammten Port B Einlesen
		ANDLW	b'10000000'		; Bit 7 Filtern 
		XORWF	ITE,W			; Neuen Zustand mit Alten Zustand Vergleichen
		BTFSS	STATUS,Z		; Zero Flag = 1 / MODE hat nicht gewechselt, Keine Reinitialisierung Notwendig
		GOTO	REINIT			; Zero Flag = 0 / MODE hat gewechselt, Reinitialisiere			
		BTFSC	IR				; IR Eingang Abfragen, wenn 0 dann nächste Zeile Überspringen
		BSF		FBC				; FB AUSGANG zum COMAG auf High setzen 
		BTFSS	IR				; IR EINGANG Abfragen, wenn 1 dann nächste Zeile Überspringen
		BCF		FBC				; FB AUSGANG zum COMAG auf LOW setzen
		GOTO	COMAG			; Do it Forever / bis zum Nächsten Ausschalten über den Netzschalter

; #############################################################################################################################
; Ab hier wirds TRICKY ( Tricky... Tricky... Tricky ...its Tricky 
; Schlaflose Nächte, Viereckige Augen, der Penetrante Geruch von durch Lötspitzen verbrannten Fingern, Hurra wir Basteln
; #############################################################################################################################
; IR Empfänger mit Hilfe der Interruptroutine Abfragen und Auswerten:
; ===================================================================
FBEMU:	MOVLW	d'11'			; Anzahl der Bits im Datentelegramm der COMAG Fernbedienung
		MOVWF	ZWI				; Speichere im Zwischenspeicher für die Bit Abzählschleife
		MOVLW	d'215'			; Operationswert für die Ermittlung des Bitzustandes Anhand der Impulslänge
		MOVWF	ENT				; Speichern im FR
		CLRF	FIRST			; Merker für den Startimpuls Löschen

; Auswertungs Register Löschen (alte Werte):
; ==========================================
		CLRF	IRIN1			; Löschen des 'alten' Inhaltes 
		CLRF	ZEIT			; TMR0 Zwischenspeicher Löschen
		CLRF	ERGEB			; Speicher für Comag Index Löschen 
		CLRF	VV				; Adressoffset für den Tabellensprung Löschen
		CLRWDT					; Watchdog Löschen (alle 15 - 18 mS) sonst RESET

; Prüfen ob der Mode gewechselt werden soll:
; ==========================================
		MOVF	PORTB,W			; Gesammten Port B NEU Einlesen
		ANDLW	b'10000000'		; Unrelevante Bit's Ausblenden (Nur Bit 7 Interessant)
		XORWF	ITE,W			; Nun den NEUEN Zustand mit dem ALTEN Vergleichen
		BTFSS	STATUS,Z		; Zero Flag = 1 / MODE hat nicht gewechselt, Keine Reinitialisierung Notwendig
		GOTO	REINIT			; Zero Flag = 0 / MODE hat gewechselt, Reinitialisiere			

; Interrupt Quelle Wählen:
; ========================
		BSF		INTCON,INTE		; RB-0 Interrupt Einschalten 

; Ab jetzt Interrupt Erlauben:
; ============================
		BSF		INTCON,GIE		; Generell Interrupt Enable 
		CLRWDT					; Watchdog Löschen nur zur Sicherheit	
; Startimpuls Filtern (Flag wird in der Interruptroutine gesetzt):     
; ================================================================
STAIMP:	BTFSS	FIRST,0			; Warten auf den ersten Interrupt (Startimpuls)		
		GOTO	MCII			; Zwischendurch das Frontpannel und den Mode Schalter Überprüfen
		GOTO	WWW				; Startimpuls der FB Empfangen, nun zum Datenempfang Springen

; Prüfen ob der Mode gewechselt werden soll:
; ==========================================
MCII:	MOVF	PORTA,W			; Port A Einlesen
		ANDLW	b'00000111'		; Nur RA 0-2 Filtern
		MOVWF	FRONTP			; Speichern im FR 
		BTFSC	FRONTP,0		; Auf 0 Testen / wenn 1 dann POWER Auslösen
		GOTO	FPOWER			; Funktion POWER 
		BTFSC	FRONTP,1		; Auf 0 Testen / wenn 1 dann CH UP Auslösen
		GOTO	FUP				; Funktion UP
		BTFSC	FRONTP,2		; Auf 0 Testen / wenn 1 dann CH DOWN Auslösen
		GOTO	FDOWN			; Funktion DOWN
		MOVF	PORTB,W			; Gesammten Port B NEU Einlesen
		ANDLW	b'10000000'		; Unrelevante Bit's Ausblenden (Nur Bit 7 Interessant)
		XORWF	ITE,W			; Nun den NEUEN Zustand mit dem ALTEN Vergleichen
		BTFSS	STATUS,Z		; Zero Flag = 1 / MODE hat nicht gewechselt, Keine Reinitialisierung Notwendig
		GOTO	REINIT			; Zero Flag = 0 / MODE hat gewechselt, Reinitialisiere		
		GOTO	STAIMP			; Nein, der Erste Interrupt ist noch nicht Aufgetreten, Erneut auf FI Warten
		
; Flag für Datenimpuls setzen:
; ============================
WWW:	BSF		FIRST,1			; STARTIMPULS VORBEI 0000 = Programmstart / 0001 = Startimpuls OK / 0011 = im Datenempfang  			

; Abfrage ob Datenempfang mit Hilfe des 'Datenempfang Flag's':		
; ============================================================
DAIMP:	BTFSC	FIRST,1			; Prüfen ob der nächste Interupt Ausgelöst wurde
		GOTO	DAIMP			; Nein, Warte auf Interrupt
	
; FUZZY LOGIC ZEIT (Impulslänge) Auswerten und Entsprechenden Bitzustand Zuweisen:
; ================================================================================
FLA:	CLRWDT					; Watchdog Löschen
		MOVF	ZEIT,W			; Inhalt TMR0 von Interrupt1 zu Inerrupt2 in das Work kopieren
		SUBWF	ENT,W			; TMR0 - ENT = + XXX (1) oder -XXX (0)  
		BTFSS	STATUS,C		; Carry ist 1 wenn Ergebniss negativ => 0 wurde Empfangen 						
		GOTO	SEIR1			; CARRY = 0 / LANG / Bitzustand ist 1 gehe Zuweisen 
		GOTO	SEIR0			; CARRY = 1 / KURZ / Bitzustand ist 0 gehe Zuweisen

; Empfangenes Bit war eine 1:
; ===========================
SEIR1:	BSF		IRIN1,0			; LSB Bit 0 auf 1 Setzen
		GOTO	FER				; Weiter zum Prüfen ob weitere Bit's Empfangen werden müßen

; Empfangenes Bit war eine 0:
;============================
SEIR0:	BCF		IRIN1,0			; LSB Bit 0 auf 0 Setzen 

; Prüfen ob alle 11 Bit's Empfangen wurden:
; =========================================
FER:	DECFSZ	ZWI,F			; Bitzähler -1
		GOTO	WEITER			; Noch nicht alle Bit's Empfangen
		GOTO	AUWEIA			; Alle 11 Bit's Empfangen nun zur Auswertung und Codewandlung gehen

; Schieben der FR NACH Bitzähler:		
; ===============================
WEITER:	RLF		IRIN1,F			; Nach Links Schieben für den Empfang des nächsten Bit
		BSF		FIRST,1			; Datenempfang Flag wieder setzen, wurde im Interrupt gelöscht  			
		CLRWDT					; Watchdog Löschen
		GOTO	DAIMP			; Zurück zur Abfrage da noch nicht alle Bit's Empfangen wurden


; Alle 11 Bits sind nun in den Registern IRIN1 und IRIN2, nun an die Auswertung
; =============================================================================
; IRIN2 enthält nur einen Indikator für das Wechseln der Codefunktion:
; z.B.: Als 1'stes 'POWER' Taste Gedrückt IRN2 = 0000 0111 danach als 2'tes 'OK' Taste Gedrückt IRN2 = 0000 0101
; Dies wird hier nicht Gebraucht und deshalb braucht man das IRIN2 eigentlich nicht.
; DANKE an KOSOVO für den Hinweis 

; FB COMAG Code wird aus dem EEPROM geholt und in einer Zählschleife Vergleichen.
; Stimmt der Empfangene Code mit einem COMAG Code dann addiere Zählerinhalt zum PC und hole Ausgabedaten im Trumanformat
; Wenn der Empfangene Code <> COMAG Code dann Ignorieren und erneut zur IR Abfrage Wechseln
; ACHTUNG: Wer 'TURBO ZAPPER' ist, der sollte sich eine Truman FB Kaufen, dies ist eine NOTLÖSUNG !
; Auch bitte keine Kritik das ab und zu die FB nicht Reagiert, siehe Oben.

; Wer es besser machen kann, sollte das Tun (!) und mir eine Kopie des Source Senden, ich Lernen gerne auch noch dazu.


; CODEVERGLEICH COMAG FERNBEDIENUNG:
; ==================================
AUWEIA:	CLRWDT					; Watchdog Löschen
		MOVLW	d'00'			; Lade den Schleifenzähler mit der Ersten Adresse für das EEPROM
		MOVWF	ZWI				; Speichere im Schleifenzähler

; Daten aus dem EEPROM Holen:
; ===========================
LOS:	CLRWDT					; Watchdog Löschen
		BCF		STATUS,RP0		; Bank select 0
		MOVF	ZWI,W			; EEPROM Speicherstelle die Gelesen werden soll in das W Kopieren
		MOVWF	EEADR			; In das EEPROM Adressregister Schreiben
		BSF		STATUS,RP0		; Bank select 1
		BSF		EECON1,RD		; EEprom Lesen
		BCF		STATUS,RP0		; Bank select 0
		MOVF	EEDATA,W		; Lade WORK mit Bitmuster für die Taste XXX aus dem EEprom
		MOVWF	ZWI2			; Speichere im Zwischenspeicher
		
; Hier findet der Vergleich Statt:
; ================================
		MOVF	IRIN1,W			; Lade W mit IRIN1 zum Vergleichen
		XORWF	ZWI2,W			; Exclusiv Oder Verknüpfen und Ergebniss im W speichern
		BTFSS	STATUS,Z		; Sind beide Wert identisch so wird das Zero Flag gesetzt / Überspringe nächste Zeile 
		GOTO	LNT				; Der Vergleich war negativ, Lade nächste Bitfolge aus dem EEPROM 
		GOTO	AUTRUFO			; Vergleich war positiv, Aktueller Wert in ZWI ist nun der INDEX für die Tabelle CODE TRUMAN Format

; Nächster Tastencode aus dem EEprom Holen:
; =========================================
LNT:	INCF	ZWI,F			; Schleifenzähler +1 (Index +1)
		MOVLW	d'33'			; Max 34 Befehle Vergleichen ( 0 - 33 )
		XORWF	ZWI,W			; Exclusiv ODER mit Work 
		BTFSS	STATUS,Z		; Sind beide Wert identisch so wird das Zero Flag gesetzt / Überspringe nächste Zeile
		GOTO	LOS				; Hole den nächsten Wert aus dem EEPROM
		
; Kein Zeichen aus dem EEprom stimmt mit dem Empfangenen Zeichen Überein, gehe zurück zur FB Abfrage
; ==================================================================================================
		GOTO	FBEMU			; FB erneut Abfragen

; Frontpannel Auslöse Routine für den COMAG MODE:
; ===============================================

; POWER TASTE Manuel Ausgelöst:
; =============================
FCPOWER:MOVLW	d'30'			; EEprom Speicherinhalt direkt Eingeben
		MOVWF	IHCS			; IM FR Speichern	
		GOTO	COMAAA			; Ausgabe Aufrufen 

; UP TASTE
; ========
FCUP:	MOVLW	d'40'			; EEprom Speicherinhalt direkt Eingeben
		MOVWF	IHCS			; IM FR Speichern	
		GOTO	COMAAA			; Ausgabe Aufrufen

; DOWN TASTE
; ==========
FCDOWN:	MOVLW	d'42'			; EEprom Speicherinhalt direkt Eingeben
		MOVWF	IHCS			; IM FR Speichern	
		GOTO	COMAAA			; Ausgabe Aufrufen

; Hier wird der zur Taste gehörende FB Code an den IR Eingang im COMAG Format Ausgegeben:
; ======================================================================================= 
COMAAA: BTFSS	WETA,0			; Wechsel Taste Speicher / Präambelwechsel wie Orginal
		GOTO	FIRS			; 101
		GOTO	LAST			; 111

FIRS:	MOVLW	d'247'			; Verzögerungszeit für 300 uS
		MOVWF	VERKO			; Speichere in der Verzögerungskonstante
		BCF		FBC				; LOW IMPULS von 300 uS (Start Impuls)
		CALL	VERZO			; Verzögerung Abarbeiten
		BSF		FBC				; HIGH Zustand Wiederherstellen
		CALL	COEI			; 1 Ausgeben
		CALL	CONU			; 0 Ausgeben
		CALL	COEI			; 1 Ausgeben
		BSF		WETA,0			; wechsel merker
		GOTO	COSI			; weiter

LAST:	MOVLW	d'247'			; Verzögerungszeit für 300 uS
		MOVWF	VERKO			; Speichere in der Verzögerungskonstante
		BCF		FBC				; LOW IMPULS von 300 uS (Start Impuls)
		CALL	VERZO			; Verzögerung Abarbeiten
		BSF		FBC				; HIGH Zustand Wiederherstellen
		CALL	COEI			; 1 Ausgeben
		CALL	COEI			; 1 Ausgeben
		CALL	COEI			; 1 Ausgeben
		BCF		WETA,0			; wechsel merker
		GOTO	COSI			; weiter

; Präambel gesendet, nun den FB CODE Senden:
; ==========================================
COSI:	MOVLW	d'08'			; 8 BIT Ausgeben
		MOVWF	SCHI			; Speichern im Schleifenregister
PCB:	BTFSS	IHCS,7			; Bitzustand Prüfen
		GOTO	HELO			; LOW AUSGABE
		CALL	COEI			; 1 Ausgeben
		RLF		IHCS,F			; Nach Links Schieben, MSB FIRST
MEW:	DECFSZ	SCHI,F			; 8 Bit fertig ?
		GOTO	PCB				; Prüfe Comag BIT
		MOVLW	d'00'			; Volle Verzögerung 
		MOVWF	VERKO			; Verzögerung
		CALL	VERZO			; Verzögerung
		MOVLW	d'00'			; Verzögerung
		MOVWF	VERKO			; Verzögerung
		CALL	VERZO			; Verzögerung
		MOVLW	d'00'			; Verzögerung
		MOVWF	VERKO			; Verzögerung
		CALL	VERZO			; Verzögerung
		MOVLW	d'00'			; Verzögerung
		MOVWF	VERKO			; Verzögerung
		CALL	VERZO			; Verzögerung
		MOVLW	d'00'			; Verzögerung
		MOVWF	VERKO			; Verzögerung
		CALL	VERZO			; Verzögerung
		MOVLW	d'00'			; Verzögerung
		MOVWF	VERKO			; Verzögerung
		CALL	VERZO			; Verzögerung
		GOTO	COMAG			; zurück zur Comag Routine

HELO:	CALL	CONU			; Null Ausgeben
		RLF		IHCS,F			; Nach Links Schieben
		GOTO 	MEW				; Zurück zum Bitzähler

; CODE Ausgabe im Comag Mode für Frontpanel Tasten im FB Format:
; ==============================================================

; COMAG EINS
COEI:	MOVLW	d'28'			; Verzögerungszeit für 1 = 7,3 mS
		MOVWF	VERKO			; Speichere in der Verzögerungskonstante
		CALL	VERZO			; Verzögerung Abarbeiten
		MOVLW	d'249'			; Verzögerungszeit für 300 uS
		MOVWF	VERKO			; Speichere in der Verzögerungskonstante
		BCF		FBC				; LOW IMPULS von 300 uS
		CALL	VERZO			; Verzögerung Abarbeiten
		NOP						; Feinjustierung der Zeit auf 1 uS Genau
		NOP						; Feinjustierung der Zeit auf 1 uS Genau
		NOP						; Feinjustierung der Zeit auf 1 uS Genau
		NOP						; Feinjustierung der Zeit auf 1 uS Genau
		NOP						; Feinjustierung der Zeit auf 1 uS Genau
		NOP						; Feinjustierung der Zeit auf 1 uS Genau
		NOP						; Feinjustierung der Zeit auf 1 uS Genau
		NOP						; Feinjustierung der Zeit auf 1 uS Genau
		NOP						; Feinjustierung der Zeit auf 1 uS Genau
		NOP						; Feinjustierung der Zeit auf 1 uS Genau
		NOP						; Feinjustierung der Zeit auf 1 uS Genau
		NOP						; Feinjustierung der Zeit auf 1 uS Genau
		NOP						; Feinjustierung der Zeit auf 1 uS Genau
		NOP						; Feinjustierung der Zeit auf 1 uS Genau
		NOP						; Feinjustierung der Zeit auf 1 uS Genau
		NOP						; Feinjustierung der Zeit auf 1 uS Genau
		NOP						; Feinjustierung der Zeit auf 1 uS Genau
		NOP						; Feinjustierung der Zeit auf 1 uS Genau
		NOP						; Feinjustierung der Zeit auf 1 uS Genau
		NOP						; Feinjustierung der Zeit auf 1 uS Genau
		NOP						; Feinjustierung der Zeit auf 1 uS Genau
		NOP						; Feinjustierung der Zeit auf 1 uS Genau
		BSF		FBC				; HIGH Zustand Wiederherstellen
		RETURN					; Zurück zum Aufrufenden Programmteil
		
; COMAG NULL
CONU:	MOVLW	d'106'	
		MOVWF	VERKO			; Speichere in der Verzögerungskonstante
		CALL	VERZO			; Verzögerung Abarbeiten
		MOVLW	d'249'			; Verzögerungszeit für 300 uS
		MOVWF	VERKO			; Speichere in der Verzögerungskonstante
		BCF		FBC				; LOW IMPULS von 300 uS
		CALL	VERZO			; Verzögerung Abarbeiten
		NOP						; Feinjustierung der Zeit auf 1 uS Genau
		NOP						; Feinjustierung der Zeit auf 1 uS Genau
		NOP						; Feinjustierung der Zeit auf 1 uS Genau
		NOP						; Feinjustierung der Zeit auf 1 uS Genau
		NOP						; Feinjustierung der Zeit auf 1 uS Genau
		NOP						; Feinjustierung der Zeit auf 1 uS Genau
		NOP						; Feinjustierung der Zeit auf 1 uS Genau
		NOP						; Feinjustierung der Zeit auf 1 uS Genau
		NOP						; Feinjustierung der Zeit auf 1 uS Genau
		NOP						; Feinjustierung der Zeit auf 1 uS Genau
		NOP						; Feinjustierung der Zeit auf 1 uS Genau
		NOP						; Feinjustierung der Zeit auf 1 uS Genau
		NOP						; Feinjustierung der Zeit auf 1 uS Genau
		NOP						; Feinjustierung der Zeit auf 1 uS Genau
		NOP						; Feinjustierung der Zeit auf 1 uS Genau
		NOP						; Feinjustierung der Zeit auf 1 uS Genau
		NOP						; Feinjustierung der Zeit auf 1 uS Genau
		NOP						; Feinjustierung der Zeit auf 1 uS Genau
		NOP						; Feinjustierung der Zeit auf 1 uS Genau
		NOP						; Feinjustierung der Zeit auf 1 uS Genau
		NOP						; Feinjustierung der Zeit auf 1 uS Genau
		NOP						; Feinjustierung der Zeit auf 1 uS Genau
		BSF		FBC				; HIGH Zustand Wiederherstellen
		RETURN					; Zurück zum Aufrufenden Programmteil

; Frontpannel Auslöse Routine für den TRUMAN MODE:
; ================================================

; POWER TASTE Manuel Ausgelöst:
; =============================
FPOWER:	MOVLW	d'00'			; EEprom Speicherstelle direkt Auswählen
		MOVWF	ZWI				; IM FR Speichern	
		GOTO	AUTRUFO			; Ausgabe Aufrufen 

; UP TASTE
; ========
FUP:	MOVLW	d'13'			; EEprom Speicherstelle direkt Auswählen
		MOVWF	ZWI				; IM FR Speichern	
		GOTO	AUTRUFO			; Ausgabe Aufrufen

; DOWN TASTE
; ==========
FDOWN:	MOVLW	d'17'			; EEprom Speicherstelle direkt Auswählen
		MOVWF	ZWI				; IM FR Speichern	
		GOTO	AUTRUFO			; Ausgabe Aufrufen

; Mit Hilfe des Schleifenzählers ist nun die Funktion Adressierbar, hier wird mit Hilfe des ZWI der zu Sendene TRUMAN Code 
; aus einer Tabelle geholt und auf den IR Eingang des COMAG Ausgegeben
; ======================================================================================================================== 
AUTRUFO:BSF		LEDI			; Erreichen dieser Position mit LED Anzeigen (Kann später auch al FB Indikator benutzt werden)
		MOVF	ZWI,W			; Lade Aktuelle Position des Schleifendurchlaufs (0 - 33)
		MOVWF	MULTI			; Multiplikator
		CLRF	ERGEB			; Ergebnis der letzten Adressoffset Berechnung für das Tabellenlesen Löschen
		CLRWDT					; Watchdog Löschen
; Berechne die Startadresse für ein Lesen aus der CODE Tabelle Equivalent zum Ermittelten Comag CODE Index:
; =========================================================================================================
		CALL	AOERM			; Tabellen Offset Berechnen (pro Index + 7 Stellen)
		CLRWDT					; Watchdog Löschen

; Hier findet der Eigentliche Sprung in die Tabelle statt:
; ========================================================
; 1'te Speicherstelle Auslesen
; ============================
		MOVF	ERGEB,W			; Tabellen Offset über das W Register nach VV
		MOVWF	VV				; Kopieren um den Orginal Inhalt von ERGEB nicht zu Verändern
		MOVLW	LOW	TABLE		; Lade untere Adresse der Tabelle
		ADDWF	VV,F			; Addiere Offset mit Tabellenadresse
		MOVLW	HIGH TABLE		; Lade obere Adresse der Tabelle
		BTFSC	STATUS,C		; Prüfe ob die Obere Adresse in der 2'ten Bank ist
		ADDLW	d'01'			; JA, Addiere 1 zum Program Counter Latch
		MOVWF	PCLATH			; Speichere im PCL
		MOVF	VV,W			; Kopiere Offset ins Work
		CALL	TABLE			; Hole Byte aus der Tabelle von Position VV und kehre mit DATA XX im W zurück
		MOVWF	TCA1			; 1'te Byte für die Spätere Verarbeitung in der Senderoutine Speichern
		INCF	ERGEB,F			; Erhöhe Adresse um eins (es müßen ja 7 Bytes gelesen werden)
		CLRF	VV				; Lösche die Alte Berechnung des Sprungadresse
		CLRWDT					; Watchdog Löschen

; 2'te Speicherstelle Auslesen
; ============================
		MOVF	ERGEB,W			; Tabellen Offset über das W Register nach VV
		MOVWF	VV				; Kopieren um den Orginal Inhalt von ERGEB nicht zu Verändern
		MOVLW	LOW	TABLE		; Lade untere Adresse der Tabelle
		ADDWF	VV,F			; Addiere Offset mit Tabellenadresse
		MOVLW	HIGH TABLE		; Lade obere Adresse der Tabelle
		BTFSC	STATUS,C		; Prüfe ob die Obere Adresse in der 2'ten Bank ist
		ADDLW	d'01'			; JA, Addiere 1 zum Program Counter Latch
		MOVWF	PCLATH			; Speichere im PCL
		MOVF	VV,W			; Kopiere Offset ins Work
		CALL	TABLE			; Hole Byte aus der Tabelle von Position VV und kehre mit DATA XX im W zurück
		MOVWF	TCA2			; 2'te Byte für die Spätere Verarbeitung in der Senderoutine Speichern 
		INCF	ERGEB,F			; Erhöhe Adresse um eins (es müßen ja 7 Bytes gelesen werden)
		CLRF	VV				; Lösche die Alte Berechnung des Sprungadresse
		CLRWDT					; Watchdog Löschen

; 3'te Speicherstelle Auslesen
; ============================
		MOVF	ERGEB,W			; Tabellen Offset über das W Register nach VV
		MOVWF	VV				; Kopieren um den Orginal Inhalt von ERGEB nicht zu Verändern
		MOVLW	LOW	TABLE		; Lade untere Adresse der Tabelle
		ADDWF	VV,F			; Addiere Offset mit Tabellenadresse
		MOVLW	HIGH TABLE		; Lade obere Adresse der Tabelle
		BTFSC	STATUS,C		; Prüfe ob die Obere Adresse in der 2'ten Bank ist
		ADDLW	d'01'			; JA, Addiere 1 zum Program Counter Latch
		MOVWF	PCLATH			; Speichere im PCL
		MOVF	VV,W			; Kopiere Offset ins Work
		CALL	TABLE			; Hole Byte aus der Tabelle von Position VV und kehre mit DATA XX im W zurück
		MOVWF	TCA3			; 3'te Byte für die Spätere Verarbeitung in der Senderoutine Speichern
		INCF	ERGEB,F			; Erhöhe Adresse um eins (es müßen ja 7 Bytes gelesen werden)
		CLRF	VV				; Lösche die Alte Berechnung des Sprungadresse
		CLRWDT					; Watchdog Löschen

; 4'te Speicherstelle Auslesen
; ============================
		MOVF	ERGEB,W			; Tabellen Offset über das W Register nach VV
		MOVWF	VV				; Kopieren um den Orginal Inhalt von ERGEB nicht zu Verändern
		MOVLW	LOW	TABLE		; Lade untere Adresse der Tabelle
		ADDWF	VV,F			; Addiere Offset mit Tabellenadresse
		MOVLW	HIGH TABLE		; Lade obere Adresse der Tabelle
		BTFSC	STATUS,C		; Prüfe ob die Obere Adresse in der 2'ten Bank ist
		ADDLW	d'01'			; JA, Addiere 1 zum Program Counter Latch
		MOVWF	PCLATH			; Speichere im PCL
		MOVF	VV,W			; Kopiere Offset ins Work
		CALL	TABLE			; Hole Byte aus der Tabelle von Position VV und kehre mit DATA XX im W zurück
		MOVWF	TCA4			; 4'te Byte für die Spätere Verarbeitung in der Senderoutine Speichern
		INCF	ERGEB,F			; Erhöhe Adresse um eins (es müßen ja 7 Bytes gelesen werden)
		CLRF	VV				; Lösche die Alte Berechnung des Sprungadresse
		CLRWDT					; Watchdog Löschen

; 5'te Speicherstelle Auslesen
; ============================
		MOVF	ERGEB,W			; Tabellen Offset über das W Register nach VV
		MOVWF	VV				; Kopieren um den Orginal Inhalt von ERGEB nicht zu Verändern
		MOVLW	LOW	TABLE		; Lade untere Adresse der Tabelle
		ADDWF	VV,F			; Addiere Offset mit Tabellenadresse
		MOVLW	HIGH TABLE		; Lade obere Adresse der Tabelle
		BTFSC	STATUS,C		; Prüfe ob die Obere Adresse in der 2'ten Bank ist
		ADDLW	d'01'			; JA, Addiere 1 zum Program Counter Latch
		MOVWF	PCLATH			; Speichere im PCL
		MOVF	VV,W			; Kopiere Offset ins Work
		CALL	TABLE			; Hole Byte aus der Tabelle von Position VV und kehre mit DATA XX im W zurück
		MOVWF	TCA5			; 5'te Byte für die Spätere Verarbeitung in der Senderoutine Speichern
		INCF	ERGEB,F			; Erhöhe Adresse um eins (es müßen ja 7 Bytes gelesen werden)
		CLRF	VV				; Lösche die Alte Berechnung des Sprungadresse
		CLRWDT					; Watchdog Löschen

; 6'te Speicherstelle Auslesen
; ============================
		MOVF	ERGEB,W			; Tabellen Offset über das W Register nach VV
		MOVWF	VV				; Kopieren um den Orginal Inhalt von ERGEB nicht zu Verändern
		MOVLW	LOW	TABLE		; Lade untere Adresse der Tabelle
		ADDWF	VV,F			; Addiere Offset mit Tabellenadresse
		MOVLW	HIGH TABLE		; Lade obere Adresse der Tabelle
		BTFSC	STATUS,C		; Prüfe ob die Obere Adresse in der 2'ten Bank ist
		ADDLW	d'01'			; JA, Addiere 1 zum Program Counter Latch
		MOVWF	PCLATH			; Speichere im PCL
		MOVF	VV,W			; Kopiere Offset ins Work
		CALL	TABLE			; Hole Byte aus der Tabelle von Position VV und kehre mit DATA XX im W zurück
		MOVWF	TCA6			; 6'te Byte für die Spätere Verarbeitung in der Senderoutine Speichern
		INCF	ERGEB,F			; Erhöhe Adresse um eins (es müßen ja 7 Bytes gelesen werden)
		CLRF	VV				; Lösche die Alte Berechnung des Sprungadresse
		CLRWDT					; Watchdog Löschen

; 7'te Speicherstelle Auslesen
; ============================
		MOVF	ERGEB,W			; Tabellen Offset über das W Register nach VV
		MOVWF	VV				; Kopieren um den Orginal Inhalt von ERGEB nicht zu Verändern
		MOVLW	LOW	TABLE		; Lade untere Adresse der Tabelle
		ADDWF	VV,F			; Addiere Offset mit Tabellenadresse
		MOVLW	HIGH TABLE		; Lade obere Adresse der Tabelle
		BTFSC	STATUS,C		; Prüfe ob die Obere Adresse in der 2'ten Bank ist
		ADDLW	d'01'			; JA, Addiere 1 zum Program Counter Latch
		MOVWF	PCLATH			; Speichere im PCL
		MOVF	VV,W			; Kopiere Offset ins Work
		CALL	TABLE			; Hole Byte aus der Tabelle von Position VV und kehre mit DATA XX im W zurück
		MOVWF	TCA8			; 7'te Byte für die Spätere Verarbeitung in der Senderoutine Speichern
		CLRF	VV				; Lösche die Alte Berechnung des Sprungadresse
		CLRWDT					; Watchdog Löschen

; Ausgabe zum IR Eingang der COMAG Hardware:
; ==========================================
		CALL	TRUSTA			; Truman IR Startsequenz Ausgeben
		CALL	CODAUS			; Truman CODE Ausgeben 
		CALL	TRUSTO			; Truman Stopsequenz Ausgeben
		BCF		LEDI			; LED IR Indikator wieder Ausschalten wenn die Aussendung zum COMAG Erfolgt ist

; Alles Erledigt, Frage Fernbedienung erneut ab und Warte auf einen Befehl:
; =========================================================================
		GOTO	FBEMU			; Zurück zum Anfang

; Routine zur Codeausgabe im Truman Format: 
; =========================================
CODAUS: MOVLW	d'7'			; 1. Byte zu Senden (Inhalt 07)	ist ein Statischer Wert, d.h. er ist in jedem Code immer gleich !
		MOVWF	ZWI				; Übergabe an die Ausgabe Routine mit Hilfe unseren Zwischenspeichers
		CALL	BYAUS			; Bytes Ausgeben auf FBC
		MOVLW	d'8'			; 2. Byte Senden (Inhalt = 08) ist ein Statischer Wert, d.h. er ist in jedem Code immer gleich !
		MOVWF	ZWI				; Übergabe an die Ausgabe Routine mit Hilfe unseren Zwischenspeichers
		CALL	BYAUS			; Bytes Ausgeben auf FBC
		MOVF	TCA1,W			; 3. Byte Senden, (Inhalt = XX) wurde aus der Tabelle Gelesen
		MOVWF	ZWI				; Übergabe an die Ausgabe Routine mit Hilfe unseren Zwischenspeichers
		CALL	BYAUS			; Bytes Ausgeben auf FBC
		MOVF	TCA2,W			; 4. Byte Senden, (Inhalt = XX) wurde aus der Tabelle Gelesen
		MOVWF	ZWI				; Übergabe an die Ausgabe Routine mit Hilfe unseren Zwischenspeichers
		CALL	BYAUS			; Bytes Ausgeben auf FBC
		MOVF	TCA3,W			; 5. Byte Senden, (Inhalt = XX) wurde aus der Tabelle Gelesen
		MOVWF	ZWI				; Übergabe an die Ausgabe Routine mit Hilfe unseren Zwischenspeichers
		CALL	BYAUS			; Bytes Ausgeben auf FBC
		MOVF	TCA4,W			; 6. Byte Senden, (Inhalt = XX) wurde aus der Tabelle Gelesen
		MOVWF	ZWI				; Übergabe an die Ausgabe Routine mit Hilfe unseren Zwischenspeichers
		CALL	BYAUS			; Bytes Ausgeben auf FBC
		MOVF	TCA5,W			; 7. Byte Senden, (Inhalt = XX) wurde aus der Tabelle Gelesen
		MOVWF	ZWI				; Übergabe an die Ausgabe Routine mit Hilfe unseren Zwischenspeichers
		CALL	BYAUS			; Bytes Ausgeben auf FBC
		MOVF	TCA6,W			; 8. Byte Senden, (Inhalt = XX) wurde aus der Tabelle Gelesen
		MOVWF	ZWI				; Übergabe an die Ausgabe Routine mit Hilfe unseren Zwischenspeichers
		CALL	BYAUS			; Bytes Ausgeben auf FBC
		MOVLW	d'1'			; 9. Byte zu Senden (Inhalt 01)	ist ein Statischer Wert, d.h. er ist in jedem Code immer gleich !
		MOVWF	ZWI				; Übergabe an die Ausgabe Routine mit Hilfe unseren Zwischenspeichers
		CALL	BYAUS			; Bytes Ausgeben auf FBC
		MOVF	TCA8,W			; 10. Byte Senden, (Inhalt = XX) wurde aus der Tabelle Gelesen 
		MOVWF	ZWI				; Übergabe an die Ausgabe Routine mit Hilfe unseren Zwischenspeichers
		CALL	BYAUS			; Bytes Ausgeben auf FBC
		MOVLW	d'1'			; 11. Byte zu Senden (Inhalt 01)	ist ein Statischer Wert, d.h. er ist in jedem Code immer gleich !
		MOVWF	ZWI				; Übergabe an die Ausgabe Routine mit Hilfe unseren Zwischenspeichers
		CALL	BYAUS			; Bytes Ausgeben auf FBC
		RETURN

; Startsequenz im Trumanformat: Low für 9,1 mS gefolgt von High für 4,4 mS
; ======================================================================== 
TRUSTA:	BCF		FBC				; FB Ausgang zum Receiver auf Low setzen
		MOVLW	d'00'			; Vorladen mit 0 ist nicht Stabil, da wir auf ZERO Flag testen, deshalb mit 1 Vorladen
		MOVWF	VERKO			; In das FR für die Verzögerungszeit Kopieren
		CALL	VERZO			; Verzögerungsroutine Aufrufen
		MOVLW	d'215'			; Vorladen 928 uS
		MOVWF	VERKO			; In das FR für die Verzögerungszeit Kopieren
		CALL	VERZO			; Verzögerungsroutine Aufrufen
		BSF		FBC				; FB Ausgang zum Receiver auf High setzen
		MOVLW	d'117'			; Vorladen für 4,4 mS
		MOVWF	VERKO			; In das FR für die Verzögerungszeit Kopieren
		CALL	VERZO			; Verzögerungsroutine Aufrufen
		RETURN					; Zurück zum Aufrufenden Programmteil

; Stopsequenz im Trumanformat: High für 46,5 mS gefolgt von Low für 9,1 mS danach High für 2,1 mS und Low für 700 uS.
; ===================================================================================================================
TRUSTO: BSF		FBC				; FB Ausgang zum Receiver auf High setzen
		MOVLW	d'05'			; Durchlaufschleifenzähler Laden
		MOVWF	ZWI				; im Zwischregister speichern
GACK:	MOVLW	d'00'			; Vorladen mit 8,61 mS 
		MOVWF	VERKO			; In das FR für die Verzögerungszeit Kopieren 
		CALL	VERZO			; Verzögerungsroutine Aufrufen
		DECFSZ	ZWI,F			; Schleifenzähler -1, auf 0 Testen und bei 0 nächste Zeile Überspringen
		GOTO	GACK			; Schleifenzähler ist noch nicht 0, also nochmal das ganze
		MOVLW	d'125'			; Vorladen 4,16 mS
		MOVWF	VERKO			; In das FR für die Verzögerungszeit Kopieren
		CALL	VERZO			; Verzögerungsroutine Aufrufen
		BCF		FBC				; FB Ausgang zum Receiver auf Low setzen
		MOVLW	d'01'			; Vorladen mit 0 ist nicht Stabil, da wir auf ZERO Flag testen, deshalb mit 1 Vorladen
		MOVWF	VERKO			; In das FR für die Verzögerungszeit Kopieren
		CALL	VERZO			; Verzögerungsroutine Aufrufen
		MOVLW	d'225'			; Vorladen 960 uS  
		MOVWF	VERKO			; In das FR für die Verzögerungszeit Kopieren
		CALL	VERZO			; Verzögerungsroutine Aufrufen
		BSF		FBC				; FB Ausgang zum Receiver auf High setzen
		MOVLW	d'189'			; Vorladen 2,1 mS
		MOVWF	VERKO			; In das FR für die Verzögerungszeit Kopieren
		CALL	VERZO			; Verzögerungsroutine Aufrufen
		BCF		FBC				; FB Ausgang zum Receiver auf Low setzen
		MOVLW	d'233'			; Vorladen 704 uS
		MOVWF	VERKO			; In das FR für die Verzögerungszeit Kopieren
		CALL	VERZO			; Verzögerungsroutine Aufrufen
		BSF		FBC				; Ruhezustand Wiederherstellen
		RETURN					; Zurück

; Byteausgabe im Trumanformat: Low für die Dauer von 700 uS, gefolgt von High für die Dauer von 400 uS LOW
; =======================================================================================================
BYAUS:	BCF		FBC				; FB Ausgang zum Receiver auf LOW setzen
		MOVLW	d'233'			; Vorladen 736 uS 
		MOVWF	VERKO			; In das FR für die Verzögerungszeit Kopieren
		CALL	VERZO			; Verzögerungsroutine Aufrufen
		BSF		FBC				; IR EMU Ausgang auf High 
		MOVLW	d'242'			; Vorladen 416 uS
		MOVWF	VERKO			; In das FR für die Verzögerungszeit Kopieren
		CALL	VERZO			; Verzögerungsroutine Aufrufen
		DECFSZ	ZWI,F			; Bitzähler -1, wenn 0 Überspringe nächste Zeile
		GOTO	BYAUS			; von vorne, noch nicht alle Bit's Übertragen
		MOVLW 	d'208'			; Vorladen 1,536 mS
		MOVWF	VERKO			; In das FR für die Verzögerungszeit Kopieren
		CALL	VERZO			; Verzögerungsroutine Aufrufen
		RETURN					; zurück zum Aufrufenden Programmteil

; Einfache Adressoffset Berechnung:
; =================================
AOERM:	
; Zuerst Prüfen ob der Index 0 ist, dann ist die Startadresse der Tabelle = 1
		MOVLW	d'0'			; Vergleichswert Laden
		XORWF	MULTI,W			; Vergleichen
		BTFSC	STATUS,Z		; Prüfen ob gleich
		GOTO 	WEIA			; Ja Inhalt ist 0, nun nur Ergebniss +1 als Startadresse
LUS:	MOVF	ERGEB,W			; Ergebnis der Adressberechnung ins W Laden
		ADDLW	d'07'			; Ergebnis +7
		MOVWF	ERGEB			; Speicher Ergebnis der Addition zurück in Ergebnis
		DECFSZ	MULTI,F			; Index -1, Wenn Index = 0 dann Überspringe nächste Zeile
		GOTO	LUS				; Index muß weiter Erhöht werden		
WEIA:	INCF	ERGEB,F			; ERGEBNIS = ERGEBNIS +1
		RETURN					; Zurück zum Aufrufenden Programmteil

; NEUE Init Sequenz des PCM DAC mit Wechsel des MODE:
; ===================================================
; Neue Modeumschaltung, läuft jetzt auch ohne Ausschalten am Netzschalter
; PCM 1742 Adress und Daten Register Zuweisen:
; ============================================
PCMINIT:MOVLW	H'14'			; Register 20 (h14) Audio Data Format Control
		MOVWF	FDIX			; im Speicher Ablegen
		BTFSC	TB				; Auswahl Mode Abfragen
		GOTO	TRUSO			; Truman Sound INIT

; COMAG SOUND INIT:
; =================
		MOVLW	H'05'			; B0 / B1 / B2 = 101 FMT SET to 16-24 BIT Std., Left Justified Format
		MOVWF	LDDX			; im Speicher Ablegen
		BCF		LED				; Kontroll Lampe für den COMAG MODE Ausschalten
		GOTO 	GOGO			; Zur Initialisierung gehen

; TRUMAN SOUND INIT:
; ==================
TRUSO:	MOVLW	H'03'			; B0 / B1 / B2 = 011 FMT SET to 16 BIT Std., RSV set to Zero, FLT default 0, RSV set to Zero
		MOVWF	LDDX			; im Speicher Ablegen
		BSF		LED				; Kontroll Lampe für den TRUMAN MODE Einschalten

; PCM Latch auf LOW setzen für Datenübernahme:
; ============================================
GOGO:	BCF		ML				; Latch des PCM auf LOW setzen

; MSB FIRST zuerst das REGISTER INDEX
; ===================================
		MOVLW	h'08'			; Lade Work mit Anzahl der Auszugebenden Bit's (Bitzähler Wert 8)
		MOVWF	ZWI				; speichere Zwischen
		
NNF1:	RLF		FDIX,W			; Indexbyte nun Bitweise nach Links durch das CARRY Schieben und im W Register speichern
		BTFSC	STATUS,C		; Carry Flag des Status Register prüfen ob eine 0 oder 1 als MD gesendet werden soll
		BSF		MD				; Carry war 1 also setze DATA auf HIGH
		MOVWF	FDIX			; Speichere Inhalt vom W zurück ins FR 
		CALL	AUSGABE			; Gebe auf MD aus
		DECFSZ	ZWI,F			; Bitzähler -1, wenn 0 Überspringe nächste Zeile
		GOTO	NNF1			; Bitzähler ist < 0, noch nicht alle Bits Ausgewertet und gesendet, Schleife 

; MSB FIRST nun das DATAS REGISTER
; ================================
		MOVLW	h'08'			; Lade Work mit Anzahl der Auszugebenden Bit's (Bitzähler Wert 8)
		MOVWF	ZWI				; speichere Zwischen
		
NNF2:	RLF		LDDX,W			; Datenbyte nun Bitweise nach Links durch das CARRY Schieben und im W Register speichern
		BTFSC	STATUS,C		; Carry Flag des Status Register prüfen ob eine 0 oder 1 als MD gesendet werden soll
		BSF		MD				; Setze MD auf HIGH
		MOVWF	LDDX			; Speichere Inhalt vom W zurück ins FR
		CALL	AUSGABE			; Gebe auf MD aus
		DECFSZ	ZWI,F			; Bitzähler -1, wenn 0 Überspringe nächste Zeile
		GOTO	NNF2			; Bitzähler ist < 0, noch nicht alle Bits Ausgewertet und gesendet, Schleife

; Daten sind gesendet, nun Latch des PCM wieder auf HIGH setzen zum Übernehmen der Daten
; ======================================================================================
		BSF		ML				; Latch auf High setzen
		RETURN					; zurück zum Hauptprogramm

; Clock Leitung des PCM High / Low schalten
; =========================================
AUSGABE:BSF		MC				; Clock High
		BCF		MC				; Clock Low	
		BCF		MD				; MD zuücksetzen
		RETURN

; NEUE VERZÖGERUNGS ROUTINE OHNE TMR0 (32 uS pro Teiler / Kalibrierbar in der ersten Zeile)
; =========================================================================================
VERZO:	MOVLW	d'09'			; Lade aktuellen Wert des Timers (24 +8 uS bei 4 MHz)			
		MOVWF	ZWI2			; Speichere im 2'ten Zwischenspeicher				
VER1:	DECFSZ	ZWI2,F			; Inhalt von ZWI2 -1, wenn Null Überspringe die nächste Zeile		
		GOTO	VER1			; Weiter Verzögern 
		CLRWDT					; Watchdog Löschen
		INCFSZ	VERKO,F			; Inhalt von VERKO +1, wenn Null Überspringe nächste Zeile		
		GOTO 	VERZO			; Nochmaliger Durchlauf der Verzögerungsroutine
		RETURN					; Zuück zum Aufrufenden Programmteil 				

; Speicherort in Ram / für den Compiler
; =====================================
	ORG	0x2D9

; Tabelle der TRUMAN Codes von 1 - 34 Korospondiert mit dem im EEPROM gespeicherten COMAG Codes:
; ==============================================================================================
TABLE:	MOVWF	PCL									
		DT	d'3', d'2', d'5', d'2', d'2', d'1', d'1'	; TRUMAN CODE 1		POWER
		DT	d'2', d'1', d'3', d'6', d'1', d'2', d'1'	; TRUMAN CODE 2		ROT
		DT	d'2', d'1', d'2', d'1', d'6', d'3', d'1'	; TRUMAN CODE 3		GRÜN
		DT	d'4', d'2', d'4', d'1', d'2', d'2', d'1'	; TRUMAN CODE 4		GELB
		DT	d'4', d'4', d'2', d'1', d'2', d'1', d'2'	; TRUMAN CODE 5		BLAU
		DT	d'2', d'1', d'1', d'2', d'7', d'2', d'1'	; TRUMAN CODE 6		SAT
		DT	d'2', d'3', d'1', d'5', d'1', d'3', d'1'	; TRUMAN CODE 7		TV/SAT
		DT	d'3', d'5', d'2', d'2', d'1', d'1', d'2'	; TRUMAN CODE 8		EPG
		DT	d'3', d'3', d'4', d'2', d'1', d'2', d'1'	; TRUMAN CODE 9		WEIß
		DT	d'2', d'6', d'3', d'1', d'1', d'1', d'2'	; TRUMAN CODE 10	EXIT
		DT	d'8', d'2', d'1', d'1', d'1', d'1', d'2'	; TRUMAN CODE 11	MENU
		DT	d'5', d'1', d'4', d'1', d'1', d'3', d'1'	; TRUMAN CODE 12	P/N
		DT	d'2', d'1', d'1', d'1', d'9', d'1', d'1'	; TRUMAN CODE 13	MUTE
		DT	d'2', d'1', d'2', d'7', d'2', d'1', d'1'	; TRUMAN CODE 14	CH UP
		DT	d'2', d'4', d'5', d'1', d'1', d'2', d'1'	; TRUMAN CODE 15	V-
		DT	d'2', d'2', d'1', d'6', d'3', d'1', d'1'	; TRUMAN CODE 16	OK
		DT	d'6', d'4', d'1', d'1', d'1', d'2', d'1'	; TRUMAN CODE 17	V+
		DT	d'3', d'1', d'1', d'5', d'4', d'1', d'1'	; TRUMAN CODE 18	CH DOWN
		DT	d'2', d'1', d'1', d'1', d'1', d'9', d'1'	; TRUMAN CODE 19	P+
		DT	d'3', d'1', d'1', d'1', d'4', d'5', d'1'	; TRUMAN CODE 20	P-
		DT	d'2', d'2', d'1', d'1', d'5', d'4', d'1'	; TRUMAN CODE 21	RECALL
		DT	d'3', d'1', d'2', d'4', d'3', d'2', d'1'	; TRUMAN CODE 22	FAV
		DT	d'2', d'9', d'1', d'1', d'1', d'1', d'1'	; TRUMAN CODE 23	1
		DT	d'3', d'7', d'2', d'1', d'1', d'1', d'1'	; TRUMAN CODE 24	2
		DT	d'2', d'1', d'9', d'1', d'1', d'1', d'1'	; TRUMAN CODE 25	3
		DT	d'4', d'6', d'1', d'2', d'1', d'1', d'1'	; TRUMAN CODE 26	4
		DT	d'2', d'2', d'7', d'2', d'1', d'1', d'1'	; TRUMAN CODE 27	5
		DT	d'3', d'1', d'6', d'3', d'1', d'1', d'1'	; TRUMAN CODE 28	6
		DT	d'2', d'1', d'1', d'9', d'1', d'1', d'1'	; TRUMAN CODE 29	7
		DT	d'5', d'5', d'1', d'1', d'2', d'1', d'1'	; TRUMAN CODE 30	8
		DT	d'2', d'3', d'6', d'1', d'2', d'1', d'1'	; TRUMAN CODE 31	9
		DT	d'3', d'2', d'1', d'4', d'2', d'3', d'1'	; TRUMAN CODE 32	INFO
		DT	d'10', d'1', d'1', d'1', d'1', d'1', d'1'	; TRUMAN CODE 33	0
		DT	d'2', d'2', d'4', d'3', d'2', d'1', d'2'	; TRUMAN CODE 34	SHIFT (ex. PAUSE)

; Über Shift "PAUSE" und Tast XX Erreichbar				; TRUMAN    / COMAG
; ==========================================================================
		DT  d'2', d'1', d'1', d'4', d'5', d'1', d'2'	; F1		/ 1
		DT  d'2', d'1', d'5', d'4', d'1', d'1', d'2'	; F2		/ 2
		DT  d'3', d'1', d'4', d'2', d'3', d'1', d'2'	; HELP		/ 3
		DT	d'4', d'4', d'2', d'1', d'2', d'1', d'2'	; BLAU		/ 4
		DT  d'4', d'1', d'1', d'4', d'1', d'4', d'1'	; LUPE		/ 5
		DT	d'4', d'1', d'5', d'1', d'3', d'1', d'1'	; UHF		/ 6
		DT  d'2', d'2',	d'2', d'5', d'2', d'2', d'1'	; TV/RADIO	/ 7
		DT	d'2', d'2', d'4', d'3', d'2', d'1', d'2'	; PAUSE 	/ PAUSE


; Erste Adresse der EEprom Speichertabelle für die COMAG CODES:
; =============================================================
	ORG h'2100'		

; Maximal 64 Bytes können im internen EEprom des 16F84 gespeichert werden		    I I I I I I   I  
; EEPROM Daten  COMAG CODE		  FUNKTION 				COMAG	TRUMAN			7 8 X X X X X X 1 X 1		GETESTET
; ==========================================================================================================================
		DE		b'00011110'		; POWER Taste			OK		POWER			7 8 3 2 5 2 2 1 1 1 1		OK
		DE		b'00010000'		; ROT					OK		ROT				7 8 2 1 3 6 1 2 1 1 1		OK
		DE		b'00100010'		; GRÜN					OK		GRÜN			7 8 2 1 2 1 6 3 1 1 1		OK
		DE		b'00011001'		; GELB					OK		GELB			7 8 4 2 4 1 2 2 1 1 1		OK
		DE		b'00010100'		; BLAU					OK		BLAU			7 8 4 4 2 1 2 1 1 2 1		OK
		DE		b'00110010'		; AUDIO Taste			<==>	SAT				7 8 2 1 1 2 7 2 1 1 1		??
		DE		b'00011010'		; TIMER Taste			<==>	TV/SAT			7 8 2 3 1 5 1 3 1 1 1		??
		DE		b'00100110'		; EPG Taste				OK		EPG				7 8 3 5 2 2 1 1 1 2 1		OK
		DE		b'00100000'		; TEXT Taste			OK		WEIß			7 8 3 3 4 2 1 2 1 1 1		OK
		DE		b'00110000'		; EXIT Taste 			OK		EXIT			7 8 2 6 3 1 1 1 1 2 1		OK
		DE		b'00100111'		; MENU Taste			OK		MENU			7 8 8 2 1 1 1 1 1 2 1		OK
		DE		b'00101111'		; M/P Taste				<==>	P/N				7 8 5 1 4 1 1 3 1 1 1		??
		DE		b'00110111'		; MUTE Taste			OK		MUTE			7 8 2 1 1 1 9 1 1 1 1		OK
		DE		b'00101000'		; CH UP Taste			OK		CH UP			7 8 2 1 2 7 2 1 1 1 1		OK
		DE		b'00100001'		; V- Taste				OK		V-				7 8 6 4 1 1 1 2 1 1 1		OK
		DE		b'00101001'		; OK Taste				OK		OK				7 8 2 2 1 6 3 1 1 1 1		OK
		DE		b'00110001'		; V+ Taste				OK		V+				7 8 2 4 5 1 1 2 1 1 1		OK
		DE		b'00101010'		; CH DOWN Taste			OK		CH DOWN			7 8 3 1 1 5 4 1 1 1 1		OK
		DE		b'00100011'		; P+ Taste				OK		P+				7 8 2 1 1 1 1 9 1 1 1		OK
		DE		b'00011011'		; P- Taste				OK		P-				7 8 3 1 1 1 4 5 1 1 1		OK
		DE		b'00101110'		; RECALL Taste			OK		RECALL			7 8 2 2 1 1 5 4 1 1 1		OK
		DE		b'00011000'		; FAV Taste				OK		FAV				7 8 3 1 2 4 3 2 1 1 1		OK
		DE		b'00110101'		; 1						OK		1				7 8	2 9 1 1 1 1 1 1 1		OK
		DE		b'00101101'		; 2						OK		2				7 8 3 7 2 1 1 1 1 1 1		OK
		DE		b'00100101'		; 3						OK		3				7 8 2 1 9 1 1 1 1 1 1		OK
		DE		b'00011101'		; 4						OK		4				7 8 4 6 1 2 1 1 1 1 1		OK
		DE		b'00110100'		; 5						OK		5				7 8 2 2 7 2 1 1 1 1 1		OK
		DE		b'00101100'		; 6						OK		6				7 8 3 1 6 3 1 1 1 1 1		OK
		DE		b'00100100'		; 7						OK		7				7 8 2 1 1 9 1 1 1 1 1		OK
		DE		b'00011100'		; 8						OK		8				7 8 5 5 1 1 2 1 1 1 1		OK
		DE		b'00110011'		; 9						OK		9				7 8 2 3 6 1 2 1 1 1 1		OK
		DE		b'00110110'		; INFO Taste			OK		INFO			7 8 3 2 1 4 2 3 1 1 1		OK
		DE		b'00101011'		; 0						OK		0			   7 8 10 1 1 1 1 1 1 1 1		OK
		DE		b'00011111'		; PAUSE Taste			OK		PAUSE			7 8 2 2 4 3 2 1 1 2 1		??
		DE   	"VINIX 2007"

; Diese Tasten sind nicht Verfügbar !
; ===================================
;
;		BEI COMAG  KEINE TASTE VORHANDEN		UHF								7 8 4 1 5 1 3 1 1 1 1		wird nicht gebraucht
;		BEI COMAG  KEINE TASTE VORHANDEN		F1								7 8 2 1 1 4 5 1 1 2 1		???? Wofür
;		BEI COMAG  KEINE TASTE VORHANDEN		F2								7 8 2 1 5 4 1 1 1 2 1		???? Wofür
;		BEI COMAG  KEINE TASTE VORHANDEN		HELP							7 8 3 1 4 2 3 1 1 2 1		???? ?????
;		BEI COMAG  KEINE TASTE VORHANDEN		TV/RADIO						7 8 2 2 2 5 2 2 1 1 1		wäre schön
;		BEI COMAG  KEINE TASTE VORHANDEN		LUPE							7 8 4 1 1 4 1 4 1 1 1		???? ?????

		END

sl2

Lanza, si esto no se puede, a la papelera....

Última edición por vishero; 28/07/2007 a las 17:47.
vishero está desconectado
Respuesta rápida a este mensaje
Responder Citando Subir
Antiguo 28/07/2007, 11:32   #9
barrigaverde 
Usuario PREMIUM+
 
Avatar de barrigaverde
 
Fecha de ingreso: 26/mar/2006
Mensajes: 3.552
barrigaverde es un nombre conocido por todosbarrigaverde es un nombre conocido por todosbarrigaverde es un nombre conocido por todosbarrigaverde es un nombre conocido por todosbarrigaverde es un nombre conocido por todosbarrigaverde es un nombre conocido por todos
la verdad vishero que has realizado un gran trabajo .no he optado por ella pues creo poder sacar socido de la salida digital que tenenmos los del sl 65a b1 con una tarjeta de sonido que tengo ya postee todo pero esa es una opcion, en algunos caso el personal no tiene forma de programar un pic o atmel aunque creo que hay un circuito para atmel facil no se si tendra valor para un pic con un entrenador y puerto paralelo esta en un pdf haber si lo encuentro
barrigaverde está desconectado
Respuesta rápida a este mensaje
Responder Citando Subir
Antiguo 28/07/2007, 11:40   #10
Adobe
Usuario Activo
 
Fecha de ingreso: 22/jul/2003
Mensajes: 138
Adobe está en el buen camino
Vishero te puse en el hilo de pruebas.. que si existia un zocalo en SMD del tipo J para el chip de audio para ponerlo encima del chip. con esto no habria que tocar el deco.
Otra cosa el tema del frontal esta un poco confuso y no se muy bien las modificaciones a realizar.
Yo por ahora tengo hecho todo a falta de cortar el cable para el mando
y soldar en el chip (que no me agrada).

saludos
Adobe está desconectado
Respuesta rápida a este mensaje
Responder Citando Subir
Antiguo 28/07/2007, 11:46   #11
lanza3d 
Seccion 7 - Juanito
 
Avatar de lanza3d
 
Fecha de ingreso: 27/feb/2003
Mensajes: 2.413
lanza3d ha deshabilitado la reputación
Cita:
Iniciado por vishero Ver mensaje
Lanza, si esto no se puede, a la papelera....
wenas vishero, yo mi Aleman esta un poco "verde" y mis conocimientos de programacion mas "verde" todavia.

si lo que has puesto, no permite el visionado de canales de pago (o sea un firm oficial y que solo permite ver los canales FTA) se puede dejar.

Si por el contrario, es un firm modificado y que permite el visionado de canales de pago, de una forma ilegal .... hay que quitarlo.


Asi que tu diras,
__________________
  • Existen 10 tipos de personas, los que saben leer numero binarios y los que no.
lanza3d está desconectado
Respuesta rápida a este mensaje
Responder Citando Subir
Antiguo 28/07/2007, 11:52   #12
barrigaverde 
Usuario PREMIUM+
 
Avatar de barrigaverde
 
Fecha de ingreso: 26/mar/2006
Mensajes: 3.552
barrigaverde es un nombre conocido por todosbarrigaverde es un nombre conocido por todosbarrigaverde es un nombre conocido por todosbarrigaverde es un nombre conocido por todosbarrigaverde es un nombre conocido por todosbarrigaverde es un nombre conocido por todos
no se si me equivoco lanza3d pero esto es un programa para qque el fichero de truman funcione el sonido y el mando todo ello dentro del sl65a pero el firm alternativo aqui no esta claro de todas formas si no puede estar pues como dice vishero a lapapelera
barrigaverde está desconectado
Respuesta rápida a este mensaje
Responder Citando Subir
Antiguo 28/07/2007, 13:22   #13
vishero 
ZFU-4788-02
 
Fecha de ingreso: 27/dic/2002
Mensajes: 1.146
vishero es realmente agradablevishero es realmente agradablevishero es realmente agradablevishero es realmente agradable
xLanza3D, como dice barrigaverde, el hex en sí no tiene nada que permita ver nada, el mod en su conjunto solo permite hacer posible el meter firms de otros aparatos no compatibles. Ahora, lo que uno le meta ya es otra cosa...

xbarrigaverde, en el hilo alemán del mod alguien comentó lo de la falta de salida optica en el truman original (que no la trae el deco) y le indicaron que usara otro firm, no sé si el anterior modificado, o de otro deco compatible con el Truman pero con salida óptica, digital y S-VHS.
Si encuentro el post (que el hilo es larguísimo y en alemán) te digo cual es.

xAdobe, si leí tu sugerencia, a mi tampoco me seduce la idea de soldar en la placa, mas en ese lugar, y si el zócalo SMD fuera fácil de conseguir sería la solución.
Tu ya lo tienes?, podrías poner una foto?, aunque sea sacada de alguna web.
El tema de la conexión, hay un pdf de bertram02 (el de las fotos) con las modificaciones hechas, pero está en alemán y no lo entiendo ni traduciéndolo online, sobre todo lo del 74HC164D, lo iba a colgar en la sección español de ULC a ver si alguien me lo traduce. Lo pongo como viene por si lo entiendes.

Talvez SantiPHREACK podría poner el diagrama que el hizo, aunque sea hecho a mano y sacándole una foto.

[QUOTE]Umbau der Anzeige beim SL65 unter Truman-Software

Wenn man die Truman-Soft auf den SL65 aufspielt funktioniert die Anzeige nicht mehr richtig. Grund dafür ist, dass das IC U1 (74HC164D) die verschiedenen Segmente der 7-Segment-Anzeigen anders ansteuert. Deswegen muss man manche Verbindungen auftrennen und anders „verlegen“.

Folgende Pins am IC hochbiegen: Pin 3, 4, 5, 6, 11 und 12

Folgende Verbindungen herstellen:

- Pin 3 mit R7
- Pin 4 mit R6
- Pin 5 mit R12
- Pin 6 mit R11
- Pin 11 mit R9
- Pin 12 mit R8

Das war´s dann schon... Viel Spaß beim Umbau...

An dieser Stelle noch vielen Dank an Vinix für die tolle Vorarbeit! [/QUOTE]
[SIZE="1"]Info by [B]bertram02[/B][/SIZE]

Algún voluntario de "Traductores Sin Fronteras"...

sl2

Última edición por vishero; 28/07/2007 a las 17:58.
vishero está desconectado
Respuesta rápida a este mensaje
Responder Citando Subir
Antiguo 28/07/2007, 14:04   #14
lanza3d 
Seccion 7 - Juanito
 
Avatar de lanza3d
 
Fecha de ingreso: 27/feb/2003
Mensajes: 2.413
lanza3d ha deshabilitado la reputación
[QUOTE=vishero;2959701]xLanza3D, como dice barrigaverde, el hex en sí no tiene nada que permita ver nada, el mod en su conjunto solo permite hacer posible el meter firms de otros aparatos no compatibles. Ahora, lo que uno le meta ya es otra cosa...
[/QUOTE]

entoces sin problemas
__________________
  • Existen 10 tipos de personas, los que saben leer numero binarios y los que no.
lanza3d está desconectado
Respuesta rápida a este mensaje
Responder Citando Subir
Antiguo 28/07/2007, 14:07   #15
Adobe
Usuario Activo
 
Fecha de ingreso: 22/jul/2003
Mensajes: 138
Adobe está en el buen camino
Creo que esto del frontal es unir con cables del pin del Integrado 74HC164D a las resistencias que te indican PERO SOLO CREO QUE NADIE HAGA NADA.
Y lo del zocalo mirare por inter.. a ver si veo algo en mi pueblo no se vende nada de elctronica y mis chapuzas me las hago reciclando de aparatos viejos.

saludos
Adobe está desconectado
Respuesta rápida a este mensaje
Responder Citando Subir
Antiguo 28/07/2007, 15:58   #16
vishero 
ZFU-4788-02
 
Fecha de ingreso: 27/dic/2002
Mensajes: 1.146
vishero es realmente agradablevishero es realmente agradablevishero es realmente agradablevishero es realmente agradable
barrigaverde,

El firm Truman con salida coaxial está en upload de ULC, arriba del todo en " TEST BEREICH Firmware ", se llama "SL 35 & 65 PW Ok Read Info", puesto por "ReaperXxX01" el 19.06.2007, el comprimido es "SL 35 & 65 Pw Ok.rar" y dentro tiene:

El "System Upgrade 10-30-2006 bootloader"
El firm "Truman.EMU.1.3.60.Serbia.abs"
Y un .doc en alemán (que manía tienen de poner todo en alemán... )
donde dice algo del funcionamiento del coaxial digital y su uso con un mando 8en1 universal.

[Quote]"Sound kann nur über Digital-Coax angeschlossen werden,
wie bestätiigt wurde ."

y

Sound über Digital-Coax angeschlossen,
und meine LIFE/MEDION/TEVION 8in1 Uni-Fernbedienung
auf Suchlauf angeworfen und siehe da,
bei dem zweiten Code hat es dann geklappt!!
[/Quote]

Ojo que es un firm de pruebas...

sl2
vishero está desconectado
Respuesta rápida a este mensaje
Responder Citando Subir
Antiguo 28/07/2007, 16:28   #17
barrigaverde 
Usuario PREMIUM+
 
Avatar de barrigaverde
 
Fecha de ingreso: 26/mar/2006
Mensajes: 3.552
barrigaverde es un nombre conocido por todosbarrigaverde es un nombre conocido por todosbarrigaverde es un nombre conocido por todosbarrigaverde es un nombre conocido por todosbarrigaverde es un nombre conocido por todosbarrigaverde es un nombre conocido por todos
grs vishero por este explendido post aunque ya habia posteado por ello siempre cuando he probado ficheros de truma o globo he observado que se enciende los diodos del conector de la salida digital optica pero no sabia que los fichero no daban salida digital coaxial eso aun no lo he probado pero me falta poco un par de sosillas
barrigaverde está desconectado
Respuesta rápida a este mensaje
Responder Citando Subir
Antiguo 28/07/2007, 17:11   #18
barrigaverde 
Usuario PREMIUM+
 
Avatar de barrigaverde
 
Fecha de ingreso: 26/mar/2006
Mensajes: 3.552
barrigaverde es un nombre conocido por todosbarrigaverde es un nombre conocido por todosbarrigaverde es un nombre conocido por todosbarrigaverde es un nombre conocido por todosbarrigaverde es un nombre conocido por todosbarrigaverde es un nombre conocido por todos
vishero para que observes resumiendo mucho esto es lo que quiero hacer con un circuito hecho a mano

h**p://web.telia.com/~u91003452/live/images/PinoutDrawings.gif
barrigaverde está desconectado
Respuesta rápida a este mensaje
Responder Citando Subir
Antiguo 28/07/2007, 17:16   #19
barrigaverde 
Usuario PREMIUM+
 
Avatar de barrigaverde
 
Fecha de ingreso: 26/mar/2006
Mensajes: 3.552
barrigaverde es un nombre conocido por todosbarrigaverde es un nombre conocido por todosbarrigaverde es un nombre conocido por todosbarrigaverde es un nombre conocido por todosbarrigaverde es un nombre conocido por todosbarrigaverde es un nombre conocido por todos
También usaremos un par de diodos para asegurarnos que no introducimos tensiones mayores de cinco voltios, ni menores de cero voltios.




El único elemento activo del circuito es el integrado 74HC04, que debe ser alimentado con 5 voltios. No hay problema, porque en el bus de expansión tenemos esa alimentación.

lo siento no me ha salido el esquema

aqui os pongo la direccion por si lo quereis ver es muy sencillo para los que tengan soumblaster live

h**p://www.hispasonic.com/articulo74.html

en el datasest del micro en la figura 4 se ve claramente las patillas ha conexionar solo hace falta un chips pues aun le sobran patillas que si fuera necesario se podrian utilizar aunque el esquema solo utiliza cuatro saludos

Última edición por barrigaverde; 28/07/2007 a las 17:47.
barrigaverde está desconectado
Respuesta rápida a este mensaje
Responder Citando Subir
Antiguo 29/07/2007, 20:59   #20
vishero 
ZFU-4788-02
 
Fecha de ingreso: 27/dic/2002
Mensajes: 1.146
vishero es realmente agradablevishero es realmente agradablevishero es realmente agradablevishero es realmente agradable
barrigaverde,
Recien ahora caigo, (después de haber leído desde el principio el hilo del A1 (donde estaba el firm que te comentaba antes) y los post de Air101 en ULC), con lo que me decías del audio digital.

El firm no saca audio analógico, pero si digital, y lo que buscaban era convertirlo. La idea de Air de un conversor (DAC) no es mala, pero si mas cara que el mod. Ahora si se tiene un amplificador con entrada digital se puede usar, ya sea para sacar audio por el sistema de altavoces o mandarlo al TV por las salidas RCA del amplificador.

Para salir del paso vale, pero creo que lo mas práctico es el mod. que soluciona tanto el sonido como lo del mando.

Ahora que ha salido a la luz la apertura de irdet*2 y vi*ccess2.5 seguramente habrá que actualizarse y con los Truman hay "soporte" muy bueno...

sl2
vishero está desconectado
Respuesta rápida a este mensaje
Responder Citando Subir
Antiguo 31/07/2007, 17:53   #21
barrigaverde 
Usuario PREMIUM+
 
Avatar de barrigaverde
 
Fecha de ingreso: 26/mar/2006
Mensajes: 3.552
barrigaverde es un nombre conocido por todosbarrigaverde es un nombre conocido por todosbarrigaverde es un nombre conocido por todosbarrigaverde es un nombre conocido por todosbarrigaverde es un nombre conocido por todosbarrigaverde es un nombre conocido por todos
saludos vishero gras por todo en ello llevo pensando desde hace mucho tiempo de que efectivamente es asi es el que mas soporte tiene en todas la direcciones y sobre todo si esta en jastra por ese motivo lo estoy preparando sin prisa para el proximo años claro que ya esta encima saludos
barrigaverde está desconectado
Respuesta rápida a este mensaje
Responder Citando Subir
Antiguo 02/08/2007, 03:15   #22
vishero 
ZFU-4788-02
 
Fecha de ingreso: 27/dic/2002
Mensajes: 1.146
vishero es realmente agradablevishero es realmente agradablevishero es realmente agradablevishero es realmente agradable
Siguiendo con el tema, al final terminé desarmando todo el cacharro...

Después de recorrerme varias tiendas no encontré el Resonador de 4MHz, así que hice una prueba con un cristal de 4MHz y dos condensadores de 22pf y no funcionó. Pero no sé si ese es el problema, o que no hice el punteado del 74HC164D, ya que pensé que al ir la señal del IR directa al conector (cable negro) no haría falta.

También intente montar el MOD con un AVR, pero justo los que se necesitan no tengo. Se pueden usar un Atmel AVR ATMega32, ATMEGA16 , ATMega8535 (40 patas) o un ATMega8 (28 patas), y yo tengo de los "clásicos" AT8515 y ATMega8515.

Solo hice lo necesario para que funcionara el mando, el sonido de momento lo dejaré tal cual, si es que, como dicen, hay salida digital, por lo menos en el óptico hay señal al meterle el firm del Truman, y si funciona correctamente lo usaré con un amplificador con entrada digital.

Lo de soldar en el PCM1742KE, mire por debajo y solo hay un solo punto en la zona del chip que pudiera ser una pata, pero había que quitarle el esmalte para comprobarlo, y si hubiera continuidad tampoco soluciona nada, así que por aquí no se puede.
Por arriba, solo habría que soldar solo en dos patas, ya que una de las resistencias del costado (RA16) estaría conectada a la pata 15 (una pita, pero no se ve bien).

Para quitar, y reponer, los 2 condensadores de 10uf hay que sacar la placa. Al reponerlos se podrían poner unos nuevos y colocarlos acostados, y si tocaran en algún otro componente buscar unos mas bajos, de esta manera no habría que sacarlos nuevamente si hubiera que soldar otra vez.

Fotos de frontales:

Frontal SL35 (Kosovo-ULC):


Frontal SL35-1 CI (Vinix-ULC):


Frontal SL65s:


Mirando las diferencias, además de la cantidad de botones, la principal es el 74HC164D, ya que las anteriores no lo tienen.


En el MOD de bertram02 se puede ver el puenteado:


Que según el texto en alemán que puse antes, sería algo así:


Esto será solo para que funcione el display?. O para los botones del frontal también?...
Lo de soldar esto así, de manera "irreversible" sin desoldar, no me gusta. Creo que le meteré un switch múltiple para poder ponerlo al estado "normal" cuando se quiera.

Aquí la pista del IR, hasta el cable negro que hay que puentear con el 16F84.


Bueno, seguiré buscando el dichoso resonador, y si no encuentro compraré un AT.

sl2

Última edición por vishero; 02/08/2007 a las 03:21.
vishero está desconectado
Respuesta rápida a este mensaje
Responder Citando Subir
Antiguo 02/08/2007, 03:41   #23
jubamo 
Usuario PREMIUM+
 
Avatar de jubamo
 
Fecha de ingreso: 15/ago/2006
Mensajes: 420
jubamo es como un diamante en brutojubamo es como un diamante en brutojubamo es como un diamante en brutojubamo es como un diamante en bruto
[QUOTE=vishero;2963164]
Después de recorrerme varias tiendas no encontré el Resonador de 4MHz, así que hice una prueba con un cristal de 4MHz y dos condensadores de 22pf y no funcionó. Pero no sé si ese es el problema, o que no hice el punteado del 74HC164D, ya que pensé que al ir la señal del IR directa al conector (cable negro) no haría falta.
[/QUOTE]

El puenteado es solo para que se vea bien el display, los botones no van, porque se los mete al pic para que este saque los códigos del mando por el cable de infrarojos.

Vinix lo tiene configurado para cristal así que te debe de funcionar, fíjate en los leds. He mirado el datasheet de 16f84 y el cristal va entre la patilla 15 y 16 y también de la 15 un condensador de entre 15 a 33 pF y a la patilla 16 lo mismo los dos a masa.

Suerte.
jubamo está desconectado
Respuesta rápida a este mensaje
Responder Citando Subir
Antiguo 02/08/2007, 04:01   #24
vishero 
ZFU-4788-02
 
Fecha de ingreso: 27/dic/2002
Mensajes: 1.146
vishero es realmente agradablevishero es realmente agradablevishero es realmente agradablevishero es realmente agradable
Hola jubamo,

Así es como lo tengo, con dos de 22pf a masa, uno en cada pata del cristal.

Los led funcionan, pero ambos se quedan encendidos.

El de MODO estaría bien, pero el IR ¿no debería encenderse cuando recibe señal del mando?...

Luego la pata 10 al frontal, y la pata 6 al CON3... (Aqui dudo si está bien)

El resto lo verifiqué y está correcto...

sl2

Última edición por vishero; 02/08/2007 a las 04:09.
vishero está desconectado
Respuesta rápida a este mensaje
Responder Citando Subir
Antiguo 02/08/2007, 05:55   #25
barrigaverde 
Usuario PREMIUM+
 
Avatar de barrigaverde
 
Fecha de ingreso: 26/mar/2006
Mensajes: 3.552
barrigaverde es un nombre conocido por todosbarrigaverde es un nombre conocido por todosbarrigaverde es un nombre conocido por todosbarrigaverde es un nombre conocido por todosbarrigaverde es un nombre conocido por todosbarrigaverde es un nombre conocido por todos
sasludos vishero solo comentarte que ayer visualice la version 2.5 en dicho foro con imagen del circuito de version 2.4 parece que han cambiado algo en el programa del pic saludos
barrigaverde está desconectado
Respuesta rápida a este mensaje
Responder Citando Subir
Antiguo 02/08/2007, 09:14   #26
jubamo 
Usuario PREMIUM+
 
Avatar de jubamo
 
Fecha de ingreso: 15/ago/2006
Mensajes: 420
jubamo es como un diamante en brutojubamo es como un diamante en brutojubamo es como un diamante en brutojubamo es como un diamante en bruto
Ein significa entrada Aus salida (o algo así). La patilla 6 es RB0/INT (entrada de interrupción es la que viene del panel) y conforme dice Vinix en el *.asm en su versión 2.4

; Portpins für den IR Empfänger und Fernbedienung Ausgang COMAG Labeln:
; =====================================================================
#DEFINE IR PORTB,0 ; Infrarot FB Eingangssignal von der Frontplatine **************(patilla-6)
#DEFINE FBC PORTB,4 ; FB Ausgang zum ALI vom Emulator *************(patilla-10)

; Portpins für den IR Indikator LED Labeln:
; =========================================
#DEFINE LEDI PORTB,5 ; LED IR Indikator (Blinkt bei Empfang von der Fernbedienung) *****(patilla-11)

; Portpins für den Wahlschalter Firmware und Anzeige LED Labeln:
; ==============================================================
#DEFINE LED PORTB,6 ; LED AUS = COMAG Firmware / LED AN = Truman Firmware **********(patilla-12)
#DEFINE TB PORTB,7 ; Schalter Eingang Comag oder Truman Firmware *************(patilla-13)


Fijate que un led luce cauando esta activado el truman y el otro cuando hay actividad de infrarojos.

saludos.

Última edición por jubamo; 02/08/2007 a las 09:16.
jubamo está desconectado
Respuesta rápida a este mensaje
Responder Citando Subir
Antiguo 02/08/2007, 15:58   #27
vishero 
ZFU-4788-02
 
Fecha de ingreso: 27/dic/2002
Mensajes: 1.146
vishero es realmente agradablevishero es realmente agradablevishero es realmente agradablevishero es realmente agradable
Pufff, me está cansando el puñetero...

Después de leer un buen rato el pdf alemán con traductor al lado, efectivamente es como pone jubamo, la 10 al CON3 y la 6 al frontal.

La pata 13 (MODO) está directa con la R de 10K a VCC, por lo que el Led de la 12 está siempre encendido.

El led de la 13 (indicador IR) está siempre encendido y parpadea cuando le doy con el mando.

Pero según que firm le ponga, hace cosas "raras", uno (el Truman.EMU.1.3.60.Simpsons Editionboot,otoloader.bin) se inicia siempre en stnadby, con 00:00, pero no se puede iniciar con el mando, aunque se ve en el led del mod que recibe señal. Sí se inicia con el botón de Power, a partir de ahí los símbolos raros del display y se apaga, y entra en un bucle de encendidos y apagados.

Si le meto el Truman de Serbia (Truman.EMU.1.3.60.Serbia.bin), sin el MOD se inicia y ahí se queda con los símbolos raros y el cartel de no hay señal en un canal de Astra. Si le pongo el mod, se inicia con los símbolos, pero también comienza con los bucles de apagados y encendidos, en el poco tiempo que da, he podido entrar en el Menu con el mando, pero se apagó.

Si le meto el último Truman "oficial" (Truman_EMU_1.3.63_AMSTAR.bin), se flashea perfectamente, pero directamente no inicia (sin el mod), se queda con un cartel de "Program no found" y de ahí no pasa.

EL tema de los reinicios constantes con el mod ni idea que será. ¿Estará el pic jodido?. He usado los hex v2.4, 2.5 y 2.5a, se deja grabar y verificar sin problema.

Seguiré probando cosas...

Con un AVR el mod será más rápido?, lo digo por que en lo poco que me deja usarlo pareciera que es algo lenta la reacción.

sl2
vishero está desconectado
Respuesta rápida a este mensaje
Responder Citando Subir
Antiguo 02/08/2007, 16:53   #28
vishero 
ZFU-4788-02
 
Fecha de ingreso: 27/dic/2002
Mensajes: 1.146
vishero es realmente agradablevishero es realmente agradablevishero es realmente agradablevishero es realmente agradable
El bucle de reinicios lo solucioné, si no es por Zacky podría haber estado años...

En el ICProg, no configuraba en el Oscilador como "XT", lo tenía en "RC"...

Ahora lo único que puedo hacer es encenderlo y apagarlo con... la tecla del nº9 del mando de la TV!!!!!!!!!!!!!!!

Que H. de P.!!...


sl2

Última edición por vishero; 02/08/2007 a las 16:55.
vishero está desconectado
Respuesta rápida a este mensaje
Responder Citando Subir
Antiguo 02/08/2007, 17:37   #29
jubamo 
Usuario PREMIUM+
 
Avatar de jubamo
 
Fecha de ingreso: 15/ago/2006
Mensajes: 420
jubamo es como un diamante en brutojubamo es como un diamante en brutojubamo es como un diamante en brutojubamo es como un diamante en bruto
[QUOTE=vishero;2963569]El bucle de reinicios lo solucioné, si no es por [URL="http://foros.zackyfiles.com/showpost.php?p=2963503&postcount=2"]Zacky[/URL] podría haber estado años...

En el ICProg, no configuraba en el Oscilador como "XT", lo tenía en "RC"...

Ahora lo único que puedo hacer es encenderlo y apagarlo con... la tecla del nº9 del mando de la TV!!!!!!!!!!!!!!!

Que H. de P.!!...


sl2[/QUOTE]

He probado a cargarlo en el Icprog y a mi me lo abre con la opción XT.
Tanto la V2.4 como la V2.5 y en el .asm de la V2.4 esta configurado como XT, no entiendo como a ti al cargarlo al Icprog se te queda en RC.

De la velocidad, ten en cuenta que debe de transmitir el nuevo código después de leer el que has pulsado.

Lo de que solo te funcione con el mando 9 de la TV, esto es nuevo , pero te indica que el pic esta trabajando. El mando original debe de valer, pues SantiPREACK lo ha hecho trabajar; ahora se me ocurren dos cosas:

1.) Cargar el firmware con la opción "allcode+bootloader".
2.) Fijate en que el cristal es exactamente de 4.000 y no 4.325 o similar.


Saludos.
PD. Con estos aparatos tenemos entretenimiento asegurado.
jubamo está desconectado
Respuesta rápida a este mensaje
Responder Citando Subir
Antiguo 02/08/2007, 18:19   #30
SantiPHREACK 
Usuario PREMIUM+
 
Fecha de ingreso: 13/abr/2006
Mensajes: 223
SantiPHREACK está en el buen camino
Webas vishero

Te cuento como lo hice yop

A falta de Resonador cerámico, no me complique mucho y utilice un cristal normal de 4MHz exactos y a pelo, es decir sin condensadores ni na.

El esquema que yo utilice es este

[URL=http://img388.imageshack.us/my.php?image=sl65modmk2.jpg][/URL]

que como ves es un pelin mas simple y no utiliza los botones del frontal, y el hex no me acuerdo muy bien si fue la versión 2.1 o la 2.3 con su configuración por defecto del Oscilador como "XT" y va como la seda.

y respecto a puentear el "74HC164D" del frontal, como muy bien dices, simplemente es para que se lea correctamente el display , no influye para nada con los botones, a ver si saco tiempo y lo pruebo
SantiPHREACK está desconectado
Respuesta rápida a este mensaje
Responder Citando Subir
Antiguo 02/08/2007, 19:08   #31
barrigaverde 
Usuario PREMIUM+
 
Avatar de barrigaverde
 
Fecha de ingreso: 26/mar/2006
Mensajes: 3.552
barrigaverde es un nombre conocido por todosbarrigaverde es un nombre conocido por todosbarrigaverde es un nombre conocido por todosbarrigaverde es un nombre conocido por todosbarrigaverde es un nombre conocido por todosbarrigaverde es un nombre conocido por todos
saludos compañeros necesito consejo como realizo el crc osea el como ya lo tengo pero de que zona solo el maiconde o otalodader y maiconde juntos o todo el fichero???
barrigaverde está desconectado
Respuesta rápida a este mensaje
Responder Citando Subir
Antiguo 02/08/2007, 19:38   #32
jubamo 
Usuario PREMIUM+
 
Avatar de jubamo
 
Fecha de ingreso: 15/ago/2006
Mensajes: 420
jubamo es como un diamante en brutojubamo es como un diamante en brutojubamo es como un diamante en brutojubamo es como un diamante en bruto
Cada parte lleva su CRC y por la parte de abajo corta por donde salen los ceros, fijate en la imagen que puso Santi.

Saludos.
jubamo está desconectado
Respuesta rápida a este mensaje
Responder Citando Subir
Antiguo 02/08/2007, 19:54   #33
barrigaverde 
Usuario PREMIUM+
 
Avatar de barrigaverde
 
Fecha de ingreso: 26/mar/2006
Mensajes: 3.552
barrigaverde es un nombre conocido por todosbarrigaverde es un nombre conocido por todosbarrigaverde es un nombre conocido por todosbarrigaverde es un nombre conocido por todosbarrigaverde es un nombre conocido por todosbarrigaverde es un nombre conocido por todos
saludos jubamo afirmativo me he fijado en la imagen en la que hacer referencia la crc del otaloader y pienso que es el unico que hay que realizar el resto de apartado llevan ncrc y eso no hay que realizarselo o estoy equivocado por eso lo prengunto no lo tengo muy claro

posdata he visto en el 5 un sl65 ali E 1 parece que es el de ultima ornada estoy intentando descoprimirlo pero no va me da error con las tres terminaciones normalmete utilizadas lzma,zip gzip saludos

Última edición por barrigaverde; 02/08/2007 a las 19:57.
barrigaverde está desconectado
Respuesta rápida a este mensaje
Responder Citando Subir
Antiguo 02/08/2007, 20:34   #34
jubamo 
Usuario PREMIUM+
 
Avatar de jubamo
 
Fecha de ingreso: 15/ago/2006
Mensajes: 420
jubamo es como un diamante en brutojubamo es como un diamante en brutojubamo es como un diamante en brutojubamo es como un diamante en bruto
Solo tienes que cambiar el CRC al que hayas modificado (maincode)? aquello solo es un ejemplo, pero si pones NCRC en el lucar del crc trabaja igualmente sin esa comprobación.

De lo segundo ni idea.
jubamo está desconectado
Respuesta rápida a este mensaje
Responder Citando Subir
Antiguo 02/08/2007, 20:36   #35
vishero 
ZFU-4788-02
 
Fecha de ingreso: 27/dic/2002
Mensajes: 1.146
vishero es realmente agradablevishero es realmente agradablevishero es realmente agradablevishero es realmente agradable
Jubamo & Santi

Bueno, funcionando...

No pregunten como, por que no tengo ni p*** idea..., mezclé tantas variables que ya ni sé lo que tiene dentro...

Volví al firm del Truman Serbia, con "un" hex metido con ICProg y XT, inicia con los dos leds encendidos, le doy al mando y responde, pero cada tecla que aprieto se "clava", le doy a CH+ y se pone a pasar canales a lo loco..., Menú y lo mismo, pasa por todas las opciones sin interrupciones.

Lo apago desde atrás y lo desenchufo...

Pienso un momento si lanzarlo por la ventana del 7º, o meterlo en el microhondas...

Le doy otra oportunidad, enciendo sin tocar absolutamente nada, se activa solo el led verde (MODO Truman), le doy al mando, titila el led rojo (IR) y ... funciona!!!!...

Repito la operación tres veces y sigue funcionando.

Algunas teclas están cambiadas pero puede ser por la versión del hex que tiene, le meteré la 2.5a a ver si se soluciona.

El circuito que hice desde el inicio es igual al que puso Santi, pero sin la conexión al 1742KE, no tienen switch por que era de pruebas, se lo pondré al definitivo y las resistencias a los leds de 2,5mm son de 330ohm. El cristal es de 4.00000000MHz y los dos condensadores de 22pf. El pic un 16F84-04.

Todos los firms los metí como "allcode+bootloader" con el upgrade del Truman.

Confirmo que da salida de audio digital, tanto la óptica como la coaxial, lo tengo conectado a un amplificador audio/vídeo 5x1, y funciona perfecto en ambas, se puede conectar a cualquier equipo de audio que tenga entradas digitales.

El firm en si es para otro tema, tiene algunos pro y algunas contras, habrá que personalizarlo.

Paso a la otra etapa, el display...

Pero ahora me voy a tomar una caña de litro....

sl2 y gracias por las ayudas y/o sugerencias...

Última edición por vishero; 02/08/2007 a las 20:41.
vishero está desconectado
Respuesta rápida a este mensaje
Responder Citando Subir
Antiguo 02/08/2007, 20:43   #36
barrigaverde 
Usuario PREMIUM+
 
Avatar de barrigaverde
 
Fecha de ingreso: 26/mar/2006
Mensajes: 3.552
barrigaverde es un nombre conocido por todosbarrigaverde es un nombre conocido por todosbarrigaverde es un nombre conocido por todosbarrigaverde es un nombre conocido por todosbarrigaverde es un nombre conocido por todosbarrigaverde es un nombre conocido por todos
pues me alegro un monton asi mas de uno nos vamos a pasar por esas latitudes aunque me falta como te decia una cosilla el 4000 mhz pero mañana creo me lo tienen estaba encargado pero como no lo puedo recoger solo los sabados y no trabajan en estos meses haber si me puede dar un piro un rato del curro suerte
barrigaverde está desconectado
Respuesta rápida a este mensaje
Responder Citando Subir
Antiguo 22/08/2007, 17:37   #37
SantiPHREACK 
Usuario PREMIUM+
 
Fecha de ingreso: 13/abr/2006
Mensajes: 223
SantiPHREACK está en el buen camino
Para los que todavía no se han animado a hacerle el "MOD" de los Truman o no se han enterado, solo deciros que acaba de salir recién calentito de el horno la ultima versión que hace Auto Comprobado.
SantiPHREACK está desconectado
Respuesta rápida a este mensaje
Responder Citando Subir
Antiguo 22/08/2007, 20:05   #38
barrigaverde 
Usuario PREMIUM+
 
Avatar de barrigaverde
 
Fecha de ingreso: 26/mar/2006
Mensajes: 3.552
barrigaverde es un nombre conocido por todosbarrigaverde es un nombre conocido por todosbarrigaverde es un nombre conocido por todosbarrigaverde es un nombre conocido por todosbarrigaverde es un nombre conocido por todosbarrigaverde es un nombre conocido por todos
pues grs santi ya tengo el cristal solo me falta animarme saludos
barrigaverde está desconectado
Respuesta rápida a este mensaje
Responder Citando Subir
Antiguo 22/08/2007, 20:57   #39
Adobe
Usuario Activo
 
Fecha de ingreso: 22/jul/2003
Mensajes: 138
Adobe está en el buen camino
Yo he tenido que desmontar el resonator este de una placa pero por ahora realizare la parte del mando lo del PCM me da miedo :-(
saludos y gracias
Adobe está desconectado
Respuesta rápida a este mensaje
Responder Citando Subir
Antiguo 23/08/2007, 19:37   #40
jubamo 
Usuario PREMIUM+
 
Avatar de jubamo
 
Fecha de ingreso: 15/ago/2006
Mensajes: 420
jubamo es como un diamante en brutojubamo es como un diamante en brutojubamo es como un diamante en brutojubamo es como un diamante en bruto
Tambien he realizado el mod de Vinix.
Ahora hay que aprender este firmware.

Saludos.
jubamo está desconectado
Respuesta rápida a este mensaje
Responder Citando Subir
Publicidad: Conoce las ofertas de ANUNCIATE
Respuesta


Usuarios viendo actualmente este tema: 1 (0 usuarios registrados y 1 visitantes)
 
Herramientas

Permisos para publicar mensajes
No puedes crear nuevos temas
No puedes responder mensajes
No puedes subir archivos adjuntos
No puedes editar tus mensajes

Los BB code están Activado
Los Emoticones están Activado
El código [IMG] está Activado
El Código HTML está Desactivado

Ir al foro

Temas similares
Tema Autor Foro Resp. Último mensaje
FIRMS DECOS ILLUSION petete39 CRISTOR ATLAS y ILLUSION 1 07/10/2005 18:08
firms no oficiales para decos tdt??? ensaimada-ib TDT - Debate general 0 01/01/2005 22:50


!! ADVERTENCIAS !!: Las informaciones aquí publicadas NO CONTIENEN KEYS para la decodificación de ningún sistema: NO SON OPERATIVOS en sistemas SAT que precisen de su correspondiente suscripción.

ESTA TOTALMENTE PROHIBIDO EL USO DE ESTAS INFORMACIONES PARA LA MODIFICACIÓN O  DEFRAUDACIÓN DE SISTEMAS DE ACCESO CONDICIONAL.

ESTOS FOROS SON MODERADOS Y NO SE PERMITE LA PUBLICACIÓN DE INFORMACIONES ILEGALES POR PARTE DE LOS USUARIOS. EN CASO DE DETECTARSE ESTE TIPO DE INFORMACIONES, LOS USUARIOS SERÁN EXCLUIDOS DE ESTAS PÁGINAS.

USO DE COOKIES: Utilizamos COOKIES y de terceros para mejorar nuestros servicios y navegación por la web. Si continua navegando, consideramos que acepta su uso.  


La franja horaria es GMT +2. Ahora son las 12:42.


-------------------------------------------------------------------- --------------------------------------------------------------------

Powered por vBulletin™ Version 3.8.10
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.
Traducido por vBsoporte - vBulletin en español
Hispaservicios - J.G.C - 29112549T - Rio Cinca, 2, 30 (50180) SPAIN.
Todos los derechos reservados. Prohibida cualquier reproducion total o parcial.


Foros Patrocinados por anunciantes.