beolink 1000 kode sniffer

For en del år siden lavede jeg en b&o link kode sniffer så jeg kunne bruge min beolink 1000 fjernbetjening til at styre alt muligt. Bla en billig prosonic video 😉

Her er asm51 koden til 8031 processorer, eller atmels processorer idag.

Denne kode kan bruges til at styre en video, eller idag noget andet, idet video jo er YT.

[code lang="asm"]
;*****************************************************************************
; BEOLINK 1000 DEBUGGER.
; PROGRAMMET ER UDVIKLET TIL L’SNING AF PULSERNE P UDGANGEN AF SCART STIKKET,
; FOR STYRING AF VIDEO.
; PBEGYNDT : 3-1-91
; BDC 8031 TEST 2
; 3-2-91 INDFRT AUTO MESURE ROUTINE TIL MLING AF BAUD RATE
;*****************************************************************************

    DSEG AT 0000H

 MEMSIZE   :  DS   1  ;       HVOR MANGE BYTE SKAL BEODATA DELES I ( 6 BYTES)
 MEMCOUNT  :  DS   1  ;       BYTE T’LLER
 WA40USEC  :  DS   1  ;
 WA1_6MSEC :  DS   1  ;
 WA4MSEC   :  DS   1  ;
 WA100MSEC :  DS   1  ;

;  ADDR 000BH RESEVERET AF TIMER0 INTERRUPT

    DSEG AT 0010H

 BEOCODE   :  DS   6  ;       PLADS TIL SIDSTL’STE DATA FRA BEOLINK
 BITCOUNT  :  DS   1  ;       BIT T’LLER
 SIDSTE    :  DS   1  ;       SIDSTE DATA I BEOCODE SAMMENLIGNES MED TABEL
 BDT       :  DS   1  ;       BYTEDATE UNDER PAKNING
 COUNT     :  DS   1  ;       T’LLER TABEL POSITION
 WAIT      :  DS   1  ;       VENTE DATA (MAX256uS)
 PTLO0     :  DS   1  ;       MLT TIMER DATA TIL TL0
 PTHI0     :  DS   1  ;        "     "     "   "  TH0

    BSEG AT 000H

 F_FLET  :     DBIT     1      ;      SAT NR INTRUPT ROUTINE ER UDFRT 48 gg
 BYTEPACK:     DBIT     1      ;      SAT SL’NGE DER NSKES BITPAKNING

 RDBEO        BIT      P1.0   ;      L’SNING AF BEODATA P SCARTSTIK
 EXT0         BIT      P1.1   ;
 EXT1         BIT      P1.2   ;
 EXT2         BIT      P1.3   ;
 EXT3         BIT      P1.4   ;
 EXT4         BIT      P1.5   ;
 EXT5         BIT      P1.6   ;
 TV_VCRNOT    BIT      P1.7   ;      TV/VIDEO CNTLR BIT

                CSEG AT 0000H

		JMP	INIT

		ORG	000BH		        ;    TIMER 0 INTERRUPT
		JMP     GOON                    ;    HOP TIL UNDER ROUTINE

INIT:           ACALL   MESURE                  ;    MLER BAUD RATE
START:          MOV	R0,#00	          	;
WAONPU:		DJNZ	R0,WAONPU	        ;    VAIT TIL PSU OK

                MOV     WAIT,#0FFH              ;  VENT 256uS
                MOV     MEMSIZE,#06 		;  6 BYTE MEMBREDE
                MOV     BDT,#00H                ;  S’TTER ALLE BIT P 0
                MOV     BITCOUNT,#07            ;  UNDLAD 1. STARTBIT
                MOV     R0,#010H                ;  FRSTE ADDR. I BEOCODE
                MOV	MEMCOUNT,#06            ;

                MOV     TMOD,#00000001B         ;  S’TTER TIMER 0 I MODE 0
                MOV     TL0,PTLO0               ;
                MOV     TH0,PTHI0               ;   3,145mS
                clr     ext5                    ;

RUN:            JNB     RDBEO,RUN      		;   VENT P STARTBIT
                DJNZ    WAIT,$                  ;
                SETB    ET0                     ;
                SETB    EA                      ;
                SETB    TR0                     ;   STARTER TIMER 0
                CLR     F_FLET                  ;
                CLR     BYTEPACK                ;

