These ROMs (esp. version 1.40) have not been tested very well. They surely contain bugs. You are warned.
The ROM images contain copyrighted code - i.e. they are patched C64 ROMs, copyrighted by CBM (or whatever remains of this company).
To assemble the source "BS 1.40.S89,P" (C64 BASIC program) yourself, you have to have my @ASS assembler at $7000 in memory (or change the SYS statements in the source). In line 11090 you can change the address of the UART in memory. I have it mapped above the SID, at $d600. In line 12600 you can change the address of the TPI (Tri-Port-Interface) for the Commodore IEEE488 interface. In line 26085 you can change the mapping of the IEC devices to parallel and serial bus. A 0 means parallel IEEE488 bus, a 1 means serial IEC bus. Bit 0 is for device 4, bit 1 for device 5, and so on till bit 6 for device 10. Bit 7 must here be one; device 11 and above are always on the serial bus. If you don't have an IEEE488 interface, leave TPI at $d600 and change the map value to $ff (i.e. all to serial bus). You must have an UART in your computer to use this ROM!
The same applies for the version "BS 1.33.S88,P", which has the ACIA routines instead of the UART routines only.
You can change the mapping of the IEC devices by POKE-ing a new MAP value (as described above) to $299.
All files with a ".S??" at the end are source files for my selfwritten 6502 Assembler for the C64 (see directory "assembler"). They can be edited as a BASIC file and a RUN makes them assemble, if you have my assembler in the computer's memory (at $7000).
"BS 1.*" is a 'new' operating system for the C64 - actually it patches the original one and has many more features. 1) I have an ACIA 6551 at $d600 (above the SID) in my C64, so the normal RS232 routines have been exchanged by the 6551 ones. note that the 6551 has a bug if you use hardware handshake, disabling the outgoing of RTS/CTS also disables the receiver! You may loose characters and are warned 2) in the now plenty of free space there is a Function-Key setting, and a Disk-Command-Line interface. You can load/save a programm in the directory (without removing "PRG") and standard file for load/save/shift-run-stop is IEC device 8. 3) I have an additional CBM IEEE488 (the parallel one) Interface on the expansion port of my C64. Unfortunately the Cartridge ROM copied itself to somewhere in $cxxx and completely disabled the serial bus. No use for many programms and if you have two drives - one parallel and one serial. So I removed the tape routines and replaced them with the IEEE488 routines. Now you can choose by a POKE (to ????). The IEEE488 routines don't look that well, I reassembled them automatically (see another of my tools) from the ROM (No not, copying copyrighted code ;-). Actually, this only works with the Commodore expansion, so everyone who has them should have the right to use this ROM) In the sources in 26080 the default value for the map is loaded, change it to what you want, a one means serial, zero is parallel, Bit 0 is Device 4, Bit 7 is device 10, Bit 8 is used to store the actual state. 4) You can now use decimals like "$12ab" in hex, "&234" in octal and "%001010" in binary format. Some special keys for the screen editor have been added (Ctrl-Insert, Ctrl-Home and Ctrl- Crsr-Right) 5) This one has some scroll options (try CTRL and CBM keys in combination), a Hardcopy-routine (? as far as I see from the sources, my C64 is packed) and a screen-blanker? This description is for the latest version, BS 1.22.S41 is only number 1) and 2). BS 1.25.S03 is a reengineering from 1.32, it only has ACIA routines, F-keys, hex/octal/binariy ints, the @-Disk commands but no tape. especially for a friend of mine who doesn't have the IEEE488. BS 1.32.S63 has 1) to 4) BS 1.33.S88 has all BS 1.40.S89 has all except 1, but it has serial line routines for a 16550A UART (with FIFO) instead. A ROM image for 1.31, 1.32 and 1.40 is included. The ROM images have the UART/ACIA at $d600 and the TPI at $df00.