.org 0x00 ; in the beginning ...start: mov dptr,#btab ; bannerstartloop0: mov r5,#9 ; 10 refresh per screenloop1: mov r4,#0 ; 7442 adresse = 0 mov r6,#9 ; 10 columns per screenloop2: mov a,r4 ; mov p3,a ; output column to 74LS145 mov a,r6 ; access by columns movc a,@a+dptr ; get led pattern cjne a,#0x80,weitr ; finished ? ajmp startweitr: xrl a,#255 ; invert for BC558 mov p1,a ; output to leds dec r6 ; decrement one column mov R1, #0x20 ; delay acall delay inc r4 ; next column for 74LS145 mov a,r4 ; cjne a,#10,loop2 ; 10 columns done ? dec r5 ; decrement one refresh mov a,r5 cjne a,#0,loop1 ; all refersh finished ? inc dptr ; next scroll ajmp loop0 ; next screendelay: dloopo: mov r2, #0x10 ; outer loopdloopi: djnz r2, dloopi ; inner loop djnz r1, dloopo ret ; returnbtab: .db 0x00,0x00,0x00,0x00,0x00,0x00 ;// .db 0x7f,0x08,0x08,0x08,0x7f,0x00 ;// H .db 0x7f,0x49,0x49,0x49,0x41,0x00 ;// E .db 0x7f,0x40,0x40,0x40,0x40,0x00 ;// L .db 0x7f,0x40,0x40,0x40,0x40,0x00 ;// L .db 0x3e,0x41,0x41,0x41,0x3e,0x00 ;// O .db 0x00,0x00,0x00,0x00,0x00,0x00 ;// .db 0x3f,0x40,0x38,0x40,0x3f,0x00 ;// W .db 0x3e,0x41,0x41,0x41,0x3e,0x00 ;// O .db 0x7f,0x11,0x11,0x31,0x4E,0x00 ;// R .db 0x7f,0x40,0x40,0x40,0x40,0x00 ;// L .db 0x7f,0x41,0x41,0x41,0x3e,0x00 ;// D .db 0x00,0x00,0x00,0x5f,0x00,0x00 ;// ! .db 0x00,0x00,0x00,0x00,0x00,0x00 ;// .db 0x00,0x00,0x00,0x00,0x00,0x00,0x80 ;// finished ; ^^^^ bit 7