Introduction ============ This repository contains the original source code for Acorn Cmos Basic. The structure of the repository is as follows: original_sources.zip - a copy of the original Cmos Basic source files, with the original <cr> line endings. dfs/ - disk images in DFS (ssd and dsd) formats; these are generated by the make_disk_images.sh script which uses SWEH's Perl mmb_utils. src/ - the Cmos Basic source files (with unix line endings) tools/ - binaries for MASM (both DFS and non-DFS versions) Assembling the OS Source Code ============================= An "ordinary" 6502 Co Processor is needed to assemble the Cmos Basic sources. The source code is in Acorn MASM format, and a copy of the "Normal" version of MASM is included in the disk images. Using DFS: ========== (or MMFS) The disk organization on DFS involves two disk images: - drive 0: Tools (MASM) and Working files - drive 2: Cmos Basic sources In the dfs/ directory are following versions: Two seperate single sided disk images: ssd/AcornCmosBasic_disk0.ssd ssd/AcornCmosBasic_disk2.ssd One double-sided disk image: dsd/AcornCmosBasic_disk02.dsd Transfer one of these disk image sets onto your physical hardware. To assemble the sources, you just need to boot disk 0 (it contains an appropriate !BOOT file) The Basic binaries are generated on DRIVE 0 (two files): $.CBasObj (this has a MD5SUM of 4b484a2011596dca83167a1feffbd6d7) Notes ===== So, exactly which version of BBC Basic is this? The copyright string is (C) 1984 and the Version is 04. This matches Basic 4 from the Master MOS 3.20 Mega ROM. However, the binary is different. If you compare the two binaries, the difference turns out to be minor: a one-line addition to CBAS04 (line 469): SMULB ASL IACCL ROL IACCM BCS NOTGO ;; <<<<<<<<<<< Added after Basic 4 released LDA WORK+8 ORA WORK+9 BNE SMULA ASSERT :MSB: SMULA = :MSB: . STY IACCL STX IACCM RTS NOTGO BRK = &0A = "Bad ",TDIM BRK This looks like the DIM fix talked about here: http://beebwiki.mdfs.net/DIM_Basic432 If you comment this line out, then the generated binary matches Basic 4. So this effectively is the source to Basic 4. Acknowledgements: ================= Many thanks to Paul Fellows (ex Acornsoft) for discovering these long-lost sources and making them available to the Acorn community.