Author Topic: Homebrew CPU with discrete 74HC update: Video,Sound,Joystick,Keyboard <-- BIOS  (Read 11449 times)

0 Members and 1 Guest are viewing this topic.

Online BrianHG

  • Super Contributor
  • ***
  • Posts: 7732
  • Country: ca
Another option for you display driver, you can cheat with this IC:
https://www.digikey.com/product-detail/en/idt-integrated-device-technology-inc/7130LA35PDG/800-2448-5-ND/2011121

Wire one side as ram, the other side is wired to read only and goes to your row and column counters, feeding the address of a eprom, which has your character set, with 8 bit color output.  use upper addresses on the eprom for bit-mapped graphics mode which you can write and latch at the beginning of each line, stored in the same DP ram chip above.  You'll get something like an Atari 800 graphics processor with an optional different graphics mode every few lines of video, though not palette unless you replace the eprom with a second DP ram chip.  This will give you programmable fonts, with palette color per character and some easy snazzy effects making video games easy to program.

Pros:  0 wait states!  No system slow downs!
Cons: 10$ a chip at digikey.  Note that 2k and 4k exist in stock elsewhere, be careful to choose the DIP48 package for your breadboards.
 

Offline ale500

  • Frequent Contributor
  • **
  • Posts: 415
Very impressive ! I find video output almost essential, serial is meh :)

Do you have a schematic ? I wonder if it can be realized in HDL...
 

Offline PauloConstantinoTopic starter

  • Regular Contributor
  • *
  • !
  • Posts: 154
  • Country: gb
Very impressive ! I find video output almost essential, serial is meh :)

Do you have a schematic ? I wonder if it can be realized in HDL...


You completely get it! Some people want to just use a serial terminal and I find that a sort of unfinished business with this kind of project. I wanted to do everything from scratch, using the least bring up tools available, and I think I have cheated badly by having used a rom programmer and a text editor to write the microcode.

Yes I have attached the schematics as a high res image, but eagle is also available. This schematic isn't 100% complete as it doesn't show the clock signals or even their polarities, but I can help with that. It also doesn't show the schematics for the video part as I don't have schematics for that!  It can definitely be realized in a HDL. It's a simple microcode state machine.

 

Online BrianHG

  • Super Contributor
  • ***
  • Posts: 7732
  • Country: ca
...and I think I have cheated badly by having used a rom programmer and a text editor to write the microcode.

If you feel that bad, get rid of the text editor and rom.  Get graph paper and cheap optical reflective IR reflective sensors, 1 per dip-switch on your bread board for programming.  Draw out your program with a black marker, with one of the IR sensors shifted down 50% to catch the graph lines as you load clock.  Just slide the paper under the string of 12-15 sensors to load your program or OS.

