- Видео 96
- Просмотров 411 778
DrMattRegan
Австралия
Добавлен 19 авг 2021
Welcome to the channel. Here I present a number of tutorial-style videos for people who want to learn how computers work using a hand's-on approach.
While we mainly focus on the legendary 6502 microprocessor at the moment, the plan is for more Z80, 68000, 8086 and computer graphics content.
About Me.
I'm Australian and I have a PhD in Computer Science.
I developed a low latency virtual reality display controller and built the first fully functional prototype
at Paul Allen's think tank - Interval Research Corporation.
later, i was a unit lead in the architecture group at NVIDA working on the Tesla and Fermi architectures.
While we mainly focus on the legendary 6502 microprocessor at the moment, the plan is for more Z80, 68000, 8086 and computer graphics content.
About Me.
I'm Australian and I have a PhD in Computer Science.
I developed a low latency virtual reality display controller and built the first fully functional prototype
at Paul Allen's think tank - Interval Research Corporation.
later, i was a unit lead in the architecture group at NVIDA working on the Tesla and Fermi architectures.
VIC 20 build. Colour
I combine the CPU and raster generator with a couple of extra registers, modify the clock circuit and generate a monochrome output.
Part 1: CPU - ruclips.net/video/epuP5fAuRj0/видео.html
Part 2: Raster generator - ruclips.net/video/Qv5tEn72Luc/видео.html
Part 3: Monochrome display - ruclips.net/video/giVttGIXC1E/видео.html
The schematic for this part of the build and the code to generate the EPROMs are available on GitHub
github.com/Turing6502/VIC20
NTSC from an EPROM - ruclips.net/video/0EzTAo47Fxg/видео.html
Part 1: CPU - ruclips.net/video/epuP5fAuRj0/видео.html
Part 2: Raster generator - ruclips.net/video/Qv5tEn72Luc/видео.html
Part 3: Monochrome display - ruclips.net/video/giVttGIXC1E/видео.html
The schematic for this part of the build and the code to generate the EPROMs are available on GitHub
github.com/Turing6502/VIC20
NTSC from an EPROM - ruclips.net/video/0EzTAo47Fxg/видео.html
Просмотров: 5 328
Видео
VIC 20 build. Monochrome video output.
Просмотров 6 тыс.Месяц назад
I combine the CPU and raster generator with a couple of extra registers, modify the clock circuit and generate a monochrome output. Part 1: CPU - ruclips.net/video/epuP5fAuRj0/видео.html Part 2: Raster generator - ruclips.net/video/Qv5tEn72Luc/видео.html The schematic for this part of the build and the code to generate the EPROMs are available on GitHub github.com/Turing6502/VIC20 Onto colour i...
VIC 20 build. Raster generator HSYNC and VSYNC
Просмотров 5 тыс.Месяц назад
We start the build of the raster generator. Part 1: CPU - ruclips.net/video/epuP5fAuRj0/видео.html Part 2: Raster generator - ruclips.net/video/Qv5tEn72Luc/видео.html Part 3: Monochrome output - ruclips.net/video/giVttGIXC1E/видео.html The schematic for this part of the build and the code to generate the EPROMs are available on GitHub github.com/Turing6502/VIC20
VIC-20 Build from a breadboard 6502
Просмотров 24 тыс.Месяц назад
In this series, I'm taking Ben Eater's breadboard 6502 and turning it into a VIC-20, with out using the hard to get VIC chip. Instead, I'll replace it's function with simple TTL logic and EPROMs. If you've ever wanted a deeper understanding of how the VIC-20 works, then this series is for you. Part 1: CPU - ruclips.net/video/epuP5fAuRj0/видео.html Part 2: Raster generator - ruclips.net/video/Qv...
VGA ZX Spectrum - Schematic Part 2
Просмотров 2,3 тыс.2 месяца назад
Here i go over the schematic for the video circuit and the code for the raster generator. Schematic Part1 : ruclips.net/video/N36iWYcXBAE/видео.html There are a couple of minor changes to the schematic. The most up-to-date version of the schematic is available on GitHub: github.com/Turing6502/ZX-Spectrum-No-ULA
VGA ZX Spectrum - Schematic
Просмотров 6 тыс.3 месяца назад
Schematic diagram for the machine. The most up-to-date version of the schematic is available on GitHub: github.com/Turing6502/ZX-Spectrum-No-ULA Part 1: ruclips.net/video/u8TRJXLCfQo/видео.html Part 2: ruclips.net/video/qO1dNRKHeb4/видео.html Part 3: ruclips.net/video/If8GkpuakHM/видео.html Part 4: ruclips.net/video/jdkaOuP_c5I/видео.html
TTL Apple 2 computer. ALU and Status
Просмотров 4,3 тыс.3 месяца назад
Continuing to document the SAP6502 redesign. Schematics are available from: www.github.com/Turing6502/SAP6502 Part 1: Sequencer ruclips.net/video/mo9VvPProoY/видео.html Part 2: Program Counter, Registers and Memory ruclips.net/video/ZC3RlHvQSic/видео.html SAP6502: ruclips.net/p/PLjQDRjQfW-85S5QkX8wZbkqichM6TLYYt Microcode: ruclips.net/p/PLjQDRjQfW-846ceqO1tFgj6NP53JjckfB Introduction to Digital...
Switches to CPUs: Minutes counter
Просмотров 1,2 тыс.3 месяца назад
We make the minutes counter for the clock. Part 1: Binary numbers - ruclips.net/video/BYN8Zmk6HJY/видео.html Part 2: 2-input gates - ruclips.net/video/bCuBbsakUcA/видео.html Part 3: Relay based logic - ruclips.net/video/FPGLLOh_02Y/видео.html Part 4: Latches - ruclips.net/video/rv0Gt7qPR0k/видео.html Part 5: SR Latch - ruclips.net/video/JDJzhQL1npo/видео.html Part 6: Wired OR gates - ruclips.ne...
VGA ZX Spectrum - Testing
Просмотров 3,8 тыс.4 месяца назад
In this short series, I'm going to build a ZX spectrum using an EPROM instead of a ULA. In this video, i looks at getting the VGA circuit to work. Part 1: ruclips.net/video/u8TRJXLCfQo/видео.html Part 2: ruclips.net/video/qO1dNRKHeb4/видео.html Part 3: ruclips.net/video/If8GkpuakHM/видео.html Part 4: This video Part 5: ruclips.net/video/N36iWYcXBAE/видео.html
Switches to CPUs: Ripple Counter
Просмотров 1,3 тыс.4 месяца назад
We make a D-type flip-flop then convert it into a ripple counter. Part 1: Binary numbers - ruclips.net/video/BYN8Zmk6HJY/видео.html Part 2: 2-input gates - ruclips.net/video/bCuBbsakUcA/видео.html Part 3: Relay based logic - ruclips.net/video/FPGLLOh_02Y/видео.html Part 4: Latches - ruclips.net/video/rv0Gt7qPR0k/видео.html Part 5: SR Latch - ruclips.net/video/JDJzhQL1npo/видео.html Part 6: Wire...
VGA ZX Spectrum - No ULA, No FPGAs
Просмотров 13 тыс.5 месяцев назад
In this short series, I'm going to build a ZX spectrum using an EPROM instead of a ULA. In this video, i looks at getting the VGA circuit to work. Part 1: ruclips.net/video/u8TRJXLCfQo/видео.html Part 2: ruclips.net/video/qO1dNRKHeb4/видео.html Part 3: This video Part 4: ruclips.net/video/jdkaOuP_c5I/видео.html Part 5: ruclips.net/video/N36iWYcXBAE/видео.html
Switches to CPUs: Flip-Flops1
Просмотров 1,1 тыс.5 месяцев назад
Part 1: Binary numbers - ruclips.net/video/BYN8Zmk6HJY/видео.html Part 2: 2-input gates - ruclips.net/video/bCuBbsakUcA/видео.html Part 3: Relay based logic - ruclips.net/video/FPGLLOh_02Y/видео.html Part 4: Latches - ruclips.net/video/rv0Gt7qPR0k/видео.html Part 5: SR Latch - ruclips.net/video/JDJzhQL1npo/видео.html Part 6: Wired OR gates - ruclips.net/video/WCnnezTIf1g/видео.html
Switches to CPUs: Wired OR gate
Просмотров 8015 месяцев назад
Part 1: Binary numbers - ruclips.net/video/BYN8Zmk6HJY/видео.html Part 2: 2-input gates - ruclips.net/video/bCuBbsakUcA/видео.html Part 3: Relay based logic - ruclips.net/video/FPGLLOh_02Y/видео.html Part 4: Latches - ruclips.net/video/rv0Gt7qPR0k/видео.html Part 5: SR Latch - ruclips.net/video/JDJzhQL1npo/видео.html Part 6: Wired OR gates - ruclips.net/video/WCnnezTIf1g/видео.html Part 7: Flip...
Switches to CPUs: Set Reset Latch
Просмотров 1,5 тыс.6 месяцев назад
Part 1: Binary numbers - ruclips.net/video/BYN8Zmk6HJY/видео.html Part 2: 2-input gates - ruclips.net/video/bCuBbsakUcA/видео.html Part 3: Relay based logic - ruclips.net/video/FPGLLOh_02Y/видео.html Part 4: Latches - ruclips.net/video/rv0Gt7qPR0k/видео.html Part 5: SR Latch - ruclips.net/video/JDJzhQL1npo/видео.html Part 6: Wired OR gates - ruclips.net/video/WCnnezTIf1g/видео.html Part 7: Flip...
Switches to CPUs: Relay based latches
Просмотров 1,5 тыс.6 месяцев назад
We look at implementing a latch with relays. Part 1: Binary numbers - ruclips.net/video/BYN8Zmk6HJY/видео.html Part 2: 2-input gates - ruclips.net/video/bCuBbsakUcA/видео.html Part 3: Relay based logic - ruclips.net/video/FPGLLOh_02Y/видео.html Part 4: Latches - ruclips.net/video/rv0Gt7qPR0k/видео.html Part 5: SR Latch - ruclips.net/video/JDJzhQL1npo/видео.html Part 6: Wired OR gates - ruclips....
Switches to CPUs: Relay based logic
Просмотров 2,3 тыс.7 месяцев назад
Switches to CPUs: Relay based logic
ZX Spectrum DRAM timing explained.
Просмотров 6 тыс.8 месяцев назад
ZX Spectrum DRAM timing explained.
ZX81 Video Circuit Part 6. ZX80 HSYNC and Bring Up
Просмотров 1,9 тыс.Год назад
ZX81 Video Circuit Part 6. ZX80 HSYNC and Bring Up
ZX81 Video Circuit Part 5: How interrupt is generated for HSYNC
Просмотров 1,9 тыс.Год назад
ZX81 Video Circuit Part 5: How interrupt is generated for HSYNC
ZX81 Video Circuit Part 4: Display Files
Просмотров 2,2 тыс.Год назад
ZX81 Video Circuit Part 4: Display Files
ZX81 Video Circuit Part 2. Hi-res display of 256 x 192 pixels.
Просмотров 4,4 тыс.Год назад
ZX81 Video Circuit Part 2. Hi-res display of 256 x 192 pixels.
I've been thoroughly enjoying your various series, thank you very much indeed. I know you have several irons in the fire, but I do hope you will have time to return to this wire-by-wire build for the final bring up and conclusion. (Maybe in conjunction with your TTL Apple 2 series.) Many thanks once again.
There is a vic chip replacement design, the Victor or some such name, but it is the ussual FPGA design over the top, so I cant get behind it, like with the FPGA Hyper?? or Ultra Pet??, with all the sprites etc. Not representative of maxinum efficiency and what they would have done in that sort of design if they thought of it and pursued it. I forget the details of the vicchip replacement, but unless it something they could realisticaly do in ttl, gatearray or custom at the proposed price point to represent what your machibe could have been, whats the point? I have commonality with the vichip inventor, but the vicchip was his older design technology, that didn't find a console to use it in the 1970's. The vic2 didn't go far enough (he actually proved that the vic2 design could do 80 columns, and was planning a upgraded replacement chip. Though I dont think this had 16 sprites per line, and I haven't heard about 4 colour 320 or 640 mode and 16 colour 160 or 320 mode. If Jack had stayed at commodore, he would have been in a big battle without the Amiga, he didn't get for Atari by under offering for the design. Atari could have got it, and Motorola flood the market with their slightly stripped down version. All of which Jack stuffed. Without the Vicchip designer, could they really have progressed to something that could compete on price, with a number of machines using the stripped down Amiga chipset from Motorola. The US home computer market stalled, and Amstrad was the only real lasting cheaper advancement in the UK. Commodore had crushed so much competition, who was going to invest enough in a custom chip to make machines that competed with the 64. We dont consider, the reasons why the 64 suceeded. The MSX failed on older graphics tech rather than pull out ahead with a master system level graphics chip, plus 512 80 column).
@@waynemorellini2110 I guess my goal here is to use TTL logic to explain what the VIC does, rather than complete with existing FPGA designs/software solutions. Education is really what’s on offer, rather than the best possible implementation.
@DrMattRegan Sorry. I don't mean compete with FPGA, too much.. Just duscussing simple software compatability graphics modes introduced by newer designs, and the odd suggestion. :) The Spectrum is a prime one, as a number of different machines and chip upgrades enhanced graphics with simple mode before the sorctrum next. So, there is going be newr software out there that uses them. The TTL QL Thor etc machines also have regularly supported newer simp,e graphics modes. In the end, your designs might be the only non fpga designs out there for people in years time.
you voice sounds like a robot
@@maxbursell3513 yes, I don’t have a studio, so I need the adobe filters to clean up the audio. What did you think of the content?
@@DrMattRegan Hi, Very awesome content. really like it. :)
Can you make the video ram double the processor speed so there's no contention
I’m not sure that saves any hardware (except maybe the 374). You still need to be able to tri-state the Z80 address bus.
@@DrMattRegan is that expensive?
Dual ported or double speed are those the only options?
@ you can stop the CPU with a BusREQ, or slow down the clock. Have a look at the my Spectrum DRAM video.
@DrMattRegan but the processor isn't even 4mhz the enterprise can manage 8mhz now see stefandrissen video mod player enterprise
Thank You for putting so much effort into this. That was the best and most informative video I found about basic computer operations and I've been searching for a while 😊
Excellent, thanks for the feedback. Be sure to check some of the other playlists such as Turing6502 and SAP6502!
What is a effective low/high register?
The Effective Address registers are for storing/computing the address of the data for various addressing modes.
Is there any chance of adding a BOM for each .pdf file please? There are a few unlabelled ICs on the schematic (e.g. U25, U28, U29, U31, U32, U23, U45, U46, U46., U48, U49, U50, U20). I could go back through the video and figure them out but I was just going to stock up on my 74xxx series to come back to this in the future.
@@paulspark7287 I will at the end, but it’s a work in progress at the moment. Most of the chips are 74HC574s.
@@DrMattRegan I'll add a bunch of those to the shopping list. Thanks for the quick reply.
the Macgyver of the lost chips. I bow to such genius 🥰
Cheers!
Matt, I've made a few suggestions for TTL computers, but most computers are either too unsuported, like the Jupiter ACE (sinclair like), Mattel Aquarius, PCW, plus 4, or way too complex, like the Amiga, ST, Comodore 64. Mac or PC. But, the PC offers a rare opportunity. It is a minfeild of incompatabilities from different hardware, with direct hardware addressing of the hardware. But, there are certain hardware modes, input devices, video, sound and storage, that should most likely or always, be supported, which may be enough to maintain compatability with properly written hardware for a class of machine. CGA, is one such peice of hardware, but demo makers are demonstrating 6845 timming trickes to do 320 and 640 side modes in 16 colours, which means new retro software might be written to support such tricks (where you only have to identify that a useful mode and xt features are being setup, to switch them on, and drop support for the rest of the 6845 and xt motherboard hardware). But, the old popular Amstrad series of XT machines, including the Sinclair PC 200, use common 16 colour graphics modes, which means many European software releases might support it, and there might be another such chip in the rest of the world. Limiting to modes and hardware that need to be supported. But, ps2/386/usb/ega/various VGA hardware, might also have a subset of commonly supported hardware. But thinking about it, it just gets too complex once you go past a CGA xt or Amstrad/Sinclair PC. So, it's probably not worth considering. But, a nice project for students. I take it you lecture at university? Ultimately, the only really useful projects for students to do, are a Linux or javaecript engine os computer. Where universities can expand, and industry can produce custom silicon versions as they like. From there, students could try to do versions in the simpler to manufacture magnetic cellular automata logic at university (extremely low energy, extremely fast at cutting edge (4Thz), but hopefully still fast enough (in Mhz) in a low cost setup). Anyway, it's probably just too hard.
Thanks for the long post!. Interestingly, i actually have more prototypes under development than i have time to make videos. It's actually making and editing the videos that's most time consuming. I have prototypes for both a SAP 8086 and a SAP 68000 under development. I was thinking of the PC for the 8086 and either a Mac or Sinclair QL for the 68000. I was actually thinking of running the two series in parallel, interleaving the videos, to make it easier to compare and contrast the two CPUs. I've still got a couple more videos on the VIC-20 and the ZX Spectrum to go and i'd also like to do a commodore 64 series as well, so i've got plans for another 50-100 videos up my sleave. I would like to make one a week, but i find that very taxing and once per fortnight is more manageable. I do work full-time as a medical doctor (my other career) at the moment, so right now this is a hobby.
@DrMattRegan Thank you. You're welcome. You are very busy. What sort of medical doctor, because your name seems a bit familiar now? (re-edit, probably heard it in connection with the genetics research). Maybe a video comparing the systems? I did suggest to a friend designing a commercial system that I thought possibly you were going to make an adaptive system that could switch between different systems through the read only memory. If so then, is it Andy Hu's channel, with his HEC's supervisor mode for Z80 and other supervisor-less CPU'S, might be worth looking at, to have an overall control system level (or get the 68000/arm to do supervisor).
I’m a clinical geneticist (the biological computing system). Interestingly, much of the sequence analysis is done on NVidia hardware which is a little amusing, given I spent 5 years on and off working for NVidia. The spectrum and VIC20 may ultimately be the same hardware with different state machines!
@@DrMattRegan I probably have heard your name attached to that.
Dr Regan you have a talent for educating. Thank you for sharing your skill with us all.
@@RayR you’re welcome. Glad you’re getting some value from it.
Huh, I recently finished reading Dan Lancaster's Cheap Video books (I know I'm about 40 years late to the party) but some of the stuff that was a bit harder to get my head around in those (because I haven't actually got to the point of actually implementing any of it, usually that's where stuff finally fits into my brain) is now making a lot more sense...
@@SomeMorganSomewhere excellent, glad you got some value from it!
Very nice
Thanks
this is very interesting, i'm more of a software guy, so i'm just about keeping up, but please tell me, are there any benefits to doing this? does negating the ULA allow for faster CPU speeds? the ability to double buffer or anything? why is SRAM better than DRAM for instance? it would be interesting to see a spectrum that could run a 7mhz variant of the z80 with locked vsync to allow games to run correctly without slowdown, but i don't know if there would need to be further changes to allow that..?
Well, the real purpose of the video is for teaching / entertainment. The first problem with the ULA is that they're not begin made anymore. If you find a good one, you are basically cannibalizing and existing machine. The desire hear is to show how the ULA works. The down side of SRAM is that it's six transistors per bit, vs 1 for DRAM, but you need extra circuitry / voltages to keep DRAM happy. This extra cost per bit doesn't really matter these days. We have complete control over where the interrupt signal occurs, so it may just be easier to adjust that rather than change the clock speed.
@@DrMattRegan that's interesting, would you have any interest in exploring anything like that? it occurs to me a number of decisions were made as necessity of cost and complexity that as you said are no longer an issue, even at a hobbyist level today. I had thoughts of re-purposing the flash and bright bits to expand the palette and if i remember correctly some timex variants did have additional graphics modes that allowed for attribute blocks of 8x4 or 8x3 pixels?
This is a great 👍🏾 watch , it's interesting that different resistor values help create some of the different colour shades, I didn't know that
Thanks for watching!
Спасибо, отличный контент.
Thanks for the feedback.
Excellent video. So many tricks in there I could hardly keep up with how they all work. I'll need to watch it 10 times 🙂
Enjoy! Have a look around at some of the other series.
TV sender and receiver use sharp low pass, band pass , hi pass filter to implement these sub-channels. You cannot bit bang these. See how the VIC-2 has separate luminance and chromance output fed into a high quality filter? Audio has yet another filter. TVs even use surface acoustic devices. Maybe be use a SVGA video DAC at 50 MHz and some Fourier filter?
I think the filters and analog electronics are more significant in the receiving side than for the sender of a simple computer generated display. The frequencies are really controlled by the dot clock, and you can send out a nasty old square wave and it gets interpreted correctly using the filters in the receiver. Of course, i haven't tried to do this with higher fidelity YCbCr yet, so i may change my tune then.
@@DrMattRegan I thought that radio channels and cross-talk are an accepted theory. When sending: Without a hard filter at the borders of my band, I get a visit from the FCC: And no, the information is interpreted wrongly. The classical example was an anchor-man with a jacket with a pattern on it. Back in the day, anchor men did not wear color, but checker board or thin stripes were allowed. With good equipment in the studio on a high quality RCA TV set the jacket stayed black and white. Cheap private local sender and the second TV in the kitchen and the jacket gained colors. The C64 came out years after the Apple ][ . Engineers used this time to read up on the topic. Additionally, Commodore added traces to the PCB to pass both signals without the band pass. My brain still explodes when I try to imagine what happens when the color signal touches DC, but this is not real. It cannot hurt me. Even in S-video the chromance only gains like 1 MHz on both sides. I actually like that chromance has no DC part. The baseband luminance should use the borders to compensate DC to zero. Or so. Ah, analog signals are such a mess. Digitally, I would use the color clock only. QAM modulation. One channel is luminance, the other is chromance and audio. This time time division multiplexing is applied ( after digital error correction ). Digital technology can delay the signal with ease. Already the tiny RAM of the Apple ][ would be enough to use the borders for information. Of course, for QAM I still need the color burst. I actually am a bit confused how modern terrestrial TV stabilizes the phase. I think QAM could synthesize it out of the signal (deviation). So it is important not to stop the signal (in the borders). Could even place audio into top and bottom border.
"I thought that radio channels and cross-talk are an accepted theory. " I trust that you've watched the video, but it's about composite NTSC, not RF transmitted NTSC. In particular how the Apple II generates artifact colour. Sure the Apple II goes above the 1.5 MHz limit for Q and 0.5 MHz limit for I, but i don't really think the FCC are going to come running for anyone using an Apple II connected via a composite cable to a monitor.
@@DrMattRegan radio channels were invented first. Those same engineers later squeezed in the color channel using their knowledge. Sometimes schoolcan take a short cut, but regarding color TV, the historical way seems to lead to wisdom. So many people praise composite over RF, while I cannot see a difference on my C16. RF does not manipulate the composite signal information. Woz was pragmatic to get something out of the door. Then Apple moved away from composite pretty fast, like every home computer, instead of wasting money on a system invented to have many terrestrial TV channels. Never would Woz advise others to repeat his stop gap.
epic
Thanks!
Does this version of basic belong to me. My name is Colin B Maharaj
I believe this is Microsoft basic.
Wow, this is amazing! How large would the circuit be if you didn't use the EPROMS, bit hard wired the complete circuit?
I built a more conventional video circuit in this video ruclips.net/video/qbzzzkNPICI/видео.html The EPROMs make i much easier, and i want to highlight that it's just a Finite State Machine. For the colour EPROM, it would probably take 8 74HC151s and a 74HC04. I haven't done the Karnaugh maps, so it might be simpler than that.
While less important in (relatively) slow digital signals, I'd guess this kind of prototype wiring will have less parasitic capacitance issues than the breadboard one
Yeah, i think breadboard is OK up to about 3-5 MHz, although good boards will go a bit higher. I've found this sort of wiring can go to ~10 MHz. A bit higher if wired carefully.
Nice one. Your circuit board is looking pretty complicated now, I'd hate to see the mess of wires behind that thing. You could use that extra color ROM space to create different palettes for the VIC by tying a register or even some DIP switches to some of the remaining address lines.
Correct, there is plenty of space in the Colour EPROM, but it's still a simple solution.
Great series!!!! I'm waiting for the moment you will release a VIC replacement project on your github channel 😉
I'm thinking about it, but i'd need a reddit channel or some where to go for people who try to build it.
Wow just discovered this channel. Very technical but perfect explained.
Keep at it, i have a simpler series which explains the logic in simpler terms.
Again, just perfect. 👌
Thanks again!
Thank you, Dr. Matt. Great video as always. I love how a single bit was used to switch the display mode on a per character location basis. (I never had a VIC, so was relatively unaware of some details.)
Glad it was helpful! It's an interesting design. The VIC is a warm up for the VIC II.
Thoroughly enjoying this series. Many thanks. I suspect you have your own plans, but if I might get in early with suggestions for future series might I suggest: Acorn System / Atom - another way to do a 6502 system based in a more modular architecture and 'OS'. Amstrad CPC - a Z80 system with cleverly designed video and memory using minimal logic. Thanks. Both are also CRTC - based, which might be interesting to explore via your state-machine designs. PPS: The Amstrad PCW might also be worth an explore - one way to make a functional Z80-based CP/M system with a surprisingly fast very high resolution screen in minimal logic. (Simplistically the display is a window in to a larger block of memory that can be moved about by updating registers rather than doing slow RAM copies)
Thanks for the thoughts. I'm working on a new Spectrum series with a Turing Z80 and a Commodore 64, but i can look at other machines after that.
Although I don't fully understand all of the technicalities, I'm really enjoying this series.
Same
Stick at it. I've pitched different videos at different levels on the channel, so have a look around.
Thanks for these videos. Got 2 question. 1) are you planning to do an Atari 8bit video system and 2) could you give a demonstration of how you prep the wire for point to point connections? Thank you.
Thanks for the feedback. I have been tempted to do an Atari 2600 series, which i lusted after in the day. I never had a 400/800 so i don't know as much about them. Yep, i've been meaning to do a wiring video for a while.
@ thank you! I had a 130 xe. The Atari computer system has a lot of registers in it. I’ve been researching doing it like you with an eprom state machine, but there is a lot of addresses in the $D000 space. Would love to hear how you would solve that in TTL.
@@cdwlights I'd probably store them in an SRAM and shadow the once you need i a physical latch like it did in this video ruclips.net/video/R-qfziBnLFY/видео.html
This vídeo is amazing to see, it feels like this is what the commander x16 should of been.
Thanks for the feedback. I haven't watched all the commander x16 videos, but the ones i've watched seem to show what they've done rather than the details of how it works. That said, David Murray's channel is two orders of magnitude bigger than mine, so that seems a more popular approach. Personally, i like seeing the details and the design decisions (and the debug), which is why i make the videos this way. I want people to feel like they could design/build it themselves, rather than just showing what i've done.
@DrMattRegan he always said at the start that he wanted to build a modern vic 20 without the vic chip. What do i see here but the doc making a vic 20 without a vic chip What else would you call it ?
Hi Matt. The vic row and column size registers are designed to go up to large numbers. There was previously efforts to make an 80 columns business machine, which were abandoned before efforts went into the Vic. The replacement VIC40 prototype even had a drop in compatible 40 column vic chip (it seems the new vichip and upgraded memory were the dufferences). Somebody tried one on a normal vic and adjusted the kernel to work with it. Is it possible to make it adjust resolution as you specify more rows and columns, and support progressive scan? This would make it possible to specify rows and columns that hit certain standard display resolutions of VGA and HDMI. Would be a great little present to neglected Vic fans, who could plug and hdmi adaptor into the vga port and put it on a regular TV, and poke a new resolution. Or even full Vic 40 vicchip compatibility? 😊 (by the way, Atari pot controllers were cool). Anyway, a TTL miminalistic suggestion for you: the Vectrex, which had a computer keyboard add on, that was developed but not released before the collapse. So, that's out there somewhere. The people with the rights have been very accommodating, so might like to accommodate a ttl version, after seeing your work.
@@waynemorellini2110 thanks for the interest. I’ve been trying to decide what to do with respect to sizing. I can probably accommodate 16-32 different combinations of register settings. I may modify the raster generator FSM to take in the parameters during sync, but I’d probably need an external raster count register. I’ve been thinking about how to do smooth scrolling in the Commodore 64, I’ll experiment with that a little more. I’ll have a look at the Vectrex, but I don’t know much about it. - Looks like it uses the 6809, I’ve been tossing up whether to do a 6809 or 68000 first in the SAP format ie like the SAP6502.
@DrMattRegan You were looking at a Sinclair QL, which had a TTL Thor comparable computer with expanded functionality, which has expanded into a number of replacement boards and cards, and chips. The latest is a FPGA QL computer board about the size of an PI Zero, that plugs into the back as an accelerator and io expanded, but also can act as a stabd alone computer. So, there is a group of supported upgraded graphics modes and minor features, OS's, and GUI's. The guy QLJaguar, or QLvsJaguar, or the reversed names, has a repository on this stuff, and there are a couple more around, which links are on one of my broken systems. So, there are some simple improvements suitable for TTL, without getting into sprites. One, is a guy that modified the chip to get over 100 interpolated colour pallet, and 16 colour mode. As for the Vectrex, just a very basic system, plus vector monitor, which could be emulated on a TV, but dacs left for a laser or vector monitor. It also had an early 3D headset with spinning colour wheel. But, there are various colour vector monitirm emulator, screen and overlay out there. They tend to set the colour by the intensity of the beam driver setting. This makes old games colour automatically, pretty well. The Vectrex was quiet a buzz, especially projected ( I used to set up magnifying freezer lens sheets and play it on the ceiling). Somebody is doing a new laser console privately, but hasn't posted for a while. I was going to do one decades back, but abandoned the original laser proposal, and got too sick to pursue the volumetric 3D project, or with a misc processor (or Arm) and produce a cartridge to go into the original. But, there is a pitrex cart from Australia now. You might be the first person to hear about the volumetric 3D version I wanted to do. It would have been a game changer for the community.
By the way, if you are looking at doing an Commodore 64. The designer of the vic chips had a proposal for an 80 column follow up version of the 64, which he presented to Jack Trameil that got knocked back (as Jack was pursuing the 264 series, which ultimately also sealed the fate of the Vic). It was short sighted, as an expanded compatible 64 without the latter weirdness of the 128, could have made the system more sellable for years, longer, and into the small business and retail market, where 64's were sometimes used. It really only needed 80 column text mode with programmable graphics preferably, 16 sprites (like the PC engine) with 4+ unique colours at 320+. That's double the data rate, or two banks of memory to do. So close to being a machine that could still be sold as a simple terminal, and productivity machine with geos gui. Now, the designer seems to be still around, pursued the design of the chip, but couldn't find funding where they were located. So, he might have full spec sheets for an upgraded 80 column vic2 chip. Which, I suspect, going on his vic 1 and vic 40 upgrade, might be mostly 80 columns, double graphic resolution modes, and more sprites, which would be little difference in circuitry to the Vic2, but double frequency (he did say they showed the vic 2 could do this, I saw recently, and its the same thing I have been suggesting to people) plus a refinement and doubling of existing sprite circuitry, but with an increase in collision detection, unless its similar to the scheme I previously had). What people don't realise, is once you reach a certain level you are adequate for a range of games, at a certain screen size. The PC Engine, or its super turbo graphics show one step above adequate, and are good. The Amiga was also in this range. You really needed 256 colour pallete for screen and sprites to maximise those sort of 2D games above the super turbo graphics, and maybe am ARM. 512 width graphics look corse on a big screen, but not chunky like 256 or 320. 640-768 is good to still preserve that retro corse look. 4 colours per sprite and character is adequate. 640 resolution is good. The 80 column 64 could have been good to this day as a games machine. The c65 disclaimer. Even though its blitter and spec seems like an 1983 technology. It was years later through different engineers, and might bare little resemblance to the rejected c64 by the designer of the vic chips, mentioned above.
I'll probably do a 68000 series first, i've been trying to decide which machine to test it with. The two main runners are the QL and the Mac. I'm not sure an Amiga can be done with through hole technology, although it can be done with an FPGA.
I know many people want to expand/extend the original machines, but i do worry about losing software compatibility, which is why i haven't designed my own instruction set. For example the commander x16 is an interesting expansion of these systems, but i think using a modern era FPGA for video feels like putting a brand new computerized, fuel injected engine into a classic car.
Another great video. In all my years it never occurred to me to parallel a latch with memory to make a simple readable register. It proves that it’s never too late to learn new tricks. I think it will come in handy in the macro scale 6502 system I’m working on, either in the high speed microcode ROM or the 6532 RIOT.
Excellent, it was going to be a pain to multiplex all the latch outputs. I tend to think of them as being an external mirror of the contents of some desired SRAM cells.
@DrMattRegan , that's how I would have done it without this trick. The funny thing is that I have used the software equivalent of this trick in the system I developed for my wife's business, using a downloaded copy of a database table for reads and writing changes in parallel. The penny never dropped to do the same thing in hardware
Ooh this is good stuff ♥
Glad you liked it!
Brilliant series!!! Love to see how you approach each part of this!
@@GadgetUK164 glad you like it 👍
Genuinely excited when I saw this in my feed, watching now ❤
Hope you enjoy it!
@@DrMattRegan Yeah im watching to 🤗
The vic20 has been my very First computer. I am an electronic engineer and I enjoy these videos a lot! Thank you
Great to hear! I think these machines started many a career.
Mine too, after the disastrous Atari VCS basic cartridge (we await the TTL version of that one, as its a very finicky one to program, introducing potential compatability issues 😢). Seeing what they doing with it these days, as far as graphics tricks, and games, I wish I hadn't upgraded so quickly to the Commodore 64. Hmm, I just realised, what if they had made the Vic chip colour bus 8 bits, and put a second 5KB left over chip on it, acting as a 16 bit bus, which would be enough for 80 Columns, and maybe 2 or more colour attributes per character? Technically, you could do a 128KB Vic this way.
@@waynemorellini2110 I think the Commodore 64 pushed the limits of what text can be displayed with NTSC
@DrMattRegan From memory the Ntsc line can get a disappointing 426 pixels. The Atari could get was it 384, 360? At 640, it could still displayed, but would be very fuzzy. The c128 can actually display 640 over composit in monochrome, believe it or not. I had believed that it was supposed to be very low, in the range of vhs, but this is probably a common manufacturer limitation, by some standard. But with such a VIC, you would go s-video if you had something that could support that resolution, such as with the c128, or component, or scart, or commodore 1084 monitor or vga. Except for some smooth games, I think it would be aimed for business or productivity through a monitor.
Yes, there is a difference between colour and B/W with NTSC. The apple 2 can display B/W with a dot clock of 7.16 MHz, which gives a total of 454 pixels, of which 280 are active. I haven't tried it, but the Apple IIe can have a dot clock of 14.318 MHz in 80 column monochrome mode, so there are some composite monitors that will display it, but i don't know what it looks like on a NTSC TV.
I'm enjoying the series, Matt - Zik
Hey Zik, great to hear from you! Have you had a look at the Turing6502 series??
@@DrMattRegan I only discovered your channel recently and I'm working through the back catalog. By the way I'm doing a retrocomputing project of my own - recreating a VAX-11/780. But I still have a long way to go.
Sounds interesting. You should document it with videos as go along. Are you thinking of FPGAs or TTL?
Wow excellent
Thank you! Cheers!
First! For the algo! Thank you for the awesome series!
Glad you like them!
you wont make a little pcb on pcbway or jlc to make a little hand held portable VIC-20
Why is this sponsored and not just recommend? I'm already subbed to you!
@@alexandrustefanmiron7723 I usually pour the (little) money I make from RUclips back into spreading the reach of the videos, rather than keeping it. Thanks for the sub though.
Re your aside at 3:40 - the VIC buffers the bitmap internally, also there are several other stages, clocked by the two phases of the pixel cloc, before a pixel reaches the output stage. Then after that there is probably an additional delay because the output stage uses several inverters. I believe the sequence goes more or less like this - character / colour read (PHI1) - CPU access (PHI2) - bitmask read (PHI1) <- this stores whatever was on the data bus during PHI1 high in an 8-bit register - CPU access (PHI2) <- here, during the second half of the last pixel clock phase the VIC will copy the contents of the 8-bit register to another 8-bit shift register, which is then shifted during the other pixel clock transitions - PHI1 character / colour read for the next character, unless the previous character was the last one on the current row. During this phase the bit that was shifted in goes through 4 stages - at more or less the next PHI2 high transition the pixel will be output So I guess it is neither 1 or 2?
Interesting. I don’t think I articulated the question very well, but what I was wondering is whether (1) the bitmap data is loaded directly into the shift register and serialised, or (2) is it stored in another register first then transferred into the shift register to be serialised. This is the extra register I was talking about. So I think you are saying 2, With the my current design the serialised data goes through a couple more pipeline stages before it’s displayed. So it was more about when it’s loaded into the shift register.
Wonderful job explaining the workings! A couple of things I noticed... I see that the addresses for the VIA's are only partially decoded (same as in the actual VIC-20), so, for example, at address $9030 I'm thinking that both VIA's will try to respond and the result will be garbage. Is this an issue that should be considered? Second, and I have been caught by this one, I see you haven't incorporated the clock signal into the chip select for the RAM. Not doing this could cause random writes to the RAM which would be undesirable to say the least. The explanation of why this is necessary is shown by Ben Eater in this video: ruclips.net/video/i_wrxBdXTgM/видео.html (start around 22:00 if you don't want to watch the whole thing.) I'm thinking this would apply to this build as well but maybe that's in an upcoming video. Again, a wonderful video, can't wait for the next one!
Thanks for that. Yep, 9030 will cause a conflict, but i imagine that everyone who write software for the VIC-20 would avoid this. Technically someone may use this, so at least we'll act the same as the real machine. Well, spotted on the clock signal. On the prototype i do actually run the R/W signal through an OR gate with clockbar. I just forgot to update the schematic between revisions (which tends to happen when i'm rushing to get a video out before the weekend).
Very exciting!
Thanks for the feedback.
very ingenious solution for the video output! I did something similar but was somewhat lazy by using a dual port sram by idt to isolate the cpu access from the video raster generator.
Cool, thanks
Where would one find those older style keyboards that work directly with the Vic20/C64/Apple ][ ? Do you have a Perfboard video series on making one? I'm in a smaller island town in Canada so the famous USA swap meets are not an option.
Umm, this keyboard was from a non-functional VIC-20 i got on Ebay. There are still a few around.
My 6502 project has been stalled for so long, I may need to start from scratch.
Just pick up the soldering iron, it's fun when they work.
77 likes? Had I the ability, I'd give this video 50 likes myself! Extraordinarily satisfying!
Thanks for the feedback. It's pretty cool when you cut the CPU right back to it's simplest form. Things that seemed essential like ALUs, Program Counters etc, are to reduce the transistor count, but you can do with out them.
@@DrMattRegan So true! I also admire your clever use of an Arduino Nano and C to suss your hardware. It was an effort like that by Inmos that uncovered the Pentium's FPU bug. I'm afraid my debugging isn't nearly as thorough or sophisticated. I get a few competent results and declare my project done. :(
So etwas haben wir in den 80ern an einem Wochenende gebaut... vc20 und c64 ... war abenteuerlich aber eine geile Zeit
Cool, let us know more about it!
@@DrMattRegan looks like RUclips blocks my comment because of the lionk I posted ... btw. you are also using Wirewrap wires?
My squishy brain is sizzling.
@@Jerkwad152 enjoy the burn!