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”
65816: Build 4 Troubleshooting 2 – Memory Corruption
I worked on the Build 4 modifications over several weeks, partly because I was just playing around with what I had on hand when I started and partly getting sidetracked looking into why things happen instead of just getting on with the build. In this post I discuss troubleshooting the memory corruption issues I found. …
Continue reading “65816: Build 4 Troubleshooting 2 – Memory Corruption”
65816: Build 4 Troubleshooting 1 – It’s the PLD, or is it?
I worked on the Build 4 modifications over several weeks, partly because I was just playing around with what I had on hand when I started and partly getting sidetracked looking into why things happen instead of just getting on with the build. In this post I discuss one of those side investigations regarding the …
Continue reading “65816: Build 4 Troubleshooting 1 – It’s the PLD, or is it?”
65816: Modifying Build 4 as a 65816 Testbed
I worked on the Build 4 modifications over several weeks, partly because I was just playing around with what I had on hand when I started and partly getting sidetracked looking into why things happen instead of just getting on with the build. In this post, I discuss modifying Build 4 in more detail. In …
Continue reading “65816: Modifying Build 4 as a 65816 Testbed”
6502/65816: Running a 6502 build with a 65816
I had just finished building and testing my fourth 6502 build, a barebones testbed for my new PLD based address decoder. With my PLD successfully tested, the build didn’t really have much use anymore, except testing new PLD designs in the future. Given that it was barebones I figured it would be fun to see …
Continue reading “6502/65816: Running a 6502 build with a 65816”
6502: Coding – Just because it works doesn’t mean it’s correct
I ran into an interesting problem the other day trying to upgrade my 6502 build 4 to work with the 65816. I plan to write more on this in another post, but after just one minor change I got build 4 with a 65816 to almost startup my 6502-based Forth operating system. For some reason, …
Continue reading “6502: Coding – Just because it works doesn’t mean it’s correct”
6502: My Fourth Build – Testing the New Programmable Logic Device
I completed my fourth 6502 build the other day. It’s a barebones build, mainly intended to test my new PLD-based address decoding/interrupt request design. I didn’t need serial or keyboard support to test the PLD so haven’t included quite a bit of the I/O support that I had in build 3. I’m thinking that I’ll …
Continue reading “6502: My Fourth Build – Testing the New Programmable Logic Device”