George Foot
George Foot
  • Видео 74
  • Просмотров 227 342
Debugging and Profiling 6502-based Computers
I wanted to demonstrate the process of debugging software and hardware faults in homebrew 6502 computer systems, using a cheap logic analyzer and the excellent 6502 Decoder software.
The logic analyzer is Cypress EZ-USB FX2LP. The fx2pipe and decoder software is here: github.com/hoglet67/6502Decoder
00:00 Intro
00:33 Example code to debug
02:38 Monitoring the circuit
03:38 Cypress EZ-USB FX2LP
06:24 Capturing data
08:00 Manual inspection
09:48 The 6502 Decoder
13:21 Diagnosing a software bug
15:07 Deeper investigations
17:11 Diagnosing hardware bugs
20:37 Faster clock speeds
24:49 Profiling your code
27:17 Conclusion
Просмотров: 1 669

Видео

Demos and Tests of my Fast 6502 System
Просмотров 2,9 тыс.Год назад
Here's a tour through some demos and test of my 6502-based system. The demos were intended to showcase its speed, but the flaw in that plan was not really being able to compare that against anything! Some of the demo code is available on github: Life - github.com/gfoot/life6502 Mandelbrot - github.com/gfoot/mandelbrot6502 Prime Sieve - github.com/gfoot/primesieve6502 00:00 Introduction 00:24 Li...
Fast PDIP 6502 computer explained
Просмотров 2,9 тыс.Год назад
Talking through the ideas behind my Fast PDIP 6502 Computer that currently runs at clock speeds up to 35MHz, including how the Clock Stretching circuit works. Hackaday.io page with schematics and more details: hackaday.io/project/192630-fast-pdip-6502-computer 6502.org forum thread with design discussion: forum.6502.org/viewtopic.php?f=4&t=7670 00:00 Intro 02:04 Typical 6502 architecture 03:21 ...
Using KiCad to design Breadboard Layouts
Просмотров 2,8 тыс.Год назад
A brief introduction to how I sometimes use KiCad's PCB layout tools to help with solderless breadboard layout planning. This is a great way to find a tidy layout, and ensure the thing you're building actually matches your schematic! (This segment was cut from another video as it's a bit of a digression, but I think makes sense standing on its own.)
Low Tech Serial Input with 6502
Просмотров 801Год назад
Let's extend the serial transmit circuit by adding a receive circuit, so we can also receive data from the PC! 00:00 Intro 02:04 Design overview 07:11 Detailed tour of schematic 20:30 Schematic errata 23:41 Writing test code 32:19 Code errata 33:34 Practical test 36:26 Outro
Serial output circuit connected to 6502 computer
Просмотров 1,1 тыс.Год назад
Let's take the low tech serial output circuit from my last video and hook it up to a new 6502 computer! Links to design of new computer: hackaday.io/project/192630-fast-pdip-6502-computer forum.6502.org/viewtopic.php?f=4&t=7670
Low Tech Serial Output
Просмотров 2,9 тыс.Год назад
Let's implement a low-tech TTL serial output circuit, to provide a simple and reliable debug output port for the homebrew 6502 computer. This avoids dependencies on complex circuits and ACIAs that require configuration, so that the CPU will be able to output debug data with just a couple of lines of code. If you're interested in Debug Innovations' TTL VGA Terminal, you can get schematics, gerbe...
800x600 SVGA Upgrade for 6502 Breadboard Computer
Просмотров 4 тыс.2 года назад
Upgrading from 640x480 to 800x600 should be just a change in clock frequnecy and timings - but it opened a real can of worms! Code here, in the 800x600 branch: github.com/gfoot/simplevga6502/tree/800x600 00:00 Intro 01:44 Hardware changes 02:51 Software changes 04:36 Stability issues 07:10 Conclusion
Loading Data from a Floppy Disk on a 6502
Просмотров 2,8 тыс.2 года назад
After last week's hardware upgrades, the Floppy Disk Controller circuit is ready to read proper "user data" from a floppy disk - so I've improved the software side of things to do just that. Schematics, code, etc are all on github at github.com/gfoot/floppydisk6502 Next time we might try adding a new circuit to enable writing to disks!
6502 reading bytes from a Floppy Disk Drive
Просмотров 3,5 тыс.2 года назад
Continuing where we left off last week, let's extend the CPU interface to allow reading clock and data bytes from the floppy disk! The code is in github at github.com/gfoot/floppydisc6502, commit 9c4a3ea corresponds to this video. 00:00 Intro 00:33 Schematics 02:39 Breadboarding 07:13 Connecting to existing FDC circuit 11:23 New code 20:18 Connecting to the 6502 computer 22:35 Running the test ...
Homebrew 6502 controlling a Floppy Disk Drive
Просмотров 4,6 тыс.2 года назад
Let's build a CPU interface to allow a 6502 homebrew computer to control a Floppy Disk Drive! Previously I made a simple read controller and hooked it up to an Arduino - this time we'll focus more on the drive control signals, for things like turning the motor on and stepping the heads. The code is in github at github.com/gfoot/floppydisc6502, commit 69aeaf7 corresponds to this video. 00:00 Int...
Testing my Floppy Disc reading circuit with an Arduino
Просмотров 4,4 тыс.2 года назад
Let's make some extensions to the floppy disc reading circuit from last time to reduce the load on the CPU and so make it more stable. 00:00 Intro 01:33 Floppy disc track format 03:51 How to detect Address Marks 05:33 Updating the circuit 09:44 Testing the Address Mark detector 16:57 Fixing a clock signal timing bug 19:36 Adding a byte clock output 22:47 Testing the byte clock using the Arduino...
Reading data from a Floppy Drive
Просмотров 8 тыс.2 года назад
Let's make a circuit to read actual data bytes from a floppy disc using an Arduino! This requires reconstructing the clock for the input data, and then separating the clock and data from the FM-encoded data stream. 00:00 Intro 00:15 FM data stream 02:16 Clock recovery circuit 04:52 Building and testing the clock recovery circuit 19:26 Clock/data separation of the FM data stream 30:40 Reading se...
Floppy Drives - How did they work?
Просмотров 12 тыс.2 года назад
Floppy Drives - How did they work?
What causes these weird artifacts on the BBC Micro's data bus?
Просмотров 1,6 тыс.3 года назад
What causes these weird artifacts on the BBC Micro's data bus?
VGA Sprites on a 6502 breadboard computer
Просмотров 11 тыс.3 года назад
VGA Sprites on a 6502 breadboard computer
How to display VGA text output using the SCN2674 on a breadboard
Просмотров 10 тыс.3 года назад
How to display VGA text output using the SCN2674 on a breadboard
Can the SCN2674 output a VGA signal?
Просмотров 8 тыс.3 года назад
Can the SCN2674 output a VGA signal?
How to analyse VGA circuit timing using a spreadsheet
Просмотров 1,8 тыс.3 года назад
How to analyse VGA circuit timing using a spreadsheet
Simple 6502 Breadboard VGA - 640x480 8-colour upgrade details
Просмотров 5 тыс.3 года назад
Simple 6502 Breadboard VGA - 640x480 8-colour upgrade details
Simple 6502 Breadboard VGA - 640x480 with 8 colours
Просмотров 2,4 тыс.3 года назад
Simple 6502 Breadboard VGA - 640x480 with 8 colours
VGA Bus Timing Issue Update
Просмотров 1,5 тыс.3 года назад
VGA Bus Timing Issue Update
Simple Breadboard VGA - 640x480 monochrome upgrade
Просмотров 4,2 тыс.3 года назад
Simple Breadboard VGA - 640x480 monochrome upgrade
Simple Breadboard VGA - 320x480 resolution upgrade
Просмотров 4,5 тыс.3 года назад
Simple Breadboard VGA - 320x480 resolution upgrade
Soft Power Switch with Overcurrent Protection
Просмотров 1,4 тыс.3 года назад
Soft Power Switch with Overcurrent Protection
Happy Pi Day! Circle drawing on a Ben Eater 6502
Просмотров 1,6 тыс.3 года назад
Happy Pi Day! Circle drawing on a Ben Eater 6502
Simple VGA for Ben Eater's 6502 - Increasing the resolution
Просмотров 11 тыс.3 года назад
Simple VGA for Ben Eater's 6502 - Increasing the resolution
Homebrew ARM2 #8a: ARM2 Assembly Deep Dive
Просмотров 9893 года назад
Homebrew ARM2 #8a: ARM2 Assembly Deep Dive
Homebrew ARM2 #11: RAM Preloading Progress Update
Просмотров 8933 года назад
Homebrew ARM2 #11: RAM Preloading Progress Update
Raspberry Pi Pico EEPROM Programmer - PicoPROM
Просмотров 8 тыс.3 года назад
Raspberry Pi Pico EEPROM Programmer - PicoPROM

Комментарии

  • @NealWendt-lp5vl
    @NealWendt-lp5vl 6 дней назад

    These are great videos. George is so cool at this stuff. Im building it along with him and want to see a series on writing to the floppy.

  • @shaunclarke94
    @shaunclarke94 14 дней назад

    What really surprises me is that the control signals are so basic and low level, and then the data is literally just a single pin in and out. So out of 36 conductors, only one carries your actual data. That's crazy.

  • @notsogreat123
    @notsogreat123 27 дней назад

    EEEEEEEEEEEEEEEEEEEEEEEEEEEE prom

  • @mrshodz
    @mrshodz 29 дней назад

    Extremely useful!

  • @mrshodz
    @mrshodz 29 дней назад

    Cool.

  • @wChris_
    @wChris_ Месяц назад

    BTW you can use CA2/CB2 as an additional output bit, by setting the specified bits in the Peripheral Control Register. Alternatively you can hook up the LCD directly to the CPUs databus including the R/W input. However you would need to decode part of the address space for the enable pin.

  • @avtuunainen
    @avtuunainen Месяц назад

    At 10:15 you wonder why the motor is like it is. It's not (just) so it can fit, but because maintaining constant angular velocity is critical for correct operation, and for that, increasing the moment of inertia is very useful, so anything that perturbs the speed of the disk has to do more work to achieve it. By spreading out the motor like that, it can use its own mass as a flywheel.

  • @seimela
    @seimela Месяц назад

    Debug why

  • @nicksmith4507
    @nicksmith4507 2 месяца назад

    Awesome and love the methodical explanation

  • @your-dad
    @your-dad 2 месяца назад

    I think you could fit everything on a single breadboard if you squeze a bit the TTL chips, i see a lot of space trough them!

  • @jamesross3939
    @jamesross3939 2 месяца назад

    Very cool indeed!

  • @inmaking2970
    @inmaking2970 2 месяца назад

    Can you please list all the components you used

  • @nya111222
    @nya111222 2 месяца назад

    Great

  • @James101
    @James101 3 месяца назад

    The 2 notches are strain relief so the disk does not bend at the window

  • @wiktordiy6033
    @wiktordiy6033 3 месяца назад

    Hi, are you planning to finnish the floppy controler by adding it's ability to write to floppy's?

  • @lovemadeinjapan
    @lovemadeinjapan 3 месяца назад

    What would hapen if you use UART to store data, instead of FM or MFM? That way you can use a simple microcontroller to read and write.

    • @GeorgeFoot
      @GeorgeFoot 3 месяца назад

      Somebody commented a while back that you can use a UART to decode MFM at least into an intermediate form that can be fully decoded in software, very interesting

  • @vitobelflores6510
    @vitobelflores6510 3 месяца назад

    Busco como conectar floppy drive 3" interno A externo vía puerto paralelo, like the backpack cdrom parallel port, No via usb!. I have Oldis Pc's only with Parallel port it doesnt have enought power for ISA cards with usb 1.1 ports or pci. The LS120 SuperDisk (ext) is an option but i 've a many 3"1/2 fdrives (int) to use like an externals. Idont want a zip's iomega, Help pls.

  • @uni-byte
    @uni-byte 3 месяца назад

    Brilliant mate!👍

  • @NealWendt-lp5vl
    @NealWendt-lp5vl 3 месяца назад

    Hi George, You have done a great job and I really appreciate all you have done. I am trying to use your circuits . I am going to review all your videos , circuits and software. I will probably use a z80 first then a 6502 bread board. I am currently using a fd55-gfr floppy and have the 74hc273 driving outputs to the drive . I just wanted to thank you for the effort you have put in.

  • @captainboing
    @captainboing 4 месяца назад

    excellent

  • @captainboing
    @captainboing 4 месяца назад

    🤣@12:02 Hungry?

  • @ratmadness4858
    @ratmadness4858 4 месяца назад

    James Sharman recommended this series.

  • @captainboing
    @captainboing 4 месяца назад

    @41:50 maybe "soft sectors"? The Amiga used an encoding which resulted in a special byte pair (0x4489) that could not be generated by the encoding so if that ever occurs in the data stream you know it is a sector start. There are other combinations which got used in some disk protection systems. When it read a track, it didn't have to wait for the start of a sector, it just dropped the heads and read an entire track into a buffer. The cpu then looked for the soft index word and used the blitter to move the two halves of the buffer.

  • @ngtester6215
    @ngtester6215 4 месяца назад

    Wouldn't it be easier to just use a data separator chip like WD9216 (for data & clock separated) .. and a controller chip like FD1793 ?! .. please make a video explaining a similar setup like that ;) .. Good work!

    • @lovemadeinjapan
      @lovemadeinjapan Месяц назад

      Do you know a similar chip to the WD9216?

    • @ngtester6215
      @ngtester6215 Месяц назад

      @@lovemadeinjapan .. I don't think there are any old similar ones like that.. but maybe you can google similar chips .. I know some newer FDC chips have built in data-separators instead ..

    • @lovemadeinjapan
      @lovemadeinjapan Месяц назад

      @@ngtester6215 Weird enough the all-in-ones are way more expensive than 765+9216.

  • @Mitchellclark-tv9fd
    @Mitchellclark-tv9fd 5 месяцев назад

    What are the part numbers for all of the gates used thanks in advance

  • @stevensherman-lw6hc
    @stevensherman-lw6hc 5 месяцев назад

    Super cool, plan on using your design as the basis for a sound card for the Minimal64x4

  • @doBobro
    @doBobro 6 месяцев назад

    Thank you for useful tips! I'm so happy I invested some time to learn KiCad basics. Now I have access to a huge library of symbols and footprints without detail sacrifice. Yes I have no nice stripboard background like in Fritzing or VeeCad or DIY layout creator. But it really doesn't matter. More over an ability to route only needed strips makes designs vastly more clear to work with and gives you nice zero-thinking points to cut strips on a real strip board.

  • @giamber_alves
    @giamber_alves 6 месяцев назад

    This memory code for all the characters you’ve wrote in the eprom, have you any idea where is it located in a modern computer?

  • @iamdarkyoshi
    @iamdarkyoshi 6 месяцев назад

    I feel like the c64's floppy drive solution was the exact opposite answer to "How can we build a cheap, fast, and simple to use floppy drive"

    • @tonyfremont
      @tonyfremont 5 месяцев назад

      They were just ahead of their time. Everything is a serial interface now: USB, SATA or PCI express.

  • @KkkKkk-re9il
    @KkkKkk-re9il 6 месяцев назад

    Hi! Awesome work! As for the random bugged lins in the read images: You're supposed to check the CRC and retry a read if it's incorrect. Its perfectly normal for reads (and writes) to fail randomly from time to time, depending on many factors. Also, where's is the next part? :-)

  •  6 месяцев назад

    You absolute legend! I couldn't get out my quadraverb eprom and i used your trick with gaffer tape. it came straight out! Cheers!!!!!

  • @ms-ex8em
    @ms-ex8em 7 месяцев назад

    i wonder why microsoft chose 1.44 mb and 1.2mb and 1.68 mb dmf for its floppy disc formats too? thanks.........

  • @ms-ex8em
    @ms-ex8em 7 месяцев назад

    why did Acorn choose 640k, 800k and 1.6 mb for its floppy disc capacities ?? thanks....................

  • @aydnsevincik1227
    @aydnsevincik1227 7 месяцев назад

    "Hello, I want to do something like this. I have an old system that only has floppy drive and parallel port outputs. Data is read and written using floppy disks. I want to disable the floppy drive, connect Arduino to that port, and use the system as if writing to a floppy disk to save the data to an SD card. Do you think something like this is possible?"

  • @AlanCanon2222
    @AlanCanon2222 7 месяцев назад

    I checked and almost all those primes are odd numbers, I could only find one that wasn't.

  • @ArnCiS96
    @ArnCiS96 7 месяцев назад

    Those sockets are for cpu cores?

  • @JakeTheCake254
    @JakeTheCake254 7 месяцев назад

    Hi George, I just watched all your 6502 based videos and think you've done the most amazing stuff I've ever seen with the 6502! Really impressive! In 2020 I got the Ben Eater kit along with the video card kit and ended up putting them together. I decided to take it all apart a few days ago and start fresh so I've been reviewing my assembly coding skills and browsing methodologies before going into creating my own design and eventually PCB. One thing that was a big flaw with the eater 6502 was not enough VRAM to display to the whole screen, since he used every (6502 sized) pixel for every memory address and having to pause the CPU to allow the video card to access VRAM. After watching all your videos and techniques I was amazed of what could be improved on, and I also came across how the NES did it using a PPU and only 2KB of VRAM, so now I have no idea where I should really start. My main goal is to have a 256x240 screen resolution just like the NES, sprite capability, 64 colors (or less if necessary) and maybe extra memory banks using the VIA if necessary. I think it would be cool to have a kernel like Wozmon on it that is interactive over serial, so I can interface a keyboard, and launch programs with some games I've developed, or use a midi interface to write/play some 8-BIT music. I think the hardest thing to sort out is the video interfacing, and sprites, and what would be the most sensible way of dealing with it. I would greatly appreciate your input. Thank you.

  • @gregfelice1969
    @gregfelice1969 7 месяцев назад

    Thank you, worked perfectly on my quadraverb gt eeprom replacement!!!

  • @dragonball.teorias
    @dragonball.teorias 8 месяцев назад

    It would be used to program SST49LF020

  • @monchytales6857
    @monchytales6857 8 месяцев назад

    lol click this video and you immediately mention the capacitance problem I commented on the last video I am 100% gonna build one of these for my 4 bit computer, I'll give you the credit for the design cause there's no way I could have thought of this

    • @GeorgeFoot
      @GeorgeFoot 8 месяцев назад

      I'd love to hear how it goes, good luck and do let me know!

    • @monchytales6857
      @monchytales6857 8 месяцев назад

      I absolutely will! it's design is inspired by the 6502, using many of the same kind of techniques it used but with only 16 instructions and 256 bytes of ram/rom. The ram boards are supposed to be only about 6 inches by 10 inches or so, each holding 1 page (16 nybbles) of memory, with 16 boards each controlled by a high and low address register, the rom is just going to be a series of traces with resistors at the 1s but they'll plug into the same slots as the dram so I wont need any special circuitry to read from them. it'll have an A register and a B register and all the store-load commands will operate only on the A register but it'll have a 'swap' instruction to exchange the A and B registers so I can load values into B by loading into A and swapping. this is why the register design is so complex, it has to handle being able to read, write, and swap between 2 of them. The rest is gonna just be a ripple carry adder, a rotate unit (for bit shifting) a not bus to invert all the bits in A register, and a or bus to or the bits in A and B, since I can string those together to make all the other logical operations in software. and of course the control circuitry, for jumps, branches, returns, and load and store. I'm testing all my logic designs in digital logic sim. @@GeorgeFoot

  • @monchytales6857
    @monchytales6857 8 месяцев назад

    mosfets are very sensitive to electric fields and circuit capacitance I'm fairly certain that the reason the LEDs stay on longer when you have the static memory on is because of the circuit capacitance which is generated with them on, this is also the reason that if you leave the static memory on long enough and refresh the dram that it lights up; the circuit has been slowly charging the wires with capacitance until they are saturated and this is enough to trigger the mosfets, this is a huge problem in ICs and alot of the design goes into preventing this sort of thing this is also the reason that the rows on the right drain faster; they're closer to the power supply and thus they drain from the ground/hot states, the rows to the left of them are maintained by the capacitance of the circuits to the right, it's fascinating how circuits can have such a dramatic effect on one another without being physically connected

    • @GeorgeFoot
      @GeorgeFoot 8 месяцев назад

      Yes this was very interesting, most of my work is pure digital but in this one with essentially floating gates the analogue effects were very significant and pretty much impossible to control on the solderless breadboard. But I was able to get it to run stably, and as I said, learned a lot from the journey!

  • @monchytales6857
    @monchytales6857 8 месяцев назад

    I found this video after I was trying to design my own ram, using only 4 bits would take me 110 transistors, I am fairly certain I over-engineered it lol

    • @GeorgeFoot
      @GeorgeFoot 8 месяцев назад

      Overengineering can be a good way to learn, at least that's my excuse!

  • @musharrofhossain3752
    @musharrofhossain3752 8 месяцев назад

    Can you get the complete circuit diagram so that I can understand what quality components are used at which place. Thanks

    • @GeorgeFoot
      @GeorgeFoot 8 месяцев назад

      I'm not sure if I linked it in the description but I made a hackaday page and put the schematic there: cdn.hackaday.io/images/5657961604852961585.png Good luck!

    • @GeorgeFoot
      @GeorgeFoot 8 месяцев назад

      And here's the link to the hackaday.io page: hackaday.io/project/175774-homebrew-dynamic-ram-with-discrete-mosfets

  • @mheermance
    @mheermance 9 месяцев назад

    Did you used fixed point or floating point to do the calculations?

    • @GeorgeFoot
      @GeorgeFoot 8 месяцев назад

      I used fixed point, I think it was 24 bits. I made a combined routine to calculate a*a, a*b, and b*b. I think I linked the source code in the video description, it is on my github

    • @mheermance
      @mheermance 8 месяцев назад

      @@GeorgeFoot Thanks. I will take a look. I did 16 bits on mine which is probably why yours has more detail.

  • @TmackSD184
    @TmackSD184 9 месяцев назад

    I want to see part 2

  • @renakunisaki
    @renakunisaki 9 месяцев назад

    Very cool that you show the mistakes and failure modes so that we can learn to recognize them as well.

  • @hsittefchannel8911
    @hsittefchannel8911 10 месяцев назад

    Can you make a video on how to use a 82C450 VGA Graphics Controller instead of all thoes chips please 🙏

  • @manuellueilwitz
    @manuellueilwitz 11 месяцев назад

    😀 "Promo sm"

  • @Felipe77646
    @Felipe77646 11 месяцев назад

    wow i didnt know the 6502 can run windows

    • @snorman1911
      @snorman1911 3 месяца назад

      It's a serial port connection.

  • @PhilR0gers
    @PhilR0gers Год назад

    This is useful information, and I like the gradual build-up of resolution. I'm currently building a near clone of my first computer from 1979, the Microtan 65, but with a W65c02 clocked a lot faster than the original, which was 750kHz. And of course, I'm using better RAM and EEPROM.