CDL Modules
Data Structures | Namespaces | Enumerations
bbc_micro.cdl File Reference

BBC microcomputer implementation module. More...

Detailed Description

BBC microcomputer implementation module.

Copyright (C) 2016-2017, Gavin J Stark. All rights reserved.

Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at

http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.

CDL implementation of a BBC microcomputer.

This implementation supports a 6502, mimicking a BBC model B. It uses SRAMs for the 32kB DRAM, OS ROM and sideways ROMS (four supported currently). It includes an 8271 FDC, 6850, two 6522s (system VIA and user VIA), 6845, and video ULA.

It also supports the 1MHz clocking of the system bus that the BBC micro implements - this is a reduction of the CPU clock to 1MHz when the 1MHz peripherals are accessed.

Clock control is handled outside of this module; this module requires a '4MHz' or greater clock and clock enables for the CPU clock, 2MHz video clock, and 1MHz clock edges.

Data Structures

struct  bbc_micro::t_address_map_decoded
 
struct  bbc_micro::t_memory_access
 

Namespaces

 bbc_micro
 

Enumerations

enum  bbc_micro::t_video_mem {
  bbc_micro::video_mem_8k =2b01,
  bbc_micro::video_mem_10k =2b11,
  bbc_micro::video_mem_16k =2b00,
  bbc_micro::video_mem_20k =2b10
}
 
enum  bbc_micro::t_memory_grant {
  bbc_micro::memory_grant_none,
  bbc_micro::memory_grant_cpu,
  bbc_micro::memory_grant_video,
  bbc_micro::memory_grant_host
}