mirror of
https://github.com/TomHarte/CLK.git
synced 2024-12-23 20:29:42 +00:00
Add in collected specs.
This commit is contained in:
parent
8e7f53751d
commit
3d234147a6
52
Machines/Apple/AppleII/SCSICard.cpp
Normal file
52
Machines/Apple/AppleII/SCSICard.cpp
Normal file
@ -0,0 +1,52 @@
|
||||
//
|
||||
// SCSICard.cpp
|
||||
// Clock Signal
|
||||
//
|
||||
// Created by Thomas Harte on 22/08/2022.
|
||||
// Copyright © 2022 Thomas Harte. All rights reserved.
|
||||
//
|
||||
|
||||
#include "SCSICard.hpp"
|
||||
|
||||
#include "../../../Components/5380/ncr5380.hpp"
|
||||
|
||||
// Per the documentation around the GGLabs Apple II SCSI card clone:
|
||||
//
|
||||
// A 5380 is mapped to the first eight bytes of slot IO:
|
||||
//
|
||||
// $c0x0 R current SCSI data register
|
||||
// $c0x0 W output data register
|
||||
// $c0x1 R/W initiator command register
|
||||
// $c0x2 R/W mode select register
|
||||
// $c0x3 R/W target command register
|
||||
// $c0x4 R SCSI bus status
|
||||
// $c0x4 W select enable register
|
||||
// $c0x5 R bus and status register
|
||||
// $c0x6 R input data register
|
||||
// $c0x7 R reset parity and interrupts
|
||||
// (i.e. the 5380's standard registers in their usual order)
|
||||
//
|
||||
// The remaining eight are used for control functions:
|
||||
//
|
||||
// $c0x8 R/W PDMA/DACK
|
||||
// $c0x9 R SCSI device ID
|
||||
// $c0xa W memory bank select register
|
||||
// $c0xb W reset 5380 SCSI chip
|
||||
// $c0xc - [unused]
|
||||
// $c0xd W PDMA mode enable
|
||||
// $c0xe R read DRQ status through bit 7
|
||||
// $c0xf - [unused]
|
||||
//
|
||||
// Further, per that card's schematic:
|
||||
//
|
||||
// BANK REGISTER: bit 0..3 ROM Addr, 4..6 RAM Addr, 7 RSVD
|
||||
//
|
||||
// Which relates to the description:
|
||||
//
|
||||
// The card is also equipped with 16K of ROM and 8K of RAM.
|
||||
// These are mapped in the $C800-$CFFF card memory using a banking
|
||||
// scheme. The $C0xA bank register selects the which bank of RAM
|
||||
// and ROM are mapped. RAM is always at $C800-$CBFF and ROM is
|
||||
// at $CC00-$CFFF. The boot code in the first 256 bytes of ROM
|
||||
// bank 0 is also mapped in the IOSEL space ($Cn00-$CnFF).
|
||||
//
|
33
Machines/Apple/AppleII/SCSICard.hpp
Normal file
33
Machines/Apple/AppleII/SCSICard.hpp
Normal file
@ -0,0 +1,33 @@
|
||||
//
|
||||
// SCSICard.hpp
|
||||
// Clock Signal
|
||||
//
|
||||
// Created by Thomas Harte on 22/08/2022.
|
||||
// Copyright © 2022 Thomas Harte. All rights reserved.
|
||||
//
|
||||
|
||||
#ifndef SCSICard_hpp
|
||||
#define SCSICard_hpp
|
||||
|
||||
#include "Card.hpp"
|
||||
#include "../../ROMMachine.hpp"
|
||||
|
||||
namespace Apple {
|
||||
namespace II {
|
||||
|
||||
class SCSICard: public Card {
|
||||
public:
|
||||
static ROM::Request rom_request();
|
||||
SCSICard(ROM::Map &);
|
||||
|
||||
void perform_bus_operation(Select select, bool is_read, uint16_t address, uint8_t *value) final;
|
||||
void run_for(Cycles cycles, int stretches) final;
|
||||
|
||||
private:
|
||||
// TODO.
|
||||
};
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
#endif /* SCSICard_hpp */
|
@ -254,6 +254,8 @@
|
||||
4B4A76301DB1A3FA007AAE2E /* AY38910.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4B4A762E1DB1A3FA007AAE2E /* AY38910.cpp */; };
|
||||
4B4B1A3C200198CA00A0F866 /* KonamiSCC.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4B4B1A3A200198C900A0F866 /* KonamiSCC.cpp */; };
|
||||
4B4B1A3D200198CA00A0F866 /* KonamiSCC.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4B4B1A3A200198C900A0F866 /* KonamiSCC.cpp */; };
|
||||
4B4C81C528B3C5CD00F84AE9 /* SCSICard.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4B4C81C328B3C5CD00F84AE9 /* SCSICard.cpp */; };
|
||||
4B4C81C628B3C5CD00F84AE9 /* SCSICard.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4B4C81C328B3C5CD00F84AE9 /* SCSICard.cpp */; };
|
||||
4B4DC8211D2C2425003C5BF8 /* Vic20.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4B4DC81F1D2C2425003C5BF8 /* Vic20.cpp */; };
|
||||
4B4DC82B1D2C27A4003C5BF8 /* SerialBus.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4B4DC8291D2C27A4003C5BF8 /* SerialBus.cpp */; };
|
||||
4B4DEC06252BFA56004583AC /* 65816Base.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4B4DEC05252BFA56004583AC /* 65816Base.cpp */; };
|
||||
@ -1359,6 +1361,8 @@
|
||||
4B4A762F1DB1A3FA007AAE2E /* AY38910.hpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; path = AY38910.hpp; sourceTree = "<group>"; };
|
||||
4B4B1A3A200198C900A0F866 /* KonamiSCC.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = KonamiSCC.cpp; sourceTree = "<group>"; };
|
||||
4B4B1A3B200198C900A0F866 /* KonamiSCC.hpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; path = KonamiSCC.hpp; sourceTree = "<group>"; };
|
||||
4B4C81C328B3C5CD00F84AE9 /* SCSICard.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = SCSICard.cpp; sourceTree = "<group>"; };
|
||||
4B4C81C428B3C5CD00F84AE9 /* SCSICard.hpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.h; path = SCSICard.hpp; sourceTree = "<group>"; };
|
||||
4B4DC81F1D2C2425003C5BF8 /* Vic20.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = Vic20.cpp; sourceTree = "<group>"; };
|
||||
4B4DC8201D2C2425003C5BF8 /* Vic20.hpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; path = Vic20.hpp; sourceTree = "<group>"; };
|
||||
4B4DC8271D2C2470003C5BF8 /* C1540.hpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; path = C1540.hpp; sourceTree = "<group>"; };
|
||||
@ -4615,6 +4619,7 @@
|
||||
4BCE0050227CE8CA000CA200 /* AppleII.cpp */,
|
||||
4BCE004E227CE8CA000CA200 /* DiskIICard.cpp */,
|
||||
4B2E86E025DC95150024F1E9 /* Joystick.cpp */,
|
||||
4B4C81C328B3C5CD00F84AE9 /* SCSICard.cpp */,
|
||||
4BCE004D227CE8CA000CA200 /* Video.cpp */,
|
||||
4BCE004A227CE8CA000CA200 /* AppleII.hpp */,
|
||||
4BF40A5A254263140033EA39 /* AuxiliaryMemorySwitches.hpp */,
|
||||
@ -4623,6 +4628,7 @@
|
||||
4B2E86E125DC95150024F1E9 /* Joystick.hpp */,
|
||||
4BF40A5525424C770033EA39 /* LanguageCardSwitches.hpp */,
|
||||
4BE0151C286A8C8E00EA42E9 /* MemorySwitches.hpp */,
|
||||
4B4C81C428B3C5CD00F84AE9 /* SCSICard.hpp */,
|
||||
4BCE004F227CE8CA000CA200 /* Video.hpp */,
|
||||
4B8DF4F2254E141700F3433C /* VideoSwitches.hpp */,
|
||||
);
|
||||
@ -5579,6 +5585,7 @@
|
||||
4B055AB31FAE860F0060FFFF /* CSW.cpp in Sources */,
|
||||
4B89451D201967B4007DE474 /* Disk.cpp in Sources */,
|
||||
4BFEA2F02682A7B900EBF94C /* Dave.cpp in Sources */,
|
||||
4B4C81C628B3C5CD00F84AE9 /* SCSICard.cpp in Sources */,
|
||||
4BDACBED22FFA5D20045EF7E /* ncr5380.cpp in Sources */,
|
||||
4BC131772346DE9100E4FF3D /* StaticAnalyser.cpp in Sources */,
|
||||
4B7962A22819681F008130F9 /* Decoder.cpp in Sources */,
|
||||
@ -5755,6 +5762,7 @@
|
||||
4B8DF505254E3C9D00F3433C /* ADB.cpp in Sources */,
|
||||
4B322E041F5A2E3C004EB04C /* Z80Base.cpp in Sources */,
|
||||
4B0ACC2623775819008902D0 /* AtariST.cpp in Sources */,
|
||||
4B4C81C528B3C5CD00F84AE9 /* SCSICard.cpp in Sources */,
|
||||
4B894530201967B4007DE474 /* StaticAnalyser.cpp in Sources */,
|
||||
4B4518A31F75FD1C00926311 /* HFE.cpp in Sources */,
|
||||
4B1B88BB202E2EC100B67DFF /* MultiKeyboardMachine.cpp in Sources */,
|
||||
|
Loading…
Reference in New Issue
Block a user