Not done at Hackaday, but afterwards, just for fun. Just let some dots trickle down the display, just like in The Matrix. *Stored in Slot 10* Datauses 20..27 is how far each column has gone 30..3F the display area used 00: MOV R0,#3 ; set clock A/20Hz 5/1kHz 3/10khz 01: MOV [#F1],R0 02: MOV R0,#3 ; page 03: MOV [#F0],R0 ; display at 3+4 04: MOV R0,#9 ; set sync at C/4HZ 9/15Hz 05: MOV [#F2],R0 06: "NOP" ; room for more startup settings : 0F: "NOP" MainLoop: ; Wait a random interval 10: MOV R0,[#FF] ; random times to wait for sync 11: AND R0,#3 ; 0..3 12: ADD R0,#2 ; 2..5 13: MOV R1,R0 Wait: 14: MOV R0,[#F4] ; check sync 15: BIT R0,#0 16: SKIP NZ,SyncOK 17: JR Wait SyncOK: 18: DSZ R1 ; done wait N times? 19: JR Wait WaitDone: 1A: "NOP" ; (patch room) : 1F: "NOP" ; Prepare column address/mask 20: MOV R0,[#FF] ; Random column 21: AND R0,#7 ; 0..7 22: MOV R2,R0 ; ( copy ) 23: MOV R4,#3 ; page 3 24: BIT R0,#2 ; unless column >3 (2nd bit set) 25 SKIP Z,#1 26: INC R4 ; R4 is now page address 27: MOV R3,#1 ; bit set 28: AND R0,#3 ; 0..3 BitRoll: 29: CP R0,#0 ; done? 2A: SKIP Z,BitReady ; +3 2B: ADD R3,R3 ; double it == RotateBitLeft 2C: DEC R0 2D: JR BitRoll ; -5 BitReady: 2E: "NOP" ; (patch room) 2F: "NOP" ; (patch room) ; R2 = col No, R3 = col mask, R4 = Base ; #20+R2 is variable for current position for that column ; Update one column, "move LED one down" 30: MOV R1,R3 ; Mask 31: MOV R0,#F 32: XOR R1,R0 ; R1=inverted mask 33: MOV R6,R2 ; compute address of row position variable 34: MOV R7,#2 ; into R6/7 35: MOV R0,[R7,R6] ; How far down is this LED is 36: MOV R5,R0 ; in R5 37: MOV R0,[R4,R5] ; Get current tail 38: AND R0,R1 ; turn that bit off 39: MOV [R4,R5],R0 ; update display 3A: INC R5 ; next row 3B: MOV R0,R5 3C: MOV [R7,R6],R0 ; update tail position 3D: MOV R1,#3 3E: ADD R5,R1 ; 3 rows further down(wrap around) 3F: MOV R0,[R4,R5] ; 40: OR R0,R3 ; Turn that bit on 41: MOV [R4,R5],R0 ; update display 42: JR MainLoop ; #10-#43=#CD ; === WIP ; Leave 4 dots turned on ; ==== Next version ; Dim the ones above. Requires a fast loop to do PWM