Interfacing a CompactFlash on homebrew 8-bit computer! [Zeal 8-bit Computer]

แชร์
ฝัง
  • เผยแพร่เมื่อ 27 พ.ค. 2023
  • GET YOUR ZEAL 8-BIT COMPUTER HERE: www.tindie.com/products/zeal8... OR www.aliexpress.com/item/10050...
    Hello world!
    Welcome back for a new video, today we will see how to interface a CompactFlash card with Zeal 8-bit Computer: from theory to practice.
    To do so, we will talk about how we can interface it, how to make a PCB for it and how to write a software driver written in Z80 assembly.
    Thanks to that, Zeal 8-bit Computer can have megabytes or even gigabytes of memory to store data.
    Feel free to leave a comment if you have any question!
    Github project that contains the assembly source code, the schematics, and the PCB design: github.com/Zeal8bit/Zeal-Comp...
    Source for the images shown in the video:
    searle.x10host.com/cpm/index.html
    commons.wikimedia.org/wiki/Fi...
    commons.wikimedia.org/wiki/Fi...
    superuser.com/questions/78661...
    en.wikipedia.org/wiki/File:Pr...
  • วิทยาศาสตร์และเทคโนโลยี

ความคิดเห็น • 50

  • @jkobain
    @jkobain ปีที่แล้ว +7

    I was curious if it's gonna work the first try. Thank you for confirming that you're human and can make mistakes too. Cheers!

    • @Zeal8bit
      @Zeal8bit  ปีที่แล้ว +2

      Haha, thanks for your comment, confirm I am human! 😄
      Hardware is like software, hard to get things working from the first time, but I find it more exiting when everything works!

    • @jkobain
      @jkobain ปีที่แล้ว +2

      @@Zeal8bit I never ordered a custom PCB from a factory myself: not that it is that expensive, I'm rather lame at designing them in CAD software yet. But I'm not bad at soldering tho, so when I discovered that the UV-cured resin I'm using is quite a heat-resistant thing, I made me a flat piece of it, soldered some thin but rigid guiding «feet» to some SMD ICs, secured those wiring lines with the same resin, connected some more jumpers on top of it all, wired everything, confirmed it working, and covered it all in resin to protect it from any mechanical / electrostatic influence or short-circuits. Leaving the components accessible in case I need to replace them.
      It's not a thing I'd recommend anyone, but I encourage others doing their own prototypes and learning from them, and this is why I'm happy that you're doing your project.
      Together we learn, together we get better.

    • @Zeal8bit
      @Zeal8bit  ปีที่แล้ว +2

      @@jkobain We learn by making mistakes indeed. I find that Kicad is rather simple to begin with (compared to EasyEDA), you can try making small PCBs first, even if you don't get it perfectly from the first time, at least your will get better and bette over time.
      I am curious about your custom PCB build, sounds very cool, have you written an article or publish anything to show it?

    • @jkobain
      @jkobain ปีที่แล้ว +1

      @@Zeal8bit no, unfortunately I don't publish pictures at all. But one of them is a simple SPI flash memory array (128MiB×4, resulting in 64 megabytes of storage) module with combined address space and one LittleFS2 on them all, connected to an RPi Pico with MicroPython. I'll try laminating one with stripes of copper foil later, I think, and probably publish something one day as well.

    • @Zeal8bit
      @Zeal8bit  ปีที่แล้ว +2

      @@jkobain If you end up publishing anything, come back with a link so that we can enjoy reading it! 😄

  • @ralphmunoz4582
    @ralphmunoz4582 หลายเดือนก่อน +1

    Nice!

  • @retrojon_
    @retrojon_ ปีที่แล้ว +5

    I'm not sure why, but I never realized how simple CompactFlash really is. I'm gonna have to redesign my computer to use it since that would make things much easier! lol

    • @Zeal8bit
      @Zeal8bit  ปีที่แล้ว +2

      It is! It is not easy to get started with the specification only, and I couldn't find a lot of info about how to interface CompactFlash to an 8-bit computer in details, this is why I decided to make this video. I hope it helped you.
      Which computer are you designing? Is it an 8-bit computer?

    • @retrojon_
      @retrojon_ ปีที่แล้ว +5

      @@Zeal8bit I'm working on a design with a custom CPU. It's a hybrid between 8-bit and 16-bit using an 8-bit instruction set and an 8-bit internal bus to perform 16-bit operations. I was planning on using an EEPROM to store the instruction set but I might replace that with the CompactFlash to simplify upgrading the instructions. Who knows, I might be able to switch to a full 16-bit design because of this. It was a hybrid because I wanted a 16-bit machine but ran into issues finding parts. I'll have to make a video and a GitHub repo once I get something working.

    • @Zeal8bit
      @Zeal8bit  ปีที่แล้ว +2

      @@retrojon_ Very cool! When you say "store the instruction set" do you mean store the actual code for your CPU or do you mean you were using a microcode-style CPU?
      Are you implementing it with discrete logic, virtually (Logisim-like), CPLD, FPGA?
      I would be happy to know more about your project if you have a blog, link, git, etc...

    • @retrojon_
      @retrojon_ ปีที่แล้ว +2

      @@Zeal8bit It's going to use micro code. The opcode will simply be a pointer to the microcode to run. All of this will be done with discrete logic; no cheating in this project lol. I also want to do what you did and be able to use the Compact Flash as normal storage for the computer. I don't have anything public yet but I'll let you know when that changes. Perhaps I'll try a blog.

    • @Zeal8bit
      @Zeal8bit  ปีที่แล้ว +2

      @@retrojon_ For sure using a CompactFlash as the main storage is possible and would be a very good choice, keep in mind that you will still need at least a ROM/NOR Flash to store the code that will perform the commands to the CompactFlash and copy the content to RAM. It doesn't need to be huge, 8KB is enough

  • @cometobrazil9916
    @cometobrazil9916 ปีที่แล้ว +6

    As always, your video is perfect, it’s always a pleasure to watch your videos, you’re amazing 💡

    • @Zeal8bit
      @Zeal8bit  ปีที่แล้ว +3

      Thank you very much for your comment, it is motivating!

  • @lawrencemanning
    @lawrencemanning ปีที่แล้ว +5

    Zeal! Hope you are well. I still have an email in my drafts folder for you. :(
    Very nice that you have added IDE/CF. Be weary that not all cards support 8 bit mode. In my experience support for it was dropped around the time 128MB came a long. Certainly any new card will not have support for if (the command to switch mode returns an error)
    Anyway awesome stuff. Glad you’re still getting a kick out of this.

    • @Zeal8bit
      @Zeal8bit  ปีที่แล้ว +3

      Lawrence! What a pleasure to hear from you, a lot of things happened on the project as you can see!
      I remember you told me about that when I was still at the beginning of the project, I was trying to find CF cards that have support for 8-bit mode but the sellers usually don't really know much about it. I bought 3 cards: 16MB, 32MB and 1GB, all of them are brand new. Surprisingly, all of them support 8-bit mode, even the 1GB one! The brand written on its sticker is CHUJI (储技), maybe they are still using "old" micro-controllers inside the CF card? In any case, that's a good thing for us

    • @lawrencemanning
      @lawrencemanning ปีที่แล้ว +2

      @@Zeal8bit that’s jolly interesting as it’s the reverse of my experience. It’s encouraging for folks using CFs with 8 bit micros for sure. I still think it’s a much nicer setup then SD cards and all the extra work that goes with them. That’s so cool that you could have a GB of storage on your micro. :)
      I need to get back to my retro projects!

    • @Zeal8bit
      @Zeal8bit  ปีที่แล้ว +1

      @@lawrencemanning SD cards do require more work for such retro project, but more handy when used with an MCU that has SPI. I find CompactFlash pretty cool, they give a retro aspect that I like.
      Keep me informed of your retro projects!

  • @firasnizam
    @firasnizam 11 หลายเดือนก่อน +1

    30 years ago, I was having ZX spectrum, and I was doing stuff like this, I like your videos it remind me with the great home computer era

    • @Zeal8bit
      @Zeal8bit  10 หลายเดือนก่อน +1

      Happy to hear that you like the videos!
      My goal is also to show that these 8-bit computers can still be useful 😄

  • @sharoyveduchi
    @sharoyveduchi ปีที่แล้ว +6

    So does that mean that Zeal 8-bit will get FAT32 support soon? Because being able to have up to 64GB of storage makes this a very serious computer.

    • @Zeal8bit
      @Zeal8bit  ปีที่แล้ว +6

      Thanks for your comment!
      FAT32 is possible in theory but in practice FAT16 is a better choice because it is smaller and simpler to implement. It is planned to add support for it in Zeal 8-bit OS but it takes time, help from the community is welcome😄
      In my opinion, 4GB or even 2GB is already more than enough for most usage of Zeal 8-bit Computer.

  • @Anangelspath
    @Anangelspath ปีที่แล้ว +2

    Unbelievably useful subscribed thumbs up

    • @Zeal8bit
      @Zeal8bit  ปีที่แล้ว +1

      Thank you very much!

  • @maurofoti526
    @maurofoti526 ปีที่แล้ว +5

    What's up with the spurious 7 between bytes 7D and 7E? (10:45). Is that a program bug?

    • @Zeal8bit
      @Zeal8bit  ปีที่แล้ว +3

      Nice catch! This is a graphic bug that is related to the FPGA board, I haven't deeply investigated this issue because I was mainly working on the motherboard recently, but my guess is that the connector between the motherboard and the video board is not very sturdy at the moment so the signal sometimes may be interpreted as active by the FPGA when they shouldn't be. As they also go through a level-shifter, some delay is also introduced, which can also affect the signals.
      I will resume my work on the FPGA soon, I will work on its stability and implementing the missing features, hopefully this will be fixed! 😄

  • @TheOldGraff
    @TheOldGraff ปีที่แล้ว +3

    Awesome work! Will there be fat16 support in the future?

    • @Zeal8bit
      @Zeal8bit  ปีที่แล้ว +2

      Thanks for your comment!
      It is planned indeed, not sure when as it requires some time, help from the community is welcome 😄

  • @octacore4F
    @octacore4F 10 หลายเดือนก่อน +1

    Im commenting for the algorhitm :)

    • @Zeal8bit
      @Zeal8bit  10 หลายเดือนก่อน

      Hah, thanks for your support!

  • @FlyBy2507
    @FlyBy2507 11 หลายเดือนก่อน

    Bonjour, votre série est une très bonne source d'inspirations !
    Petite question. Avez-vous déjà pensé à transférer le MMU dans le FPGA ? Bien sûr, le fonctionnement de la carte est tributaire du FPGA mais imaginons que la gestion des IOs et du CTC (i2c, clavier, PIO, MMU, et pourquoi pas SPI...) soient transférée dans le FPGA, la carte s'en trouverait simplifiée et on pourrait imaginer de combiner les 2 cartes.
    Qu'en pensez-vous ?

    • @Zeal8bit
      @Zeal8bit  11 หลายเดือนก่อน

      Merci pour votre commentaire !
      Tout cela est possible, mais transférer la MMU dans le FPGA impliquerait donc une dépendance de la carte mère sur la carte fille, j'aimerais que la carte mère soit indépendante pour pouvoir être utilisée sans la carte vidéo (FPGA).
      Par rapport aux autres différents composants, il est même possible de tous les implémenter dans le FPGA, y compris le CPU, on se retrouverait donc avec un PCB extrêmement simple qui ne contiendrait que le FGPA, la RAM, un port SD, un port VGA, cela réduirait drastiquement les coûts. Mais serions-nous toujours en train de faire un ordinateur rétro?
      Je pense que l'on perdrait la saveur du projet, qui est aussi de pouvoir apprendre et comprendre comment un ordinateur fonctionne lorsque différents composants partage un bus de données et comment ils interagissent ensemble. De plus, avec un projet où tous les composants sont indépendants, il est possible de brancher un oscilloscope ou un analyseur logique pour voir tous les signaux logiques en action. Avec un FPGA (obligatoire), cela ajouterait une boîte noire qui cacherait le cœur même de l'adressage: la MMU.
      En résumé, c'est tout à fait possible mais cela serait un autre projet, pas moins intéressant, mais différents au niveaux des buts à atteindre

  • @laserquant
    @laserquant ปีที่แล้ว +1

    What flux can you recommend?

    • @Zeal8bit
      @Zeal8bit  ปีที่แล้ว +1

      I find that the one I use is very good, I use it for soldering all my SMD components, even BGA256 FGPA!
      It's the Amtech NC559

    • @laserquant
      @laserquant ปีที่แล้ว

      Thanks! Let's try it.

  • @SinedWOLF
    @SinedWOLF ปีที่แล้ว +2

    Автор, какие перспективы у проекта?

    • @Zeal8bit
      @Zeal8bit  ปีที่แล้ว +2

      Спасибо за ваш комментарий. В конечном итоге, цель проекта заключается в создании функционального 8-битного компьютера с графикой. Я бы хотел иметь возможность создавать игры с хорошей графикой в стиле Gameboy. На данный момент материнская плата позволяет нам писать и выполнять программное обеспечение без помощи другого компьютера. Однако, мне ещё предстоит поработать над видеокартой, которая основана на FPGA.

    • @SinedWOLF
      @SinedWOLF ปีที่แล้ว +1

      @@Zeal8bit Я предполагал это, если сообщество заинтересуется проектом, кто начнёт писать новые программы, а кто-то переносить уже существующие игры и т. п. И про видеокарту я так и думал что у этого проекта огромный потенциал!

    • @SinedWOLF
      @SinedWOLF ปีที่แล้ว +1

      @@Zeal8bit А ещё в играх весомую роль играет музыка) Трекерные композиции тех лет до сих пор отлично слушаются.

    • @Zeal8bit
      @Zeal8bit  ปีที่แล้ว +1

      @@SinedWOLF Большое спасибо за вашу поддержку! Я также считаю, что FPGA - это настоящая революция в ретро-проектах, подобных моему. Я постараюсь завершить его в ближайшее время, чтобы мы уже могли начать портирование или написание игр!
      Я забыл упомянуть звук. FPGA также будет обрабатывать звук, потому что я не смог найти ни одну звуковую микросхему, которая все еще производится. Я реализовал простой генератор волн, который может генерировать треугольные, прямоугольные и пилообразные волны заданной частоты.
      (Извините, если я допускаю ошибки, я пользуюсь переводчиком)

  • @gensys244
    @gensys244 11 หลายเดือนก่อน +1

    wish we could buy video card 😢

    • @Zeal8bit
      @Zeal8bit  11 หลายเดือนก่อน +1

      It is planned! 😄
      I need to finish the implementation of the Verilog code first, which I will resume after finishing the motherboard documentation.

  • @elden4267
    @elden4267 ปีที่แล้ว +2

    Ahh un français, tu peux faire une chaîne secondaire en français ?

    • @Zeal8bit
      @Zeal8bit  ปีที่แล้ว +3

      Bonjour à toi et merci pour ton message!
      Pour le moment, ce n'est pas prévu, les vidéos me prennent pas mal de temps à préparer, par contre l'ajout de sous-titres en français est tout à fait possible, j'essaie de le faire quand je le peux.
      Cela pourra évidemment cahgner à l'avenir, en fonction de l'évolution du projet

    • @jkobain
      @jkobain ปีที่แล้ว +1

      So I guess my ears weren't wrong and you speak French.

    • @Zeal8bit
      @Zeal8bit  ปีที่แล้ว +1

      @@jkobain You guessed right, I speak French! I guess my accent betrayed me 😄

    • @alexstone691
      @alexstone691 ปีที่แล้ว

      ​@@Zeal8bit how many languages do you speak, i saw you respond in russian 😮

    • @Zeal8bit
      @Zeal8bit  ปีที่แล้ว +1

      @@alexstone691 Four languages: French, English, Chinese Mandarin and Spanish. I can't speak Russian, I use Google translate for that