Soft-Patching C64 ROMs for Benchmark BASIC: 6510 Assembly Code Walkthrough

8-Bit Show And Tell
8-Bit Show And Tell
8.9 هزار بار بازدید - هفته قبل - Today we'll look through the
Today we'll look through the Commodore 64 6510 assembly language source of the Benchmark BASIC utility. Even if you have no interest in the benchmarking aspects, we'll cover a wide variety of development techniques, including: use of the Turbo Macro Pro assembler, soft-patching the C64 ROMs, fixing the ?OUT OF MEMORY error, great resources for understanding the BASIC and KERNAL codebase, how location 1's memory control really works, how to use BASIC's floating point math routines, and even more. To support 8-Bit Show And Tell: Become a patron: https://patreon.com/8BitShowAndTell One-time donation: https://paypal.me/8BitShowAndTell 2nd channel: https://www.seevid.ir/fa/result?ytch=UCAgWzEh5c8391eJnELDy9OA Download the Benchmark BASIC .d64 (see instructions below, and in video): https://8bitshowandtell.com/downloads/bbasic.d64 Links mentioned in video: Original Benchmark BASIC video: https://www.seevid.ir/fa/w/B-Cky_2l11U Block Transfer fix: https://www.seevid.ir/fa/w/dG_oZV6s0Zg PageTable: https://www.pagetable.com/c64ref/c64disasm/ Tool Kit video: https://www.seevid.ir/fa/w/O8DRGqIZpPg CodeBase: https://codebase64.org/doku.php?id=base:kernal_floating_point_mathematics Transactor Anthology: https://archive.org/details/transactor-anthology/ Greg's C64 OS 6510 port article: https://c64os.com/post/6510procport Advanced machine language: https://archive.org/details/The_Advanced_Machine_Language_Book_for_the_Commodore_64/ TI$ video: https://www.seevid.ir/fa/w/VkabHdR15xs To use: mount/attach the .d64 image LOAD"BENCHMARK BASIC",8,1 SYS 49152 to start STOP+RESTORE keys to disable To load the source code (requires REU): LOAD"TMP+REU",8,1 SYS 32768 to view disk directory: [back arrow] * to load: [back arrow] L file name: bb33 (or whatever latest filename is on disk) cursor keys to navigate source file [back arrow] 3 press S to start The REU is required to assemble to RAM at $C000 (where Benchmark BASIC lives) because Turbo Macro Pro also uses that memory range. But if you don't have access to an REU, a workaround is to assemble to disk with [back arrow] 5, and then give a filename. Once assembly is complete, you can reset the computer, load the object code with ,8,1 and SYS 49152 to start it. Index: https://www.seevid.ir/fa/w/vJQNulZj7AQ Recap about Benchmark BASIC use https://www.seevid.ir/fa/w/vJQNulZj7AQ How to load the source in Turbo Macro Pro https://www.seevid.ir/fa/w/vJQNulZj7AQ About the $C000 origin, and why REU https://www.seevid.ir/fa/w/vJQNulZj7AQ SEI: Set Interrupt Disable https://www.seevid.ir/fa/w/vJQNulZj7AQ ?OUT OF MEMORY ERROR fix https://www.seevid.ir/fa/w/vJQNulZj7AQ ROM copy routine https://www.seevid.ir/fa/w/vJQNulZj7AQ Modify READY. prompt https://www.seevid.ir/fa/w/vJQNulZj7AQ Resources: PageTable.com and Dan Heeb's Tool Kit books https://www.seevid.ir/fa/w/vJQNulZj7AQ Patching RUN https://www.seevid.ir/fa/w/vJQNulZj7AQ Location 1: Switching out the ROMs https://www.seevid.ir/fa/w/vJQNulZj7AQ When RUN is typed... more patching https://www.seevid.ir/fa/w/vJQNulZj7AQ Jiffy Clock reset, handing control back https://www.seevid.ir/fa/w/vJQNulZj7AQ Just scrolling once, the wonders of C='s screen editor https://www.seevid.ir/fa/w/vJQNulZj7AQ Final cleanup https://www.seevid.ir/fa/w/vJQNulZj7AQ About BASIC's floating-point routines https://www.seevid.ir/fa/w/vJQNulZj7AQ Stashing, printing, converting, dividing floating points https://www.seevid.ir/fa/w/vJQNulZj7AQ ENDing https://www.seevid.ir/fa/w/vJQNulZj7AQ Conclusion, thanks!
هفته قبل در تاریخ 1403/06/20 منتشر شده است.
8,931 بـار بازدید شده
... بیشتر