LOOP:           JBC     BYTEPACK,PACK           ;   1 = HOP PACK
                JBC     F_FLET,FLET             ;   1 = HOP FLET
                JMP     LOOP                    ;

      PACK:     DJNZ    WAIT,$                  ;
                ;SETB    P1.7                    ;
                NOP                              ;
                MOV     A,BDT                   ;   FLYTTER INDHOLD BDT TIL ACC.
                MOV     C,RDBEO                 ;
                RLC     A                       ;   FRER CARRY IND I ACC
                MOV     BDT,A                   ;   FLYTTER BYTE TILBAGE I BDT
                ;CLR     P1.7                    ;
                NOP                              ;
                DJNZ    BITCOUNT,LOOP           ;
                MOV     BITCOUNT,#08            ;
                MOV     @R0,BDT                 ;  FLYTTER INDHOLD FRA BDT
                                                ;  TIL DEN ADDR SOM R0 PEGER P
                INC     R0                      ;  FLYTTER PEGEPIND R0 EN OP
                DJNZ	MEMCOUNT,LOOP           ;  S L’NGE MEMCOUNT ER >0
                CLR     EA                      ;    
                CJNE    A,SIDSTE,SLUT           ;
                INC     R0                      ;
                INC     COUNT                   ;
                DJNZ    MEMCOUNT,LOOP11         ;
                SETB    EXT3                    ;
                JMP     START                   ;

SLUT:

                ACALL   WAIT100M                ;
                ACALL   WAIT100M                ;
                JMP     START                    ;

;*************************************************
;
;     S’TTER VIDEO CONTROL PORT TIL 12V
;     ELLER TV 0V.
;
;*************************************************

VCR:            CLR     TV_VCRNOT                 ;  LOW = VIDEO
                RET

TV:             SETB    TV_VCRNOT                 ;  HI = TV
                RET

;*************************************************
;
;     MLE ROUTINE. MLER MELLEM 2 F0RSTE BIT
;     OG S’TTER TIMER 0 OP.
;     INPUT = P1.0
;
;*************************************************

      MESURE:   MOV     TMOD,#00000001          ;  S’TTER TIMER0 I TIMER MODE1
                MOV     TL0,#00H                ;
                MOV     TH0,#00H                ;

                JNB     RDBEO,$                 ;
                SETB    TR0                     ;
                JB      RDBEO,$                 ;
                JNB     RDBEO,$                 ;
                CLR     TR0                     ;
                MOV     PTLO0,TL0               ;
                MOV     PTHI0,TH0               ;

                MOV     A,#0FFH                 ;
                SUBB    A,TL0                   ;
                MOV     PTLO0,A                 ;

                MOV     A,#0FFH                 ;
                SUBB    A,TH0                   ;
                MOV     PTHI0,A                 ;

                RET                             ;

