Editor Version ×
Standard

1.Easy to use and quick to get started

2.The process supports design scales of 300 devices or 1000 pads

3.Supports simple circuit simulation

4.For students, teachers, creators

Profession

1.Brand new interactions and interfaces

2.Smooth support for design sizes of over 5,000 devices or 10,000 pads

3.More rigorous design constraints, more standardized processes

4.For enterprises, more professional users

Ongoing

STD Acorn BBC Master Compact 128K system ROM

Acorn BBC Master Compact 128K system ROM

Project tags

License

MIT License

License: MIT License

Mode:

Mode

Editors' pick

Editors' pick

  • 972
  • 0
  • 1
Update time: 2024-09-19 11:14:52
Creation time: 2023-08-01 09:15:29
Description

Description

# Acorn BBC Master Compact 128K system ROM The Acorn BBC Master Compact MOS ROM *IC49* is by default a 64Kbyte ROM (27512 ROM IC), but if putting the jumper *PL12* on the *south* position a 128Kbyte IC can be put there. This PCB project is a DIP-28 adaptor to place two 27512 EEPROMs instead of a single 27C010 into the system socket. ## Quick start * Ensure to program the *PROMs like in the section [How to program the system and non-system ROMs for this PCB design](#How-to-program-the-system-and-non-system-ROMs-for-this-PCB-design) in this file * Ensure that the jumper *PL12* is set to the *south* position in the master compact mother board (non-factory configuration) * Issue the command **ROMS* on the Master Compact and ensure that the programmed *ROM image*s are present in ROM space banks 9 to C. ``` > *ROMS ROM F UTILS 10 ROM E BASIC 40 ROM D ACORN ADFS 10 ROM C ? <------------ HERE ROM B ? <------------ HERE ROM A ? <------------ HERE ROM 9 ? <------------ HERE ROM 8 ? RAM 7 ? RAM 6 ? RAM 5 ? RAM 4 ? ROM 3 ? ROM 2 ? ROM 1 ? ROM 0 ? ``` ## The system ROM socket *IC49* Unfortunately the 128Kbyte/1Mbyte IC (27C010) is a DIP-32 IC, but the socket on the Master Compact is a DIP-28 one. I couldn't find any 1Mbyte parallel EEPROM IC that fits on a DIP-28 socket, so I guess that at Acorn they probably had in mind to use a mask ROM. It is possible to build a DIP-28 to DIP-32 adapter to fit a 27C010 EPROM in the *IC49* system ROM socket like in the following picture: \ ![Adaptor to enable 32-PIN EPROM to be used in BBC Master](https://mdfs.net/Info/Comp/BBC/SROMs/28to32.gif) Only 7 ROM space banks (9 to F) are assigned to the *IC49* ROM despite the 27512 EPROM can contain up to 4 16Kbyte ROM images because the MOS ROM isn't showed as bank 10. Only bank switchable ROMs are shown by the **ROM* command. ``` > *ROMS ROM F UTILS 10 <----------- IC49 socket ROM E BASIC 40 <----------- IC49 socket ROM D ACORN ADFS 10 <------ IC49 socket ROM C ? <------------------ IC49 socket with PL12 on south ROM B ? <------------------ IC49 socket with PL12 on south ROM A ? <------------------ IC49 socket with PL12 on south ROM 9 ? <------------------ IC49 socket with PL12 on south ROM 8 ? RAM 7 ? RAM 6 ? RAM 5 ? RAM 4 ? ROM 3 ? ROM 2 ? ROM 1 ? ROM 0 ? ``` ### *PL12* jumper behaviour explanation The MOS ROM is always selected (*CS* PIN set *low*) and has the *OE* PIN set to *low* if *PL12* is on the *north* position and a 27512 ROM IC is present. Otherwise what should have been a 27C010 IC will not have an *OE* PIN and in place of it there will be the *A16* PIN with *PL12* set on the *south* position. ## How to program the system and non-system ROMs for this PCB design The system ROM must contain the `MOS` ROM in its top partition `0x00000000-0x00003FFF` and the non-system ROM must contain `DFS/ADFS`, `BASIC` and `UTILS` ROMs in this exact order in its bottom three paritions respectively in `0x00004000-0x00007FFF`, `0x00008000-0x0000BFFF` and `0x0000C000-0x0000FFFF`. More specifically: \ For the system ROM ``` 0x00000000-0x00003FFF corresponds to no ROM slot and must contain MOS 0x00004000-0x00007FFF corresponds to ROM 9 0x00008000-0x0000BFFF corresponds to ROM A 0x0000C000-0x0000FFFF corresponds to ROM B ``` For the non-system ROM ``` 0x00000000-0x00003FFF corresponds to ROM C 0x00004000-0x00007FFF corresponds to ROM D and must contain DFS/ADFS 0x00008000-0x0000BFFF corresponds to ROM E and must contain BASIC 0x0000C000-0x0000FFFF corresponds to ROM F and must contain UTILS ``` The `*ROMS` command will not list the `MOS` ROM and will list the remaining ones starting from the one at the bottom of the memory from the non-system ROM listed as `ROM F`, through the one at the top of the system ROM listed as `ROM 9`. \ This memory layout is basically the same that we would have had if we were using a `27C010` EPROM because the two `27512` are "emulating" a single `27C010`. \ The system will not boot at all if at least the `MOS` and `UTILS` ROMs aren't palced at the right places. ### GitHub tool to merge multple ROM images into a single file The following GitHub project can be used to merge 4 ROM images into a single one that can be programmed into a single 27128 EPROM IC \ [github.com - ROM_images_merger](https://github.com/DanCasterIt/ROM_images_merger) \ A Windows x86 (32-bit) and Apple Silicon executable file is pushed into the repository so that the program can be runt without compiling it. Usage example to generate the ROM images for the system and non-system ROMs ready to be programmed: ``` $ ./ROM_image_generator Internet_pc128s_rom/OS51.ROM KERMROM basiced EDITROM Input the memory size in bytes. (0 for 65536): 0 Input the number of equally sized partitions. (0 for 4): 0 Input if to fill blank partitions with ones (1) or zeros (0): 0 Found 4 files. Choose where to place them. partition 0 @ 0x00000000-0x00003FFF filled with file: Internet_pc128s_rom/OS51.ROM partition 1 @ 0x00004000-0x00007FFF filled with file: KERMROM partition 2 @ 0x00008000-0x0000BFFF filled with file: basiced partition 3 @ 0x0000C000-0x0000FFFF filled with file: EDITROM Apply changes? (y or n): y Writing "ROM_image.bin"... $ mv ROM_image.bin ROM_imageA.bin $ ./ROM_image_generator DFSimage Internet_pc128s_rom/ADFS210.ROM Internet_pc128s_rom/BASIC48.ROM Internet_pc128s_rom/UTILS.ROM Input the memory size in bytes. (0 for 65536): 0 Input the number of equally sized partitions. (0 for 4): 0 Input if to fill blank partitions with ones (1) or zeros (0): 0 Found 4 files. Choose where to place them. partition 0 @ 0x00000000-0x00003FFF filled with file: DFSimage partition 1 @ 0x00004000-0x00007FFF filled with file: Internet_pc128s_rom/ADFS210.ROM partition 2 @ 0x00008000-0x0000BFFF filled with file: Internet_pc128s_rom/BASIC48.ROM partition 3 @ 0x0000C000-0x0000FFFF filled with file: Internet_pc128s_rom/UTILS.ROM Apply changes? (y or n): y Writing "ROM_image.bin"... $ mv ROM_image.bin ROM_imageB.bin ``` where `ROM_imageA.bin` goes to the system ROM socket and `ROM_imageB.bin` goes into the non-system ROM one. \ Then if using a TL866II+ programmer with the `minipro` command line tool and a W27C512 EEPROM, the immage can be flashed with the commands ```bash $ minipro -s -p "W27C512@DIP28" -w ROM_imageA.bin ``` then swap the EEPROM... ```bash $ minipro -s -p "W27C512@DIP28" -w ROM_imageB.bin ``` The `-m` option can be used in place of `-w` to verify that the write process completed correctly. After programming and installing the *EPROMs on the adaptor, the `*ROMS` command will display the following on the PC ``` > *ROMS ROM F UTILS 10 ROM E BASIC 40 ROM D ACORN ADFS 10 ROM C DFS 92 ROM B Edit 01 ROM A The BASIC Editor FF ROM 9 KERMIT 01 ROM 8 ? RAM 7 ? RAM 6 ? RAM 5 ? RAM 4 ? ROM 3 ? ROM 2 ? ROM 1 ? ROM 0 ? ``` ## ROM ICs | ROM IC socket | EPROM | space bank | size | description | | --- | --- | --- | --- | --- | | IC49 | 27512 or 27C010 | D to F or 9 to F | 64Kbyte or 128Kbyte | system ROM quadruple or octuple image ROM | | IC29 | 27128 | 8 | 16Kbyte | single image ROM | | IC38 | 27128 or 27256 | 1 or 0 to 1 | 16Kbyte or 32Kbyte | edge connector or internal double image ROM | | IC23 | 27128 | 2 | 16Kbyte | single image ROM | | IC17 | 27128 | 3 | 16Kbyte | single image ROM | ## Useful links - [BBC Master Compact SERVICE MANUAL](https://www.progettosnaps.net/manuals/pdf/bbcmc.pdf) for the computer schematic and Jumper settings - [Mapped Master Compact Motherboard](http://www.8bs.com/incompmapped.htm) Master Compact motherboard picture with IC descriptions - [Paged ROM](https://beebwiki.mdfs.net/Paged_ROM#Master_Compact) Paged ROM explanation with socket to space bank table and ROMFS header description - [PC128S con una EPROM da 128k ?](https://olivettipc128s.altervista.org/pc128s-con-una-eprom-da-128k/) how to put a 27C010 EPROM into the *IC49* socket - [BBC ROMS](http://www.flaxcottage.com/BBC_ROMS/Default.asp), [MDFS::System.ROMs](https://mdfs.net/System/ROMs/) a collection of ROM software for the Acorn BBC computers - [The BBC and Master Computer Public Domain Library Circuit Diagrams](http://8bs.com/othrdnld/manuals/circuitdiagrams.shtml) high resolution circuit schematics - [BBC Master 128 Cartridge Interface](http://8bs.com/submit/acornappspdf/035.pdf) The BBC Master 128 Cartridge Interface has the same signals as the Master Compact edge connector with no user port PINs - [76K 2048x1600 EPROM cartridge](https://mdfs.net/Info/Comp/BBC/Circuits/Master/eprom.gif) Master 128 Cartridge circuit that can be easily adapter to work on the external edge connector of the Master Compact - [Replacing the Master System ROM](https://mdfs.net/Info/Comp/BBC/SROMs/MegaROM.htm) How to build a DIP-28 to DIP-32 adapter to fit a 128Kbyte EPROM ## Images ![](https://oshwlab.com/attachments/2024/2/RT3SXSz7FH44PsN7wk818WD9kdR8vctoimQlYAM0.jpeg) ![](https://oshwlab.com/attachments/2024/2/UXlbVmvfDC9bN9r877mnYwfXGMX6P4kVMfV0sfjR.jpeg)
Design Drawing

Design Drawing

schematic diagram
1 /
PCB
1 /
The preview image was not generated, please save it again in the editor.
ID Name Designator Footprint Quantity Manufacturer Part
1 NO CN1,U1,U2 W27C512 3 27c512
2 100nF C1,C2,C3 C0805 3 C0805B104K500NT C476766
3 SN74HCT139D U3 SOIC-16_L9.9-W3.9-P1.27-LS6.0-BL 1 SN74HCT139D C1523702

Unfold

Project Attachments

Project Attachments

Order File name Download times
1

PXL_20240220_100047503.jpg

2
2

PXL_20240220_120041268.jpg

2
Project Members

Project Members

Target complaint
Related Projects
Change a batch
Loading...

Comment

Add to album ×

Loading...

reminder ×

Do you need to add this project to the album?

服务时间

周一至周五 9:00~18:00
  • 0755 - 2382 4495
  • 153 6159 2675

服务时间

周一至周五 9:00~18:00
  • 立创EDA微信号

    easyeda

  • QQ交流群

    664186054

  • 立创EDA公众号

    lceda-cn