6502.org Forum  Projects  Code  Documents  Tools  Forum
It is currently Fri Nov 01, 2024 12:19 am

All times are UTC




Post new topic Reply to topic  [ 321 posts ]  Go to page Previous  1 ... 18, 19, 20, 21, 22
Author Message
PostPosted: Mon Feb 12, 2018 3:49 pm 
Offline
User avatar

Joined: Fri Dec 11, 2009 3:50 pm
Posts: 3367
Location: Ontario, Canada
Dan Moos wrote:
Damn, that's clever
Yes, Mike's way is much better. Doh! -- it's what I should have suggested. Somebody musta slipped me some de-caff ! :evil: :wink:

Dan, can I ask once again for better detail, please? I was hoping to learn all the pertinent memory addresses, meaning the actual hex values for every label. For instance I'd like to know the address at which each routine resides (including the ISR). I'm half wondering if there might be a collision of some kind, or something falling victim to a rogue write. That's why I'm so insistent about addresses.

Also, what you posted above reveals the UART and VIA addresses but not the addresses of the zero-page variables. For them to be known we need to see an ORG statement. Was the ORG omitted entirely, or merely trimmed off when you prepared the post? Instead of posting snippets, I'd much prefer that you post EVERYTHING. And if some tidying is in order (or even a rewrite, as you say) then that'll certainly benefit you as well as those trying to assist.

One more hint: if you post a list file generated by the assembler, that'll explicitly show all the addresses -- and the hex values of the code and data too. Sometimes that extra info is helpful.

-- Jeff

_________________
In 1988 my 65C02 got six new registers and 44 new full-speed instructions!
https://laughtonelectronics.com/Arcana/ ... mmary.html


Top
 Profile  
Reply with quote  
PostPosted: Mon Feb 12, 2018 8:00 pm 
Offline

Joined: Thu Feb 10, 2011 3:14 am
Posts: 79
Dr Jefyll wrote:
I'd much prefer that you post EVERYTHING.

One more hint: if you post a list file generated by the assembler, that'll explicitly show all the addresses -- and the hex values of the code and data too.


And you don't have to put the entire listing in your post, you can attach it to the post as a file.

If you want to highlight specific sections, you can put those in code blocks in the post, but still include the entire source code and/or listing as attachments. That way other people can see everything in context/


Top
 Profile  
Reply with quote  
PostPosted: Tue Oct 16, 2018 2:31 am 
Offline

Joined: Sat Mar 11, 2017 1:56 am
Posts: 276
Location: Lynden, WA
Hey guys! Been awhile, but I'm still at it. I suppose I should catch you guys up on where I'm at.

I haven't been able to throw as much time at this as I'd like. Family, work, other hobbies, yada yada...

The base computer seems to be running great on the breadboard. I have drawn a PCB out on Kicad, but since my dimension and layer requirements take me out of the "cheap offer" of the board manufacturers I've looked at, I wanna be sure before I commit. Prices are still reasonable, but I ain't made of money!

I have chosen probably the most difficult path conceivable for video, but am glad I did for the fun/education of it. I am about 80% into rolling a VGA controller with just 7400 logic. Think piles of counters, magnitude comparitors, and latches. Only non 7400 chips are my character ROM, and the dual ported RAM I'm using for video memory. Whole thing is running on a hodge-podge of breadboards, and soldered vero boards. Amazingly, I have 25.175 MHz clock signals running between this mess of boards with cheap prototype wires. I can currently fill the screen with any given character, but haven't completed the circuit to pull characters out of the video RAM yet. No big hang-ups, just still working it out. My characters are 8x12, so I have to read each line from memory 12 times as I draw each scanline, and I'm trying to do this with mostly the counters I already have running. I'll add more if need be though.

About my characters. I decided that the easiest way (meaning not easiest, but most rewarding) would be to create my own font from scratch. And I also decided that since I need my characters stored in a specific format that works with my character generation logic, the best thing would be to write a windows program in C++ for editing characters, and saving them in a binary format that works for me. Basically, the first 7 address bits of the character ROM are character specific, and the remaining are used to select the proper scanline. No idea if this is the standard method, but I figure its the most obvious to me anyway. Works well so far! My editor program is nothing amazing, but so far it does what it should.

So that's where I'm at. The VGA controller is easily more complex than the computer itself, and I'm considering making a PCB for the currently working parts of it so I can finish it with less hassle.

