https://www.pagetable.com/?p=1518 Skip to content pagetable.com Some Assembly Required [ ] Search Menu * About * Search Commodore's Assemblers: Overview 2021-05-09 by Michael Steil Commodore used 5 different assemblers, most of them in-house tools, to build the ROMs for their Computers like the PET, the C64 and the C128. Nevertheless, all Commodore source files, from 1975 to 1990, share a common format and use the same assembly directives. This series of articles describes each of these assemblers. Year Company Assembler Platform Encoding 1975 MOS 6502 GE, NCSS time-sharing, various (upper Cross-Assembler ... case) 1975 MOS Resident MDT650, KIM-1, PET, ASCII (upper Assembler C64, CBM2, TED, C128 case, CR) 1984 BSO CR6502/11 VAX ASCII (mixed case, CRLF) 1986 Commodore HCD65 C128 PETSCII (mixed case, CR) 1989 Commodore 6502 ASM MS-DOS ASCII (mixed case, LF/CRLF) Series Overview * Part 0: Overview - this article * Part 1: MOS Cross-Assembler [coming soon] * Part 2: MOS Resident Assembler [coming soon] * Part 3: BSO CR6502/11 [coming soon] * Part 4: HCD65 [coming soon] * Part 5: Commodore 6502 ASM [coming soon] Cross-Assembler and Resident Assembler In late 1975, MOS Technology, Inc. introduced the 6502 CPU and in 1976, they released the KIM-1, a demonstration/development platform for the 6502. Commodore bought MOS in November 1976, and the 6502 and the KIM-1 became Commodore products. MOS also developed two assemblers for the 6502: * The "Cross-Assembler" (1975), available for various mainframes and minicomputers. * The "Resident Assembler" (1975), running on 6502 systems. It was ported to all Commodore 8-bit computers. The C64 version was sold as the "C64 Macro Assembler" in 1982. Both assemblers were compatible in that they understood the same source format, with the same math features and the same directives and options. Read more: Commodore's Assemblers: Part 1: MOS Cross-Assembler [coming soon] Read more: Commodore's Assemblers: Part 2: MOS Resident Assembler [coming soon] BSO CR6502/11 (VAX) In mid-1984, Commodore switched to "CR6502/11" by the company Boston Systems Office (BSO), a cross-assembler running on VAX/VMS systems that was highly compatible to the MOS assemblers, but more advanced. Read more: Commodore's Assemblers: Part 3: BSO [coming soon] HCD65 (C128) In 1986, Commodore wrote a new assembler named "HCD65" for the C128 that aimed at full compatibility with the BSO assembler. They sold it as part of the Commodore 128 Developer's Package in 1987. In 1989, as Commodore worked on the ill-fated C65, they added support for the extended 65CE02/4510 instruction set. Read more: Commodore's Assemblers: Part 4: HCD65 [coming soon] Commodore 6502 ASM (MS-DOS) Also in 1989, and also for the C65 project, they wrote a new assembler for MS-DOS from scratch to replace the BSO one on VAX/VMS. It was supposed to be fully backwards-compatible and support the 65CE02/4510 instruction set from the start. Read more: Commodore's Assemblers: Part 5: Commodore 6502 ASM [coming soon] Others There are two more assemblers that were used to develop the ROMs of Commodore computers that don't really count as in-house tools: MACRO-10 (PDP-10) All Commodore 8-bit computers shipped with a version of Microsoft BASIC. Microsoft had used a PDP-10 mainframe for cross-developing the BASIC interpreter. Instead of writing a cross-assembler from scratch, they reused the MACRO-10 assembler that came with the PDP-10 and defined a set of macros that emitted 6502 opcodes. The article Microsoft BASIC for 6502 Original Source Code [1978] has more information. For the first two versions of the PET ROM, Microsoft delivered the BASIC binary to Commodore according to Commodore's specifications. After discovering the Bill Gates easter egg in BASIC V2, Commodore demanded the BASIC source, adapted it to their own assemblers and built it themselves - so Microsoft's development tools were never used by Commodore. Merlin 128 (C128) The Merlin 128 Macro Assembler by Glen Bredon was a commercial assembler for the C128. It was used by Dennis Jarvis while he worked on the DOS of the Commodore 65. Jarvis had used Merlin for his personal projects before, and it had become the tool of his choice. He started out with the source of the CBM 8250 disk drive ROM, converted it from Commodore's format to Merlin (PETSCII) format, and developed on top of it. The 65CE02/4510 extensions were used through a set of macros. Towards the end of the project, the C65 DOS code was ported from Merlin to the MS-DOS-based Commodore 6502 ASM. Categories 6502, Commodore Post navigation Reverse-Engineered geoWrite 2.1 for C64 Source Code Leave a Comment Cancel reply [ ] [ ] [ ] [ ] [ ] [ ] [ ] Comment[ ] Name[ ] Email [ ] Website [ ] [Post Comment] Twitter: @pagetable Mastodon: @pagetable@mastodon.social Categories 6502 Amiga Apple Archeology BASIC Bildschirmtext C64 C128 Commodore Commodore Peripheral Bus Digital Video DOS Final Cartridge III Floppy Disks Game Boy GEOS GitHub Hacks Hardware KERNAL Literature Operating Systems PET Presentation Puzzle SCUMM Security Tapes Teardown TED Tricks Trivia Uncategorized VIC-20 Virtualization Whines X16 x86 Xbox github Archives Archives [Select Month ] Meta * Log in * Entries RSS * Comments RSS * WordPress.org (c) 2021 pagetable.com * Powered by GeneratePress