;************************************************
;
;     TABELER TIL FLET ROUTINE.
;
;************************************************

      TABEL1:   INC     A                       ;
                MOVC    A,@A+PC                 ;
                RET                             ;

                DB      061H                    ;  DATA
                DB      0AAH                    ;  FOR
                DB      0A6H                    ;  TRYK
                DB      069H                    ;  P
                DB      065H                    ;  STOP
                DB      088H                    ;  TAST

      TABEL2:   INC     A                       ;
                MOVC    A,@A+PC                 ;
                RET                             ;

                DB      061H                    ;  DATA
                DB      0AAH                    ;  FOR
                DB      0A6H                    ;  TRYK
                DB      069H                    ;  P
                DB      066H                    ;  START
                DB      044H                    ;  TAST

      TABEL3:   INC     A                       ;
                MOVC    A,@A+PC                 ;
                RET                             ;

                DB      061H                    ;  DATA
                DB      0AAH                    ;  FOR
                DB      0A6H                    ;  TRYK
                DB      069H                    ;  P
                DB      066H                    ;  F.FORWARD >>
                DB      088H                    ;  TAST

      TABEL4:   INC     A                       ;
                MOVC    A,@A+PC                 ;
                RET                             ;

                DB      061H                    ;  DATA
                DB      0AAH                    ;  FOR
                DB      0A6H                    ;  TRYK
                DB      069H                    ;  P
                DB      069H                    ;  REW <<
                DB      088H                    ;  TAST

      TABEL5:   INC     A                       ;
                MOVC    A,@A+PC                 ;
                RET                             ;

                DB      061H                    ;  DATA
                DB      0AAH                    ;  FOR
                DB      0A6H                    ;  TRYK
                DB      066H                    ;  P
                DB      0A5H                    ;  TURN
                DB      088H                    ;  TAST

      TABEL6:   INC     A                       ;
                MOVC    A,@A+PC                 ;
                RET                             ;

                DB      061H                    ;  DATA
                DB      0AAH                    ;  FOR
                DB      0A6H                    ;  TRYK
                DB      069H                    ;  P
                DB      0AAH                    ;  GOTO
                DB      088H                    ;  TAST

      TABEL7:   INC     A                       ;
                MOVC    A,@A+PC                 ;
                RET                             ;

                DB      061H                    ;  DATA
                DB      0AAH                    ;  FOR
                DB      0A6H                    ;  TRYK
                DB      06AH                    ;  P
                DB      096H                    ;  OFF
                DB      088H                    ;  TAST

      TABEL8:   INC     A                       ;
                MOVC    A,@A+PC                 ;
                RET                             ;

                DB      061H                    ;  DATA
                DB      0AAH                    ;  FOR
                DB      0A6H                    ;  TRYK
                DB      059H                    ;  P
                DB      055H                    ;  A/V
                DB      044H                    ;  TAST

      TABEL9:   INC     A                       ;
                MOVC    A,@A+PC                 ;
                RET                             ;

                DB      061H                    ;  DATA
                DB      0AAH                    ;  FOR
                DB      0A6H                    ;  TRYK
                DB      06AH                    ;  P
                DB      099H                    ;  STORE
                DB      044H                    ;  TAST

      TABEL10:  INC     A                       ;
                MOVC    A,@A+PC                 ;
                RET                             ;

                DB      061H                    ;  DATA
                DB      0AAH                    ;  FOR
                DB      0A6H                    ;  TRYK
                DB      06AH                    ;  P
                DB      055H                    ;  <
                DB      044H                    ;  TAST

      TABEL11:  INC     A                       ;
                MOVC    A,@A+PC                 ;
                RET                             ;

                DB      061H                    ;  DATA
                DB      0AAH                    ;  FOR
                DB      0A6H                    ;  TRYK
                DB      06AH                    ;  P
                DB      055H                    ;  >
                DB      088H                    ;  TAST

;_______________________________________________________________________
;
;  WAIT 40 u SEC RUTINE
;
;  WA40USEC: REGISTERET BRUGES TIL 40 u SEC WAIT RUTINE
;_______________________________________________________________________
;
WAIT40U:	MOV	WA40USEC,#20H	;
WAIT40U1:	DJNZ	WA40USEC,WAIT40U1 ;
		RET			;

;_______________________________________________________________________
;
;  WAIT 1,6 M SEC RUTINE
;
;  WA1_6MSEC: REGISTERET BRUGES TIL 1,6 m SEC WAIT RUTINE
;_______________________________________________________________________
;
WAIT1_6M:	MOV	WA1_6MSEC,#0FFH	;
WAIT1_6M1:	PUSH	ACC		;
		POP	ACC		;
		NOP			;
		DJNZ	WA40USEC,WAIT40U1 ;
		RET			;

;_______________________________________________________________________
;
;  WAIT 4 m SEC RUTINE
;
;  WA4MSEC: REGISTERET BRUGES TIL 4m SEC WAIT RUTINE
;_______________________________________________________________________
;
;
WAIT4M:		MOV	WA4MSEC,#0FFH	;
		PUSH	ACC		;
		PUSH	B		;
WAIT4M1:	MUL	AB		;
		MUL	AB		;
		MUL	AB		;
		NOP			;
		NOP			;
		DJNZ	WA4MSEC,WAIT4M1 ;
		POP	B		;
		POP	ACC		;
		RET			;

;______________________________________________________________________
;
;  WAIT 100 m SEC RUTINE
;
;  WA100MSEC: REGISTERET BRUGES TIL 100m SEC WAIT RUTINE
;______________________________________________________________________
;
WAIT100M:	MOV	WA100MSEC,#05	;
		PUSH	ACC		;
		PUSH	B		;
WAIT100M1:	MUL	AB		;
		MUL	AB		;
		MUL	AB		;
		NOP			;
		call    wait4m
		NOP			;
		DJNZ	WA100MSEC,WAIT100M1 ;
		POP	B		;
		POP	ACC		;
	        RET			;

		END		                    	;
[/code]

Skriv et svar

Din e-mailadresse vil ikke blive publiceret. Krævede felter er markeret med *

%d bloggers like this: