Soft-Patching C64 ROMs for Benchmark BASIC: 6510 Assembly Code Walkthrough
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
بـار بازدید شده