Latest prototype of my 8-bit computer [Zeal 8-bit computer]

Поділитися
Вставка
  • Опубліковано 17 вер 2024

КОМЕНТАРІ • 120

  • @esra_erimez
    @esra_erimez Рік тому +7

    As a software engineer, I'm in awe of this type of project. Hardware has always alluded me

    • @Zeal8bit
      @Zeal8bit  Рік тому +3

      Same for me! I am also a software engineer but I have always been intrigued and interested by the hardware. This project really let me put in practice and develop even more my knowledge about hardware. The 8-bit machines and CPUs are great for that!

    • @totallybonkers76
      @totallybonkers76 Рік тому

      Same here! 🙂

  • @sanhua8337
    @sanhua8337 2 роки тому +19

    I follow your project for almost one year. I am surprised that you have gone so far and made these improvements! The latest prototype seems really exciting. Could I buy the kit ? ( Z80 motherboard and custom video board)

    • @Zeal8bit
      @Zeal8bit  2 роки тому +9

      Thank you very much for your support, it's very motivating!
      Yes, it was a lot work but it was completely worth it.
      I plan to sell few units (motherboard at first) in a near future, not sure which form factor: DIY kit or already assembled, I'll keep you informed 😄

    • @firstLast-sn3me
      @firstLast-sn3me Рік тому +2

      @@Zeal8bit do You have a patreon account?

    • @Zeal8bit
      @Zeal8bit  Рік тому +1

      Thanks for your support😄
      At the moment, I don't have a Patreon account

    • @PeterDoingStuff
      @PeterDoingStuff Рік тому

      @@Zeal8bit would be nice with an assambled version since i'm mostly interested in the using the computer for programming and not making it. is it possible to get an email when its available....form factor is not important to me, i guess i will build a wooden cabinet for it that protect it.

  • @Theineluctable_SOME_CANT
    @Theineluctable_SOME_CANT Рік тому +4

    Great work!
    I am 59.
    I was a bit too old to get the bug as only young pre-teens can, but I was into doing 8 bit hardware and software (firmware mainly) as a hobbyist.
    One very very advanced CPU was the MC6809E a multiprocessor environment compatible device.
    I get that you are a Z80 fan boy, but if you look into the E variant of the MC6089, it will shock you.
    Truly unique, Excellent device!

    • @Zeal8bit
      @Zeal8bit  Рік тому +1

      Hello, thanks for your comment!
      I discovered the 6809 recently, while talking with a friend who is also a hobbyist and made a homebrew computer based out of it and I must say that the 6809 is really a great CPU. I love its rich addressing modes. It's a shame it wasn't more used or more known. I guess it because it came out late and was more expensive than the Z80 or 6502.
      Is it discontinued? I have seen some brand new 68000 not a long again, but I don't think I have come across any 6809

    • @Theineluctable_SOME_CANT
      @Theineluctable_SOME_CANT Рік тому +2

      @@Zeal8bit AFAIK, Hitachi souped up the ALU and registers to make their 6309, still in production.
      I would be very surprised if the 6809E is not still in production.
      I have a funny feeling this CPU was "too good" for tge home market. It got used a lot in Japanese business equipment. I saw it in electronic typewriters I repaired at CANON Australia in 1985.
      The LEA, etc., make it GORGEOUS for compilers to generate code for it. The position independent code is made for implementing NICE software!
      I only coded mainly for the 6802 or Z80.
      A bit ofc6809, but you need a compiler to make it sing.

    • @Theineluctable_SOME_CANT
      @Theineluctable_SOME_CANT Рік тому +2

      @@Zeal8bit looks like they are mainly old new stock. Prices around $12...

    • @zetaconvex1987
      @zetaconvex1987 Рік тому +2

      You're never too old to pick up a hobby like this. I read somewhere that a lot of electronic fairs are populated by people in their 50's, so you don't need to be a young pup to explore your interest.

  • @circuithijacker
    @circuithijacker Рік тому +3

    Excellent!

  • @dhardingham
    @dhardingham 2 роки тому +3

    Awesome dude!

  • @Theineluctable_SOME_CANT
    @Theineluctable_SOME_CANT Рік тому +3

    Me again...
    Now I have sat down and WATCHED your video:
    Nice work, brother!
    I am sure you have been on an amazing journey in the design and fab of your glitch free system.
    Very nice!
    I can see my ravings might have shocked or offended you.
    I had a friend who went into television (broadcast) in 1985 or so, when I was fixing ETWs and primitive desktop computers (6802 with BASIC in ROM and tape....) by day and hand coding my 6802 system at home by night, building the furniture one stick at a time. The hardware was a true, delightful Frankenstein of a video arcade game, my custom keyboard and my custom video display. Quite the business! Lol.

    • @Zeal8bit
      @Zeal8bit  Рік тому +2

      Thank you for your comment!
      Haha, I don't feel offended at all, I am glad you enjoy the videos and give your opinion 😄
      I am having an amazng journey indeed, I just feel I need and want to spend more time on this project

  • @atamairon
    @atamairon Рік тому +1

    Hello. It's a very interesting project. Congratulations. Z80 is a processor that never will die! I'm a lover of 8-bit system. A lot of us we've growth near of these microcomputers. I wait for new advances in the project. Go it!

    • @Zeal8bit
      @Zeal8bit  Рік тому

      Thank you very much for your support!
      Yes, the Z80 is still awesome and unique, even after more than 40 years!

  • @mitsuruyamada
    @mitsuruyamada 2 роки тому +4

    Congratulations on the progress of your homebrew computer development! If the CRT interface were made with standard TTLs, the circuits would be troublesome, but it is realized with FPGA and is very integration. I am making my own computer with an old 8-bit CPU too. It is fun to learn the basics that are lost in the latest PCs.

    • @Zeal8bit
      @Zeal8bit  2 роки тому +4

      Thanks for your message!
      Agreed on that, it would be feasible to have a TTL video board, not too hard but too limited, mainly for graphics (for text it should be ok)
      As I wanted a platform where we could play and develop games, graphics are important.
      Are you using a Z80 also? 6809? 6502?
      You're right about this too, I also think PCs nowadays are a bad (horrible) beginning to start learning hardware. 8-bit CPUs and computers have the advantage to be deterministic, simple and can be mastered by a single person.

    • @mitsuruyamada
      @mitsuruyamada 2 роки тому +3

      @@Zeal8bit Thank you very much. I use 6802 and 6502. The Z80 I used 40 years ago.

  • @Jasonsadventures
    @Jasonsadventures Рік тому +3

    I've been following for a while. Because it seems like the best chance of someone with the skills being and to build my dream computer too. All I ever wanted in my life was a 8 bit home computer powerful enough to run at around the sprite and graphics performance of early 80s arcade games. Do you have this working on 15khz video?

    • @Zeal8bit
      @Zeal8bit  Рік тому +2

      Good news, that's also my goal! 😄
      Simple graphics yet enough to have sprites and tiles and make nice games that are like old arcades (or Gameboy)
      The video output is a VGA signal at 60Hz, 31.468KHz vertical refresh.

    • @Jasonsadventures
      @Jasonsadventures Рік тому +1

      @@Zeal8bit I guess VGA is ok. I grew up in the golden arcade age so I'm used to the look of the slower phosphor 15khz monitors and 224/240p games. But then again VGA allows more detail for games with detailed background rather than black background Galaga and Frogger type of thing

  • @ravingidiot
    @ravingidiot Рік тому +1

    This is fascinating, thank you for sharing your development process! I had considered using 3 4x4 register files in my MMU, but I most of the ones I saw were obsolete. In that design, I ended up going with the 74610 instead, but it's kind of awkward to use because it has a 12 bit data bus, so as far as I can tell, the 4 upper bits would have to be buffered. Given this I might consider looking at the 670. I believe my MMU design differs from yours in that a) I use 4KB pages and b) that I also intend to encode memory protection into the page table. The 670 looks like it has the advantage of having a surface mount implementation, so overall it might still have advantages over the 610. Thank you for the inspiration, and happy hacking!

    • @Zeal8bit
      @Zeal8bit  Рік тому +1

      Thanks for your message!
      In your case, the 670 may not be ideal. With 4KB pages, you will have 4 bits left to select your MMU pages (4-bit page selection + 12-bit page offset). That gives you 2^4 = 16 different pages. If you want the pages to be all different, you will need at least 16 / 4 = 4x 74670 chips! Even with 4 chips, that would give you a physical address space of 64KB (16bit address - 4bit page selector + 4bit given by 74670). If you want a physical address space of 20-bit, 1MB, you will need twice more 74670, so 8 chips. Moreover, that won't give you any protection feature.
      As such, in your case, using a CPLD may be the best option, in terms of cost, space and convenience (easier to debug in case of problem).

    • @ravingidiot
      @ravingidiot Рік тому

      @@Zeal8bit Thank you for your analysis. I have actually considered going the CPLD route, and yeah, you're right; for some bizarre I totally had a brain fart and was thinking the 670 had a 4 bit address space, which in hindsight is clearly not the case. For some reason, I was confusing this with the 74189 (which does have a 4-bit address space), so I would indeed need a great deal more glue logic than I was initially projecting.
      With that having been said, I have actually considered whether or not having a 64KB virtual physical address space is something that I might want to entertain. You'd obviously lose the ability to address beyond that range (which is kind of important given the size of modern RAMs), but it would allow you to shuffle memory around which might be kind of handy for mapping the BIOS Data Area for CP/M. As for my implementation of memory protection, the way I envisioned it was that this would be enforced through hardware by asserting NMI when a fault ocurred. The protection bits would be output along with the translated address and then discrete logic could be used to generate the memory protection signals. I could also use this to inhibit writes so that the transaction never actually occurs.

  • @horseradishpower9947
    @horseradishpower9947 2 роки тому +8

    This is incredible. You have managed to condense the project, and in the process used the freed up space to add more features.
    Moreover, this is going to take up a much smaller footprint overall. This adds to some greate possibilities, such as creating a computer with the same sort of footprint as a Raspberry Pi 400. I mention this, because then it would have a retro computer feel, which would be awesome for this wonderful little project.
    I also suspect I have missed a few videos, because things seem much further along than when I last watched.
    Keep going, this is great. I can see you get to a final version in the next six months or so, easily.

    • @Zeal8bit
      @Zeal8bit  2 роки тому +3

      Thank you for your long-time support ! You're always here on time 😄
      To be honest, this was the very first goal, before even starting the project, I wanted to embed the motherboard inside a keyboard. This would really look like retro computers of the 80s. However, this adds a lot more work as there would be 3 PCBs, and so, more things to support.
      Nonetheless, I haven't completely dropped the idea, that's why I mentioned the presence of an "internal I²C bus" 😉
      I will try to at least finalize the motherboard within the next 6 months. After all, the motherboard can be used without the FPGA 😄

  • @belatorok5630
    @belatorok5630 Рік тому +1

    It is not a coincidence that you have so many views, you are massively talented, I think.

    • @Zeal8bit
      @Zeal8bit  Рік тому

      Thank you very much for your heart-warming comment!
      I would say it's mostly about patience, work and motivation 😄

  • @nR-kv7xo
    @nR-kv7xo 2 роки тому +3

    this looks amazing!

    • @Zeal8bit
      @Zeal8bit  2 роки тому +1

      Thank you very much, it's a lot of work 😄

  • @vanhetgoor
    @vanhetgoor Рік тому +1

    Yeah! Eight Bit! And an FPGA working overtime in 64-bits minimum. In fact every bit is looked after from many viewpoints, every bit is checked from the left and the right, weight, speed and direction is controlled. How would you get all of those bits looking in the same direction if there was not something bigger behind it? All bits are marching exactly on the right time. When Von Neumannn started with computers they often had to wait for slow bits that always came late.

  •  2 роки тому +4

    Very nice. Will you be releasing the schematics?

    • @Zeal8bit
      @Zeal8bit  2 роки тому +1

      Thanks for your comment!
      The schematics are not public yet, but stay tuned as I am planning to make the board available soon 😄

  • @Theineluctable_SOME_CANT
    @Theineluctable_SOME_CANT Рік тому +3

    Oh, yes.... the MC6809 has an MMU chip available which gives 2 MB address space. Also, OS9
    I did have a Spectrum, which I did some simple machine language on. Never was that excited about the register oriented aspect. Okay, but not blown away.
    Z80 does have an IO space though, which is good.
    Motorola memory mapped their stuff, like the PDP-11 which inspired them.

    • @Zeal8bit
      @Zeal8bit  Рік тому +2

      I am surprised Zilog didn't propose such chip back then, they did PIO, DMA, Serial, CTC, chips but no MMU. Very few computers needed more than 64KB memory?
      I also like the I/O bus, it makes the actual 64KB of "real" memory contiguous.
      I wasn't shocked by the "registers" aspect, I mean this is what we actually use until today, mainly with RISC CPUs. I was more surprised that reading and writing through IX and IY registers is really slow.

    • @Theineluctable_SOME_CANT
      @Theineluctable_SOME_CANT Рік тому +1

      @@Zeal8bit well, the business systems were still reel to reel tape drive PDP-11 clones and they had only 128 k bytes of RAM anyway. UNIX fit on 32k words...
      I saw a small KAYPRO in 1987.
      It was SLOW....
      Wordstar, dBase II, visicalc and spacewar...

    • @Theineluctable_SOME_CANT
      @Theineluctable_SOME_CANT Рік тому +1

      @@Zeal8bit I think they had a massive job on their hands doing the Z80 CPU. The design system and tools were primitive at the time.
      Not sure, but I think they had such runaway financial and market success with it, maybe they were busy keeping the wafer yield up.
      MMUs are a great device, but I notice marketing can be tricky. I think the fact was that the 8086 and the 8088 did 1 MB in a 40 pin DIP out of the box just two years later.
      The 6809 was great, but it was 2 years late...
      Looking back, I realise the 8088 was just the perfect chip for tge computer revolution (that wave, anyway) even though segmented memory is ugly as sin.

    • @Theineluctable_SOME_CANT
      @Theineluctable_SOME_CANT Рік тому

      @@Zeal8bit when you see why it's slow then you say to yourself :
      "No wonder!"

  • @gyorgypaczai7062
    @gyorgypaczai7062 Рік тому +1

    Really a usable and a modern environment for this old cpu. Great work! The OS is looks also very good, nothing fancy, only useful and important commands. Can you tell us how the memory management unit works in detail if it is not a secret?

    • @Zeal8bit
      @Zeal8bit  Рік тому

      Thanks for your comment!
      It's not secret, so we have 4 virtual pages of 16KB which can be mapped to any 16KB window of the physical 4MB of address space. In the hardware, this is implement with a 4x8-bit SRAM chip.
      To swap in and out the pages, a single OUT instruction is required, for example, to make the first 16KB page point to the physical address 0, I only need to execute:
      ld a, 0
      OUT (PAGE_0_ADDR), a
      , if I want to point to physical address 0x4000, I only need to change ld a, 0 to ld a, 1
      etc...

    • @gyorgypaczai7062
      @gyorgypaczai7062 Рік тому

      @@Zeal8bit Thank you! Now it is clear, I see every page has different address. Good idea!

  • @SquallSf
    @SquallSf 2 роки тому +2

    O c'mon @Zeal 8-bit Computer ... we waited 6 months for 6 min of video??? ^_^
    Give us more details, specifications, examples. Since this is RC, is there a link with current specifications? I'm personally interested in how to switch mapping, the audio (is it PSG) and mainly on video. It is time to write some cool demos :P
    An emulator and up-todate documentation can help you with the software.

    • @sanhua8337
      @sanhua8337 2 роки тому

      I imagine there is a load of development work. BTW I am also waiting for the spec of Zeal 8-bit computer :D

    • @Zeal8bit
      @Zeal8bit  2 роки тому +2

      Haha thanks for your comment, I understand your impatience! 😄
      It's in my plan to write a technical reference manual or user manual. As the comment above said, there is a lot of development going on, from hardware, to software, without forgetting FPGA. Unfortunately, days are only 24 hours long 😂
      Recently I was busy writing ZealOS, the release will be very soon. I would love to see cool demos on the board too!

    • @SquallSf
      @SquallSf 2 роки тому

      @@Zeal8bit Unfortunately yes, days are only 24h :) But you don't have to do it all alone ;)
      BTW do you have a Discord server for the project? It will be easier to communicate in real time :)

    • @Zeal8bit
      @Zeal8bit  2 роки тому +2

      @@SquallSf You are right, I have already published the source code for Zeal 8-bit OS.
      I do want to create a Discord or a place to communicate with other people interested in the project. The only issue is there are also people in China who are interested in the project, as I also post the videos on Bilibili, but Discord is banned there. I am looking for an alternative that would be accessible to everyone. (In the worst case, we can set up two different applications I guess)

    • @SquallSf
      @SquallSf 2 роки тому +2

      @@Zeal8bit I asked for Discord, because it is worldwide known/used and will be perfect for your project needs. I didn't know they have region/country restrictions. You might try to use two of these programs, to see which one better suit your need (or is more used) and eventually switch to only that one.
      BTW where have you published your OS code? I checked all the links under the video but couldn't find anything.

  • @rehsd
    @rehsd 2 роки тому +2

    Very nice!

  • @paulwratt
    @paulwratt Рік тому +3

    its a shame you moved the circuit board design to only use the PLCC package connectors, as I was thinking to make an adapter for the CPU socket and using a RPi of some sort instead (ala BusRaider RC2014 / PiStorm), but adapter interface to a PLCC (especially such small ones) are not easy to find, nor easy to make. - I do see you can remap a physical ROM to "40pin Extension Port", but I also noticed the new board layout does not contain the "other 40pin bus port"

    • @Zeal8bit
      @Zeal8bit  Рік тому +1

      That was a diffcult choice to make, but I didn't want the board to be too big. The main board being 15x10cm and the FPGA one being 5x10cm, we have a total of a bit more than 20x10cm (there is a small gap in between). This was the limit I didn't want to exceed.
      As you saw, it's possible to remap everything through the 40 pin Extension Port, even the CPU! Another possibility I see is to not solder/desolder the PLCC sockets,it will give you regular 2.54mm pads. You can imagine soldering pin headers there and connect your board on the top of it.
      Regarding the other 40 pin bus, which was a "debug port" , it didn't only take space on the PCB but it also made it much harder to route. As I said in a previous comment, now that the extension port has all the signals, it could use it for debugging and get rid of the "debug port".

  • @lymmentrixprofessional
    @lymmentrixprofessional 2 роки тому +3

    Thanks for this wonderful and awesome project, please can you send the schematics diagram and PCB layout

    • @Zeal8bit
      @Zeal8bit  2 роки тому +1

      Thanks for your comment!
      I will release the software first and then the hardware once it will be stable and officially "released", it's planned !😄

  • @JohnDlugosz
    @JohnDlugosz Рік тому +2

    This could be an alternative to the Commander X-16 for those who prefer the Z-80 to the 6502.
    re scrolling: You should have hardware scrolling by changing the position of the display window within the frame buffer, and have it wrap around.
    As for when you do need to copy blocks of memory: does this board (or the video card) feature DMA?

    • @Zeal8bit
      @Zeal8bit  Рік тому +1

      Thanks for your comment!
      It can be seen as as an alternative yes, but much less ambitious though, I am not trying to build the ultimate 8-bit computer. I would like to build something small and simple, yet very funcitonal.
      I perform the text scrolling with a similar approach, I store the index of the line (text mode presents 80 columns, 40 lines) to show at the top of the screen, and I show the rest of lines while wrapping around when we reach the last one.
      For both the text mode and graphic mode, there is no pixel framebuffer. They work thanks to tiles. For to reply your answer, no there is no support for DMA on either board, the CPU can copy data to VRAM either with a simple ld instruction or with the more complex ones like LDI, LDD, LDIR, LDDR...

  • @an1rb
    @an1rb Рік тому +1

    You could probably implement a more powerful CPU than the Z80 on the FPGAs !!

    • @Zeal8bit
      @Zeal8bit  Рік тому

      Indeed, it's possible but it would require a more complex PCBs because of the number of I/Os. Moreover, the components around, like the ROM and RAM, would not be able to handle faster speed without introducing WAIT signals. That will also make the overall computer more complex and less easy to understand and master.

  • @frnno967
    @frnno967 Рік тому +1

    Would you consider making the video card something designed for "stand alone" use with other systems? For example, a version that could be used with 6502, 68000, or other architecture systems. And does the video card support 16:9 aspect ratio and 720p or 1080p resolutions? It could be a real game changer if it could be redesigned as a platform-agnostic, retro-friendly video solution.

    • @Zeal8bit
      @Zeal8bit  Рік тому +1

      As discussed on Discord, yes, this nothing in hardware is limiting the video board to be used on any other 8-bit system, as long as the I/O, memory and RD/WR signals are still correctly provided.
      I will talk more about the video board in the future

  • @sdjhgfkshfswdfhskljh3360
    @sdjhgfkshfswdfhskljh3360 Рік тому +2

    Videocard with microSD slot O_o

    • @Zeal8bit
      @Zeal8bit  Рік тому +2

      Exactly! The "video card" will in fact also manage the sound and the uSD interface

    • @sdjhgfkshfswdfhskljh3360
      @sdjhgfkshfswdfhskljh3360 Рік тому +2

      @@Zeal8bit I even guess that video card may be more powerful than the rest of PC, which means that it is not video card is connecting to PC, but PC is connecting to video card :)

    • @Zeal8bit
      @Zeal8bit  Рік тому +2

      Haha nice one!
      In theory, yes we could implement a Z80 core in the FPGA, yes it would be faster. But I prefer to see the FPGA as a big CPLD. In fact, what about the RAM, the NOR Flash and the RTC? The FPGA alone isn't enough to emulate these 😄

  • @e-radfilms
    @e-radfilms Рік тому +1

    By chance will you ever make this more modular using something like old 8bit ISA bus connectors? a backplane with power and cards for each section such as cpu, ram, video, and sound?

    • @Zeal8bit
      @Zeal8bit  11 місяців тому +1

      Thanks for your comment!
      I included an extension port for plugging external extension cards. I didn't want to make a backplane with cards to plug because I wanted this computer to be more like an SBC than a fully extensible computer. In fact, I would like to design a case for it at the end. This is more convenient make when the board has a predefined size.

  • @catgirlQueer
    @catgirlQueer 2 роки тому +2

    you might've mentioned it in one of the prior episodes but how are you interfacing the keyboard with this device?

    • @Zeal8bit
      @Zeal8bit  2 роки тому +2

      I am using a PS/2 keyboard, on the motherboard there is a simple PS/2 interface decoder made out of two 8 shift registers and a signal filter. When a key a pressed, a signal is sent to the PIO which triggers an interrupt. The CPU will then decode the PS/2 key value to ASCII or special characters

    • @catgirlQueer
      @catgirlQueer 2 роки тому +1

      @@Zeal8bit ah, so there is no way currently for the CPU to talk back to the keyboard?

    • @Zeal8bit
      @Zeal8bit  2 роки тому +2

      @@catgirlQueer Indeed, it's not possible, this was a sacrifice I had to make in order to keep the PCB simple and small enough. It would have been possible to have a microcontroller instead to handle the whole PS/2 protocol, but I would prefer to keep MCUs out of this current project.
      (even though I personally think an MCU and a Z80 can be complementary as an MCU is not necessarily "more powerful" than a Z80 as I could read in some places)

    • @catgirlQueer
      @catgirlQueer 2 роки тому

      @@Zeal8bit is there anything specifically you're missing from a 1 way connection that you'd like to have? I'm trying to decide what would be the best way to implement keyboard support on my own 16 bit computer, and having someone else's thoughts on it could help a lot

    • @Zeal8bit
      @Zeal8bit  2 роки тому +1

      @@catgirlQueer The main thing that I regret not having is the possibility to turn on/off the LEDs on the keyboard: num lock, caps lock and scroll lock. These require a bi-directional communication. Another interesting command is to request the keyboard to resend the last-sent byte, this also requires a bidirectional communication. In my case, I have never encountered a situation where I needed this (mainly because I discard the start/stop/parity bits), but you may need it if you want to check the intergrity of each byte received.
      From my point of view, if you want to implement a keyboard interface, either use or make your own key matrix-based keyboard, either use a microcontroller to decode the PS/2 protocol. I personally find that the PS/2 protocol doesn't make a lot of sense and was not made to be easy to decode/interface.
      If you want to have a PS/2 protocol without using logic chips or an MCU, you can even imagine using GPIOs and bit-bang the PS/2 data bus! It's an open-drain bus, so it can be achieved without adding a bus transceiver.
      (That's something I considered myself but the 8 GPIOs I allocated to the system were already taken)

  • @DerekDavis213
    @DerekDavis213 Рік тому

    Hello, you might consider offering your videos in 1440p or 4k resolutions. In 2023, 4k televisions are cheap and for sale everywhere.

    • @Zeal8bit
      @Zeal8bit  Рік тому

      Thanks for your comment. I will have a try, not sure my computer will like editing such high resolution videos though.

  • @samuraiBSD
    @samuraiBSD Рік тому +1

    So, I've been wondering with a lot of these modern retro computers, why not design around modern PC form factors like Mini ITX so that cases and such are simpler affairs? Just curious if there's a reason I'm not seeing.

    • @Zeal8bit
      @Zeal8bit  Рік тому +1

      Thanks for your comment!
      It is possible to design the PCB to have a Mini ITX, but from what I know, the connectors are also standardized, their location on the board too. In the case of an 8-bit computer, most connectors won't be here, including: Ethernet port, USB port, etc... So in a case, that would leave a big empty spot at the back of the case.
      In my case, it's also because I am "limited" by the fact that I want the video board to be on another board that plugs on the side, so that the motherboard can be used alone.
      When I started the project, I also wanted to have the whole motherboard inside a custom keyboard, which is why I decided to have a form PCB form factor.

    • @samuraiBSD
      @samuraiBSD Рік тому

      @@Zeal8bit that makes perfect sense! My dream is an 8 bit machine in an ITX form factor, but in the case of Zeal, I can see why you laid it out like that now. Thanks for responding! Best of luck with the development, I'm looking forward to seeing where it goes!

  • @scotts-tech
    @scotts-tech Рік тому +1

    How did you attach that bga fpga to the video board? The largest non-bga fpgas they make only come in 144 pin packages. This means that if you can't do bga parts but still need high pin counts, you have to use 2 qfp chips working in tandem which ends up being twice as expensive.

    • @Zeal8bit
      @Zeal8bit  Рік тому

      I soldered it. The FPGA I am using is in a BGA256 package, in fact this Lattice FPGA only comes in BGA.
      Why would I use a non-bga package?🤔

    • @scotts-tech
      @scotts-tech Рік тому +1

      @@Zeal8bit That's a 256 pin bga package? WOW!
      Could you explain roughly the process you use to accomplish this? Attaching just a 24 pin BGA device to a board is already a respectably difficult task. 256 pins is insane. There are so many things that have to go right for that to actually work. Where do you get the stencils? How do you prevent the stencils from flexing when they heat up? Do you use solder paste or do you put bga balls into the stencil holes? Do you use the sn63pb37 solder (which is supposedly the easiest for diy bga)? How do you align the chip to its socket? How do you keep the chip from moving when heating it?
      On my next pcb, I'm going to be using 2 144pin qfp surface mount Xilinx cplds working together, I'm too far along at this point to change that but after seeing this video, it might be worth experimenting with bga parts again.

    • @Zeal8bit
      @Zeal8bit  Рік тому

      @@scotts-tech To be fair, it's easier than it sounds, BGA256 chips come with the solders balls already on the chip, so no need for a stencil, no need for more solder. What I do is I apply a thin layer of flux, I place the component where it should sit, I align it with the square that is in the silkscreen (well, its footprint), I pull the hot air gun with medium air speed and around ~350°C if I remember correctly. It is also possible to use a hot plate but I have never tried myself.
      After soldering I check the connection of few pins. (FPGA pins have ESD protection diode, so if the chip is properly soldered, you should be able to use a multimeter is diode mode to check the connection)
      I find soldering BGA chips much simpler than TQFP. The only problem would be desoldering and re-balling the chip.

  • @gensys244
    @gensys244 Рік тому +1

    Any future update on video card status if you will be making it available to be purchased ?

    • @Zeal8bit
      @Zeal8bit  Рік тому

      Thanks for your comment, it is planned indeed! Since that video, I worked on the motherboard mainly, now that the motherboard is available to buy, I will soon resume my work on the FPGA and make videos about it.

  • @ratatus5645
    @ratatus5645 Рік тому +1

    Apart from space, what are the major differences betwren Altera and Lattice FPGAs?

    • @Zeal8bit
      @Zeal8bit  Рік тому +1

      The IDE you will use will differ, with Altera I used Quartus, which is pretty good. With the Lattice I use the excellent open-source toolchain yosys and nextpnr. Usually, Lattice FPGAs have more LUTs and more BRAM (for the same price).
      Else, from a user point of view, not that much difference

  • @oldtechie6834
    @oldtechie6834 Рік тому +1

    Do you have the CPU card and the video card for sale? I very much would like to buy pre-built and pre-tested ones if at all possible. Do you have the latest schematics? Thanks.

    • @Zeal8bit
      @Zeal8bit  Рік тому +1

      Not yet, but I plan to sell the motherboard soon, the video card will come later as it needs more development

  • @oldtechie6834
    @oldtechie6834 Рік тому +1

    The video card is surface mount. It will be difficult for amatures to assemble the card. Do you sell prebuilt video cards?

    • @Zeal8bit
      @Zeal8bit  Рік тому +1

      Thanks for your message!
      The video card is hard to solder, mainly because of the BGA FPGA. When I'll propose it in the future, it will be prebuilt/pre-assembled indeed.

  • @ruisantos4520
    @ruisantos4520 Рік тому +3

    Dear Friend... Instead of the PS2 ... Why not an USB ?

    • @Zeal8bit
      @Zeal8bit  Рік тому +2

      Hello!
      Because USB protocol is exponentially more complex than PS/2 protocol, which is a simple UART-like protocol.
      The simplicity of PS/2 let me manage the received bytes in hardware with few logic chips. USB is so complex that it would require an MCU, an FPGA, or bit-banging PIO's I/Os manually (making transfers really slow)

  • @Theineluctable_SOME_CANT
    @Theineluctable_SOME_CANT Рік тому +4

    Can you show us a practical use of the block instructions?
    LDIR, etc.....
    That would be really great!
    Those are very powerful instructions for the time. 1976...

    • @Zeal8bit
      @Zeal8bit  Рік тому +2

      Thanks for the suggestion, I write this down.
      I could make a "Getting started" video for Zeal 8-bit OS where I can use such instruction.

    • @Theineluctable_SOME_CANT
      @Theineluctable_SOME_CANT Рік тому +2

      @@Zeal8bit cool...
      It's a pleasure.
      I have more. Lol....

    • @belatorok5630
      @belatorok5630 Рік тому +3

      @@Zeal8bit Using Z80 DMA chip would not be better than LDIR ? I have one piece of it binned from some somewhere.

    • @Zeal8bit
      @Zeal8bit  Рік тому +1

      @@belatorok5630 Indeed, having DMA on the board would make transfers much faster. According to the Z80 DMA chip manual, transfers would be from 5x to 10x faster. There are some drawbacks however:
      - In terms of software, we would need to program the DMA chip every time we want to perform a copy, making the code more complex than a simple ldir instruction.
      - In terms of hardware, we would need more space on the PCB and more costly. From what I see, these DMA chips are harder to find than the PIO and CPU, and they are not available in 10MHz version, which is the frequency I am using. As such, I would need a clock divider on my board in case I want to integrate such chip, or down clock the CPU.
      Finally, thanks to the extension port, it is possible to add a DMA chip externally, it will also be able to manage the whole bus as all the signals are present on the port. The main use of the DMA would also be to transfer graphics data, thus, one solution would be to let the video chip (FPGA) perform the DMA.

  • @ruisantos4520
    @ruisantos4520 Рік тому

    Second thing. Can I somehow transfer to a 5,25 inch diskette and try to power an old Z80 machine ? I have a Kaypro, a CASIO FP1000 and a newbrain ...

    • @Zeal8bit
      @Zeal8bit  Рік тому

      I am not sure to understand the question, what software/program are your transfering to a diskette to power on your machines?

  • @EirikrTinkerTries
    @EirikrTinkerTries 3 місяці тому

    Is there a Z280 model in the pipeline?

    • @Zeal8bit
      @Zeal8bit  3 місяці тому +1

      I like the Z280 a lot, but it's much harder to find in +20 quantity than the classic Z80

  • @Theineluctable_SOME_CANT
    @Theineluctable_SOME_CANT Рік тому +4

    I have a suggestion: a ROM for fast lookup of different math functions you might want done fast. I want to do that on at least one 8 bit system before I die ☠️

    • @Zeal8bit
      @Zeal8bit  Рік тому +2

      A lot of ROM space is still available so it would definitely be possible, but then the programs would need to map that area and look up by themselves. Or did you mean that we would have some dedicated I/Os and the hardware would look up for the values?

    • @Theineluctable_SOME_CANT
      @Theineluctable_SOME_CANT Рік тому +1

      @@Zeal8bit oh, sorry!
      You don't read minds...
      I am thinking of a ROM mapped into IO space so you just POKE a value to a few latches which drive the ROM address buss. You read back via an input LATCH in IO space. You can get 256 x 256 lookup to 256 values (which may or may not represent a linear NUMBER space...)
      Rough but fast.
      I do apologise.
      I am thinking of not just a simple mapping using an array. I am thinking of functions of two or more variables, logarithmic number scales, etc.....
      I had to do maths for engineering.

    • @Theineluctable_SOME_CANT
      @Theineluctable_SOME_CANT Рік тому +1

      @@Zeal8bit to be honest, here is what I want to build or see someone do it:
      A video (256 level RGB) SIX PAGE FRAME BUFFER bank is available for VIDEO GRAPHICS OUTPUT. Capability would extend to graphics over live video via a GENLOCK, 256 x 256 pixels in VGA colour WITH animation.
      An AUDIO FRAME BUFFER is available for SOUND / music / synthesis. STEREO.
      An I/O buffer set with real-time hardware counters is available for fast data pump and refresh of a
      256k by 36 bit DRAM BANK which is the REAL-TIME CAPTURE front end of a 36 channel Logic State Analyzer.
      Control registers required for the logic state analyzer can become quite extensive.
      Would be a very cool piece of lab gear...

  • @Theineluctable_SOME_CANT
    @Theineluctable_SOME_CANT Рік тому +3

    What is your ultimate goal?

    • @sanhua8337
      @sanhua8337 Рік тому +3

      I also followed Zeal 8-bit Computer for one year. I think his goal is actually create a community that use 8-bit computer and an ecosystem of nice software based on it.

    • @Theineluctable_SOME_CANT
      @Theineluctable_SOME_CANT Рік тому +2

      @@sanhua8337 ahh! Nice.

    • @Zeal8bit
      @Zeal8bit  Рік тому +1

      Indeed, my goal is to make an 8-bit computer for advanced users (assembly programming/drivers/hardware) or beginners (with a scripting langage, not sure which one yet). In any case, creating a community around it with motivated people is also my goal!

    • @ratatus5645
      @ratatus5645 Рік тому +1

      @@Zeal8bit For beginner's language, you should use a BASIC like language, like Locomotive BASIC, MSX Basic or SuperBASIC, or even a mix of them.

    • @Zeal8bit
      @Zeal8bit  Рік тому +1

      @@ratatus5645 Indeed, that's one possibility. The most obvious choice would be BBC Basic as the source code is available. I'll see, in an ideal world, I would like to have a more modern script language.

  • @SinedWOLF
    @SinedWOLF Рік тому

    0:45 look at keyboard port!) 🪲