ZZTOP SOFT Posted January 25, 2014 Share Posted January 25, 2014 (edited) After some days I've Been working on this. For years I want to make this Dot Matrix Display. I'm going do the first tests on basic. I know... it is to slow, but, is just for testing. The heart of this operation is a decoder (74LS259) chip , which allow me select between 8 outputs. This outputs manage a bunch of serial shift registers chips (74LS595): Serial Input, Output Enable, Latch, Clock and Reset. The state of each are controlled by the Atari itself (no other processor needed). So, the idea is showing text, scroll text, and frames (some animations). What for? I'm going to use it in a pinball machine that I building. Tech stuff This kind of matrix displays working more than less at the same way: They drive on column at the time meanwhile they send the data to the row. On my design I have 8 serial shift register in chain to do that, RST clear all outputs, OE Enable or disable all outputs, Latch keep the data, CLOCK advance one step, SERIAL IN must be 1 at the first step, but immediatly must be 0, or every colums are 1 in 48 clocks (that is very bad). The idea is drive just one column at the time, from right to left. The ROW data come from the joystick port, so we have to set them as OUTPUT POKE 54018,43 (must set just at the start ) and the data we want to send POKE 54016,DATA The decoder 74LS259 are managed this way: when a adress between 54600~54608 are POKEd the cartridge line CCTL are activated, and in conjunction with the clock signal O2 (NAND) makes the chip are Enabled. So, if we did POKE 54600,1 A0=0 A1=0 A2=0 then output Q0 (pin 4) is selected and the data we send, in this case 1, are carry to this pin. This chip have latch, so the state remains stored until we change it. For last, every column must be drived by one ULN 2003 chip. And every ROW with a 220 ohms resistor. I pass the ROWs data thru an 74LS245 buffer chip, to protect the PIA. Schematic: http://www.retrogames.cl/imagenes/varios/dmd_sch.jpg Edited January 25, 2014 by ZZTOP SOFT 9 Quote Link to comment Share on other sites More sharing options...
ZZTOP SOFT Posted January 26, 2014 Author Share Posted January 26, 2014 Sorry is in spanish. Anyway, just watch the text on the DMD. 5 Quote Link to comment Share on other sites More sharing options...
Bunsen Posted January 26, 2014 Share Posted January 26, 2014 Cool! Quote Link to comment Share on other sites More sharing options...
+Stephen Posted January 26, 2014 Share Posted January 26, 2014 That is really awesome. Looking forward to seeing the completed project. Quote Link to comment Share on other sites More sharing options...
ZZTOP SOFT Posted January 26, 2014 Author Share Posted January 26, 2014 (edited) I did my tests and as supposed BASIC is too slow to scan 48 columns. But they can scan 8 or 16 without trouble (one or two 8X8 displays). So, I did my first test on assembler to display the word Retrogames: *=$4000 start lda #43 sta 54018 ; set joy port as output ldx #255 stx 54016 ; joy port all outputs OFF setups lda #0 sta 54604 ; start reset lda #0 sta 54602 ; latch lda #1 sta 54604 ; reset end lda #0 sta 54601 ; OE Output Enable = 0 lda #1 sta 54600 ; serial data = 1 lda #48 sta 6001 ; clock = 48 ldx #48 stx 6005 ; index = 48 ini1 lda #255 sta 54016 ; joy port, all outputs ON lda #1 sta 54603 ; CK ON lda #0 sta 54603 ; CK OFF lda #1 sta 54602 ; Latch ON lda #0 sta 54602 ; Latch OFF lda #0 sta 54600 ; SERIAL DATA = 0 rbytes lda retrogames,x sta 54016 ldx 6005 dex stx 6005 jsr delay xtimes ldx 6001 dex stx 6001 lda 6001 cmp #0 bne ini1 jmp setups delay lda #5 sta 6002 paddle lda 624 sta 6000 loop ldx 6000 dex stx 6000 lda 6000 cmp #0 bne loop loop2 ldx 6002 dex stx 6002 lda 6002 cmp #0 bne paddle rts retrogames .byte 255,1,237,237,19 ; R .byte 255,1,109,109,125 ; E .byte 255,253,1,253 ; T .byte 255,1,237,237,19 ; R .byte 255,131,125,131 ; O .byte 255,131,109,109,139 ; G .byte 255,3,221,221,3 ; A .byte 255,1,251,247,251,1 ; M .byte 255,1,109,109,125 ; E .byte 255,179,109,109,155 ; S *=$02E0 .word start Edited January 26, 2014 by ZZTOP SOFT 2 Quote Link to comment Share on other sites More sharing options...
ZZTOP SOFT Posted January 30, 2014 Author Share Posted January 30, 2014 (edited) Scrolling text: *=$4000 inicio lda #43 sta 54018 ldx #255 stx 54016 setups lda #0 sta 54604 ; reset lda #0 sta 54602 ; latch lda #1 sta 54604 ; reset end lda #0 sta 54601 ; OE 0 lda #1 sta 54600 ; data 1 ldx #59 ; clock stx 6005 inicio1 lda #255 sta 54016 lda #1 sta 54603 lda #0 sta 54603 lda #1 sta 54602 lda #0 sta 54602 lda #0 sta 54600 leetabla ldx 6005 lda atariage,x sta 54016 ldx 6005 dex stx 6005 cpx #0 bne t1 ldx #60 ; tabla stx 6005 t1 jsr tiempo veces ldx 6004 dex stx 6004 lda 6004 cmp #0 bne t2 lda #59 sta 6004 lda #1 sta 54600 t2 jmp inicio1 tiempo ; rutina de tiempo lda #5 sta 6002 paddle lda 624 sta 6000 loop ldx 6000 dex stx 6000 lda 6000 cmp #0 bne loop loop2 ldx 6002 dex stx 6002 lda 6002 cmp #0 bne paddle ; fin rutina de tiempo rts atariage .byte 255,255,255,255,255 ; sp .byte 255,255,192,6,245 ; logo Atariage .byte 235,215,175,255,255 ; logo Atariage .byte 255,255,255,255,255 ; sp .byte 255,3,221,221,3 ; A .byte 255,253,1,253 ; T .byte 255,3,221,221,3 ; A .byte 255,1,237,237,19 ; R .byte 255,255,1,255 ; I .byte 255,3,221,221,3 ; A .byte 255,131,109,109,139 ; G .byte 255,1,109,109,125 ; E .byte 255,255,255 ; sp *=$02E0 .word inicio Edited January 30, 2014 by ZZTOP SOFT 4 Quote Link to comment Share on other sites More sharing options...
Kyle22 Posted January 31, 2014 Share Posted January 31, 2014 Very nice, I like it Quote Link to comment Share on other sites More sharing options...
fibrewire Posted January 31, 2014 Share Posted January 31, 2014 Excellent! Quote Link to comment Share on other sites More sharing options...
morelenmir Posted February 2, 2014 Share Posted February 2, 2014 VERY nice indeed! Its really nice to see hardware projects like this on the go - it gives me hope I might manage one myself someday!!! Quote Link to comment Share on other sites More sharing options...
candle Posted February 3, 2014 Share Posted February 3, 2014 zztop, will you put this inside your williams/bally pinball machine? Quote Link to comment Share on other sites More sharing options...
ZZTOP SOFT Posted February 3, 2014 Author Share Posted February 3, 2014 (edited) zztop, will you put this inside your williams/bally pinball machine? Maybe you're thinking in the centigrade 37 pinball, which originaly is a Gottlieb machine. This DMD goes for a Star Wars pinball, custom design. But the development of this one probably take me a little more time than the other. At least I have the cabinet, Star Wars Data East, with the artwork intact, this save me a lot of time and money in paint work. By the way, today I'm working in the cabinet spray of my centigrade 37. Edited February 3, 2014 by ZZTOP SOFT Quote Link to comment Share on other sites More sharing options...
Keatah Posted February 3, 2014 Share Posted February 3, 2014 I love shit like this. Back when I learned x86 I did something similar! And I still have the source to it! Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.