No more rom...  No more text editor...  (I see it's probably too late anyways...)
Though, I do not have a good method of saving programs to paper unless you add a parallel port & printer, on spool paper, and you create a simple printer save routine, + at least a way of expanding everything to a simple OS with peripherals.

 

Offline PauloConstantinoTopic starter

  • Regular Contributor
  • *
  • !
  • Posts: 154
  • Country: gb
...and I think I have cheated badly by having used a rom programmer and a text editor to write the microcode.

If you feel that bad, get rid of the text editor and rom.  Get graph paper and cheap optical reflective IR reflective sensors, 1 per dip-switch on your bread board for programming.  Draw out your program with a black marker, with one of the IR sensors shifted down 50% to catch the graph lines as you load clock.  Just slide the paper under the string of 12-15 sensors to load your program or OS.

No more rom...  No more text editor...  (I see it's probably too late anyways...)
Though, I do not have a good method of saving programs to paper unless you add a parallel port & printer, on spool paper, and you create a simple printer save routine, + at least a way of expanding everything to a simple OS with peripherals.


LOL! I have to say that is one of the most creative ways I've heard of to load a program! And that would be really exciting too. It's like a modern punched tape. I could even build a small machine to roll the paper for me while sending signals to WE and an address counter.

I have to say the problem isn't a ROM, it's the ROM programmer which requires a computer. But then again, making an IC requires a computer so......... :-//
« Last Edit: July 06, 2017, 07:01:47 am by PauloConstantino »
 

Offline dorin

  • Contributor
  • Posts: 39
  • Country: ro
My question is not how you made it, but how you debugged the damn thing  :wtf:
Or is it really possible to connect everything right from the first time, and have no poor breadboard contact?
 

Offline Fungus

  • Super Contributor
  • ***
  • Posts: 16646
  • Country: 00
I think I have cheated badly by having used a rom programmer and a text editor to write the microcode.

I was very disappointed when I heard that. I think I might have to unsubscribe now.

You can always go back and do it again all by connecting wires to the chip and flipping switches.



 

Online BrianHG

  • Super Contributor
  • ***
  • Posts: 7732
  • Country: ca
@PauloConstantino, if you software has an opcode followed by data, or, opcode and control data in a fixed word length, I have an assembler language you can use which allows you to create your own commands and opcodes up to 36 bits wide.  The layout is similar to microchip assembly with the addition of inserting tables of data.  It gives you full listing output and a .bin file.

Windows based...
 

Offline ale500

  • Frequent Contributor
  • **
  • Posts: 415
I don't know how much microcode you have but you could just use one ROM and several latches, and load the latches in sequence, saving on ROMs.
 

Offline PauloConstantinoTopic starter

  • Regular Contributor
  • *
  • !
  • Posts: 154
  • Country: gb
My question is not how you made it, but how you debugged the damn thing  :wtf:
Or is it really possible to connect everything right from the first time, and have no poor breadboard contact?


I had various bad breadboard contacts, but I was lucky to debug them away. I had loose jumper problems.

Finally though I had a few very strange problems which led me to "destroying" the CPU.

It was executing most of the 255 instructions but not all, for no reason. I think maybe a bad IC was causing problems, or bad breadboard pins. Too much work to debug so I destroyed the CPU. I will rebuild it on a pcb.
 

Offline PauloConstantinoTopic starter

  • Regular Contributor
  • *
  • !
  • Posts: 154
  • Country: gb
I think I have cheated badly by having used a rom programmer and a text editor to write the microcode.

I was very disappointed when I heard that. I think I might have to unsubscribe now.

You can always go back and do it again all by connecting wires to the chip and flipping switches.


Yea that was bad by me. I dont know what I was thinking. You are good at catching my slips :)
 

Offline PauloConstantinoTopic starter

  • Regular Contributor
  • *
  • !
  • Posts: 154
  • Country: gb
@PauloConstantino, if you software has an opcode followed by data, or, opcode and control data in a fixed word length, I have an assembler language you can use which allows you to create your own commands and opcodes up to 36 bits wide.  The layout is similar to microchip assembly with the addition of inserting tables of data.  It gives you full listing output and a .bin file.

Windows based...

I would have accepted a few days ago but unfortunately this project has ended :(

 

Online JPortici

  • Super Contributor
  • ***
  • Posts: 3461
  • Country: it
Yep, this is time for PERFBOARD! >:D
 

Offline PauloConstantinoTopic starter

  • Regular Contributor
  • *
  • !
  • Posts: 154
  • Country: gb
Yep, this is time for PERFBOARD! >:D


I'll design a PCB I guess. Or maybe wirewrap. No perfboard........... I much prefer wirewrap!
 

Offline Fungus

  • Super Contributor
  • ***
  • Posts: 16646
  • Country: 00
I'll design a PCB I guess. Or maybe wirewrap. No perfboard........... I much prefer wirewrap!

Hotsnot dead bug wirewrap!

 

Offline PauloConstantinoTopic starter

  • Regular Contributor
  • *
  • !
  • Posts: 154
  • Country: gb
I'll design a PCB I guess. Or maybe wirewrap. No perfboard........... I much prefer wirewrap!

Hotsnot dead bug wirewrap!

Yes wirewrap 4eva.  :scared:
 

Offline GK

  • Super Contributor
  • ***
  • Posts: 2607
  • Country: au
Quote from: timb
GK, can you send me those schematics? I didn't have a chance to grab them before you took them down. (I've been collecting stuff on video generation for awhile, for a future project.)


Timb, the schematic is now here: https://www.eevblog.com/forum/projects/otp-eprom-programmer/msg1257749/#msg1257749

Did you get my PM days ago? I can send PMs but nothing appears in my "sent" items folder. Dunno if the forum software is buggy or what.
Bzzzzt. No longer care, over this forum shit.........ZZzzzzzzzzzzzzzzz
 

Offline timb

  • Super Contributor
  • ***
  • Posts: 2536
  • Country: us
  • Pretentiously Posting Polysyllabic Prose
    • timb.us
Quote from: timb
GK, can you send me those schematics? I didn't have a chance to grab them before you took them down. (I've been collecting stuff on video generation for awhile, for a future project.)


Timb, the schematic is now here: https://www.eevblog.com/forum/projects/otp-eprom-programmer/msg1257749/#msg1257749

Did you get my PM days ago? I can send PMs but nothing appears in my "sent" items folder. Dunno if the forum software is buggy or what.

I've tried to reply a couple of times, but can't. It says you've either got me blocked or have chosen not to receive PMs from other users. You might want to poke around your control panel and see if there's a setting you have turned off.
Any sufficiently advanced technology is indistinguishable from magic; e.g., Cheez Whiz, Hot Dogs and RF.
 


Share me

Digg  Facebook  SlashDot  Delicious  Technorati  Twitter  Google  Yahoo
Smf