I haven’t written much about debugging yet, but tools to help debug my code have been essential to my system development. I started out with the simple Ben Eater 6502 build where debugging consisted of repeating a cycle of write code, assemble and burn it to an EEPROM, and test the system for proper operation, …
65816: Coding – To Optimize or Not
As I was working on my 32-bit floating-point package (GitHub) I noticed some opportunities to optimize the code. For example, scale10, used while converting strings into floating-point values, uses the package’s 32-bit routines to multiply and divide by 10. For example, to scale up by 10 we load 10 to the floating-point stack and call …
65816: 32-bit Floating-point Package Available
I wrote in my previous post about testing my 32-bit floating-point package on a Mandelbrot plot. Paying forward Marco’s original 128-bit package contribution, I’ve made my 32-bit package available on my GitHub. It’s still a work in progress with limited functionality. But it’s still enough to handle Mandelbrot which was my original goal. Function Stack …
Continue reading “65816: 32-bit Floating-point Package Available”
65816: Floating Point – Finding a Balance Between Speed and Precision
I first got interested in the 65816 because of floating=point support. I had just finished porting Cosmic Conquest, an old text-based strategy game, to my 6502 system and was looking for other old games to port. I remembered an old text-based Star Trek game but on tracking it down discovered that it used floating point. …
Continue reading “65816: Floating Point – Finding a Balance Between Speed and Precision”
65816 Emulator: Threading in Python Very Slow
I haven’t talked much about my 65816 emulator but it’s been essential in porting my 6502 Forth over to my new 65816 build. The slowdown I mentioned in my post 6502: Coding – Just because it works doesn’t mean it’s correct though was becoming annoying. Starting up my Forth operating system in the emulator took …
Continue reading “65816 Emulator: Threading in Python Very Slow”
65816: Build 4 – Revisiting PLD Coding
In a long postscript to 65816: Build 4 – Adding Expanded RAM I discussed some alternatives I tried to achieve the following memory map in my ATF22V10C PLD. There’s nothing magical about this memory map, it’s just something I wanted to try, for reasons I’ll discuss in a operating system post if I ever get …
65816: Build 4 – Adding Expanded RAM
I’ve mentioned previously having trouble getting WINCUPL to create the following memory map: I figured that since I was expanding ROM, I might as well give myself a full 32k of RAM. WINCUPL didn’t like that though, giving me an error that it didn’t have enough pterms for my ROM_CS pin. I took the easy …
65816: Build 4 – Current Status – 7/15/2022
Build 4 – Current Specification As of 7/15/2022, Build 4 has tested successfully with: Both 65C02 and 65C816 up to 10 MHz where I started to get display glitches 524k memory. Current configuration: ~457k RAM ($0000-$F7FF, $20000-$7FFFF), 55 ns ~67k ROM ($F800-$1FEFF), 70 ns 256 bytes I/O ($1FF00-$1FFFF) 65C22 VIA ($1FF10, shift register dedicated to …
Continue reading “65816: Build 4 – Current Status – 7/15/2022”
65816: Build 4 – Troubleshooting 4 – Testing a Different Address Decoder
Off and on throughout my Build 4 troubleshooting journey I kept wondering if the PLD was the underlying issue. While a PLD is handy for making after the fact changes to your build’s memory map, it also has a handy feature I hadn’t thought of before. Since the PLD brings control input and output signals …
Continue reading “65816: Build 4 – Troubleshooting 4 – Testing a Different Address Decoder”
65816: Troubleshooting 3 – Revisiting the Build 4 Layout
I left Build 4 successfully running with the 65816 and 55 ns RAM. But it failed with memory corruption when I used 12 ns RAM. The problem was that occasionally during RAM writes, some address signals would change about 2 ns before the write enable signal would rise. This would result in a write to …
Continue reading “65816: Troubleshooting 3 – Revisiting the Build 4 Layout”