This leads me to a question. I have mentioned using an expansion slot type of construction so I can make the video controller swappable. Folks here have told me that such a thing is more headaches than I want. I find it hard to believe I can't do this because what I am doing now is way dodgy-er, and worksks well.

What I want to put on my expansion slot bus: The address bus, the data bus, the IRQ line, clock, power, and and the various control lines that should be there. Basically everything. I am going to do a 4 layer board with ground and power planes. I suppose I could put guard ground traces on every other slot trace, but that seems like overkill.

Thoughts?


Top
 Profile  
Reply with quote  
PostPosted: Tue Oct 16, 2018 2:45 am 
Offline

Joined: Sat Mar 11, 2017 1:56 am
Posts: 276
Location: Lynden, WA
I should add that I don't have lofty speed goals. Currently running at 2 MHz. Not planning much, if at all faster. I've also considered some sort of bus tranciever for signals going off the main board. Basically, the off-board extensions would only be visible when actually being used. I don't love that idea though, because if it's unstable when the expansion sections are enabled, whats the point?


Top
 Profile  
Reply with quote  
PostPosted: Mon May 25, 2020 9:17 pm 
Offline

Joined: Sat Mar 11, 2017 1:56 am
Posts: 276
Location: Lynden, WA
<Moved here from general discussion>

Been awhile since I posted an update, and a lot has been accomplished.

I'd say "stage one" of the project is complete. I'm off the breadboard finally. I had a 4 layer PCB from JLC made. Dedicated power and ground planes. Photo below. Computer runs well. Currently still at 1 MHz. One Rockwell 6551 UART is the only on board I/O.

I put two female and 1 male pin header expansion buss's on the board, so that I can develop the hardware for the next stage (on board video and keyboard support). The male pin header is for easy connection of my logic analyzer, and has been a great feature.

I finished writing the monitor program. If one were a glutton for punishment, one can now enter a program into memory with hex. I don't recommend it. The few short routines I did for testing purposes gave me a new respect for those of you that programmed Altairs and the like.

I have 90% of a home rolled VGA compatible text video card working. I have the sync signals, and character generator working. All 7400 logic (almost 30 chips, including the character ROM!) Couldn't find a ready made way to get character bitmaps in the format I needed, so I wrote a windows editor to create my own. Happy with the characters I was able to create. The bridge between the computer and the video card is still under development. Using a dual ported RAM chip. I've had it kinda working, but was getting unreliable results. Part of the decision to make a PCB for the computer itself was to try and eliminate a source of instability. Haven't messed with my video circuit yet since doing that.

Keyboard will be a PS/2 interface going into an Atmel microcontroller, and from there to a 6522.

Anyway, thanks for all your help! I'll keep posting progress!


Attachments:
WOPRjr.JPG
WOPRjr.JPG [ 1.54 MiB | Viewed 1035 times ]
Top
 Profile  
Reply with quote  
PostPosted: Tue Jul 07, 2020 4:41 am 
Offline

Joined: Sat Mar 11, 2017 1:56 am
Posts: 276
Location: Lynden, WA
Big day for the WOPRjr

Computer is now completely self reliant, ie. , no more need for the using my laptop as a terminal.

My home rolled 7400 logic based VGA compatible text system is finally working and bug free, with blinking cursor and full scrolling. PS/2 compatible keyboard interface (using an AVR micro and a 6522)

Next move is SD card support, likely using the the aforementioned AVR.

Also, color graphics are on the to-do list.

On that topic. Considering using a 65816 as a graphics co-processor. This would give me the vastly larger memory space for graphics, without a redesign of the main computer. In retrospect, my more educated current self would have used that processor in the main build.

It may not be particularly efficient to use that second processor as a middle man for graphics (kinda similar to how the TI 99-4a uses its graphics chip as a middle man for most of its memory), but I think I can make it work. The memory space, and having a second processor could be really nice. A sprite engine comes to mind for instance.

Any thoughts?

Also considering doing sound the hard way (like I did video). Think home rolled analog synthesizer...


Top
 Profile  
Reply with quote  
Display posts from previous:  Sort by  
Post new topic Reply to topic  [ 321 posts ]  Go to page Previous  1 ... 18, 19, 20, 21, 22

All times are UTC


Who is online

Users browsing this forum: No registered users and 9 guests


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot post attachments in this forum

Search for:
Jump to:  
cron