mirror of
https://github.com/TomHarte/CLK.git
synced 2025-03-25 21:34:05 +00:00
Merge pull request #1387 from TomHarte/SSLandCSL
CPC: implement CSL and SSM to run Shaker tests.
This commit is contained in:
commit
bcd558867d
Analyser/Static/AmstradCPC
Components/6845
Machines/AmstradCPC
OSBindings/Mac
Clock Signal.xcodeproj
Clock SignalTests
8088Tests.mmARMDecoderTests.mmCPCShakerTests.mm
Shaker
Storage/Automation
@ -20,10 +20,18 @@ struct Target: public Analyser::Static::Target, public Reflection::StructImpl<Ta
|
||||
Model model = Model::CPC464;
|
||||
std::string loading_command;
|
||||
|
||||
ReflectableEnum(CRTCType, Type0, Type1, Type2, Type3);
|
||||
CRTCType crtc_type = CRTCType::Type2;
|
||||
|
||||
// This is used internally for testing; it therefore isn't exposed reflectively.
|
||||
bool catch_ssm_codes = false;
|
||||
|
||||
Target() : Analyser::Static::Target(Machine::AmstradCPC) {
|
||||
if(needs_declare()) {
|
||||
DeclareField(model);
|
||||
DeclareField(crtc_type);
|
||||
AnnounceEnum(Model);
|
||||
AnnounceEnum(CRTCType);
|
||||
}
|
||||
}
|
||||
};
|
||||
|
@ -301,17 +301,17 @@ template <class BusHandlerT, Personality personality, CursorType cursor_type> cl
|
||||
}
|
||||
} else {
|
||||
line_counter_ = (line_counter_ + 1) & 0x7f;
|
||||
}
|
||||
|
||||
// Check for start of vertical sync.
|
||||
if(line_counter_ == layout_.vertical.start_sync) {
|
||||
bus_state_.vsync = true;
|
||||
vsync_counter_ = 0;
|
||||
}
|
||||
// Check for start of vertical sync.
|
||||
if(line_counter_ == layout_.vertical.start_sync) {
|
||||
bus_state_.vsync = true;
|
||||
vsync_counter_ = 0;
|
||||
}
|
||||
|
||||
// Check for end of visible lines.
|
||||
if(line_counter_ == layout_.vertical.displayed) {
|
||||
line_is_visible_ = false;
|
||||
}
|
||||
// Check for end of visible lines.
|
||||
if(line_counter_ == layout_.vertical.displayed) {
|
||||
line_is_visible_ = false;
|
||||
}
|
||||
} else {
|
||||
bus_state_.row_address = (bus_state_.row_address + 1) & 0x1f;
|
||||
|
@ -752,7 +752,8 @@ class i8255PortHandler : public Intel::i8255::PortHandler {
|
||||
/*!
|
||||
The actual Amstrad CPC implementation; tying the 8255, 6845 and AY to the Z80.
|
||||
*/
|
||||
template <bool has_fdc> class ConcreteMachine:
|
||||
template <bool has_fdc, bool catches_ssm>
|
||||
class ConcreteMachine:
|
||||
public MachineTypes::ScanProducer,
|
||||
public MachineTypes::AudioProducer,
|
||||
public MachineTypes::TimedMachine,
|
||||
@ -942,6 +943,39 @@ template <bool has_fdc> class ConcreteMachine:
|
||||
*cycle.value = 0xc9;
|
||||
break;
|
||||
}
|
||||
|
||||
if constexpr (catches_ssm) {
|
||||
ssm_code_ = (ssm_code_ << 8) | read_pointers_[address >> 14][address & 16383];
|
||||
if(ssm_delegate_) {
|
||||
if((ssm_code_ & 0xff00ff00) == 0xed00ed00) {
|
||||
const auto code = uint16_t(
|
||||
((ssm_code_ << 8) & 0xff00) | ((ssm_code_ >> 16) & 0x00ff)
|
||||
);
|
||||
|
||||
const auto is_valid = [](uint8_t digit) {
|
||||
return
|
||||
(digit <= 0x3f) ||
|
||||
(digit >= 0x7f && digit <= 0x9f) ||
|
||||
(digit >= 0xa4 && digit <= 0xa7) ||
|
||||
(digit >= 0xac && digit <= 0xaf) ||
|
||||
(digit >= 0xb4 && digit <= 0xb7) ||
|
||||
(digit >= 0xbc && digit <= 0xbf) ||
|
||||
(digit >= 0xc0 && digit <= 0xfd);
|
||||
};
|
||||
|
||||
if(
|
||||
is_valid(static_cast<uint8_t>(code)) && is_valid(static_cast<uint8_t>(code >> 8))
|
||||
) {
|
||||
ssm_delegate_->perform(code);
|
||||
ssm_code_ = 0;
|
||||
}
|
||||
}
|
||||
} else if((ssm_code_ & 0xffff) == 0xedfe) {
|
||||
ssm_delegate_->perform(0xfffe);
|
||||
} else if((ssm_code_ & 0xffff) == 0xedff) {
|
||||
ssm_delegate_->perform(0xffff);
|
||||
}
|
||||
}
|
||||
[[fallthrough]];
|
||||
|
||||
case CPU::Z80::PartialMachineCycle::Read:
|
||||
@ -1115,6 +1149,10 @@ template <bool has_fdc> class ConcreteMachine:
|
||||
tape_player_is_sleeping_ = tape_player_.preferred_clocking() == ClockingHint::Preference::None;
|
||||
}
|
||||
|
||||
void set_ssm_delegate(SSMDelegate *delegate) final {
|
||||
ssm_delegate_ = delegate;
|
||||
}
|
||||
|
||||
// MARK: - Keyboard
|
||||
void type_string(const std::string &string) final {
|
||||
Utility::TypeRecipient<CharacterMapper>::add_typer(string);
|
||||
@ -1276,6 +1314,9 @@ template <bool has_fdc> class ConcreteMachine:
|
||||
KeyboardState key_state_;
|
||||
AmstradCPC::KeyboardMapper keyboard_mapper_;
|
||||
|
||||
SSMDelegate *ssm_delegate_ = nullptr;
|
||||
uint32_t ssm_code_ = 0;
|
||||
|
||||
bool has_run_ = false;
|
||||
uint8_t ram_[128 * 1024];
|
||||
};
|
||||
@ -1284,12 +1325,26 @@ template <bool has_fdc> class ConcreteMachine:
|
||||
|
||||
using namespace AmstradCPC;
|
||||
|
||||
namespace {
|
||||
|
||||
template <bool catch_ssm>
|
||||
std::unique_ptr<Machine> machine(const Analyser::Static::AmstradCPC::Target &target, const ROMMachine::ROMFetcher &rom_fetcher) {
|
||||
using Model = Analyser::Static::AmstradCPC::Target::Model;
|
||||
switch(target.model) {
|
||||
default: return std::make_unique<AmstradCPC::ConcreteMachine<true, catch_ssm>>(target, rom_fetcher);
|
||||
case Model::CPC464: return std::make_unique<AmstradCPC::ConcreteMachine<false, catch_ssm>>(target, rom_fetcher);
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
// See header; constructs and returns an instance of the Amstrad CPC.
|
||||
std::unique_ptr<Machine> Machine::AmstradCPC(const Analyser::Static::Target *target, const ROMMachine::ROMFetcher &rom_fetcher) {
|
||||
using Target = Analyser::Static::AmstradCPC::Target;
|
||||
const Target *const cpc_target = dynamic_cast<const Target *>(target);
|
||||
switch(cpc_target->model) {
|
||||
default: return std::make_unique<AmstradCPC::ConcreteMachine<true>>(*cpc_target, rom_fetcher);
|
||||
case Target::Model::CPC464: return std::make_unique<AmstradCPC::ConcreteMachine<false>>(*cpc_target, rom_fetcher);
|
||||
if(cpc_target->catch_ssm_codes) {
|
||||
return machine<true>(*cpc_target, rom_fetcher);
|
||||
} else {
|
||||
return machine<false>(*cpc_target, rom_fetcher);
|
||||
}
|
||||
}
|
||||
|
@ -25,7 +25,10 @@ class Machine {
|
||||
virtual ~Machine() = default;
|
||||
|
||||
/// Creates and returns an Amstrad CPC.
|
||||
static std::unique_ptr<Machine> AmstradCPC(const Analyser::Static::Target *target, const ROMMachine::ROMFetcher &rom_fetcher);
|
||||
static std::unique_ptr<Machine> AmstradCPC(
|
||||
const Analyser::Static::Target *target,
|
||||
const ROMMachine::ROMFetcher &rom_fetcher
|
||||
);
|
||||
|
||||
/// Defines the runtime options available for an Amstrad CPC.
|
||||
class Options:
|
||||
@ -47,6 +50,11 @@ class Machine {
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
struct SSMDelegate {
|
||||
virtual void perform(uint16_t) = 0;
|
||||
};
|
||||
virtual void set_ssm_delegate(SSMDelegate *) = 0;
|
||||
};
|
||||
|
||||
}
|
||||
|
@ -139,6 +139,83 @@
|
||||
4B055AEE1FAE9BBF0060FFFF /* Keyboard.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4B86E2591F8C628F006FAA45 /* Keyboard.cpp */; };
|
||||
4B055AEF1FAE9BF00060FFFF /* Typer.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4B2B3A471F9B8FA70062DABF /* Typer.cpp */; };
|
||||
4B055AF21FAE9C1C0060FFFF /* OpenGL.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 4B055AF01FAE9C080060FFFF /* OpenGL.framework */; };
|
||||
4B06AACB2C645ED00034D014 /* AY38910.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4B4A762E1DB1A3FA007AAE2E /* AY38910.cpp */; };
|
||||
4B06AACC2C645EDF0034D014 /* Archimedes.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4BB505842B9634F30031C43C /* Archimedes.cpp */; };
|
||||
4B06AACD2C645EE50034D014 /* Enterprise.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4B051CA12676F52200CA44E8 /* Enterprise.cpp */; };
|
||||
4B06AACE2C645EEC0034D014 /* PCCompatible.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 425739372B051EA800B7D1E4 /* PCCompatible.cpp */; };
|
||||
4B06AACF2C645EF40034D014 /* i8272.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4BBC951C1F368D83008F4C34 /* i8272.cpp */; };
|
||||
4B06AAD02C645F0A0034D014 /* EXDos.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4B051CB42680158600CA44E8 /* EXDos.cpp */; };
|
||||
4B06AAD12C645F130034D014 /* 1770.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4BD468F51D8DF41D0084958B /* 1770.cpp */; };
|
||||
4B06AAD22C645F190034D014 /* I2C.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4B2A1CD92BA775C5004496CE /* I2C.cpp */; };
|
||||
4B06AAD32C645F1F0034D014 /* MSX.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4B79A4FF1FC913C900EEDAD5 /* MSX.cpp */; };
|
||||
4B06AAD42C645F250034D014 /* Oric.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4BCF1FA21DADC3DD0039D2E7 /* Oric.cpp */; };
|
||||
4B06AAD52C645F290034D014 /* AppleII.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4BCE0050227CE8CA000CA200 /* AppleII.cpp */; };
|
||||
4B06AAD62C645F2D0034D014 /* AtariST.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4B0ACC0623775819008902D0 /* AtariST.cpp */; };
|
||||
4B06AAD72C645F330034D014 /* AppleIIgs.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4BE21214253FCE9C00435408 /* AppleIIgs.cpp */; };
|
||||
4B06AAD82C645F370034D014 /* MasterSystem.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4B7F188C2154825D00388727 /* MasterSystem.cpp */; };
|
||||
4B06AAD92C645F5D0034D014 /* SN76489.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4BB0A6592044FD3000FB3688 /* SN76489.cpp */; };
|
||||
4B06AADA2C645F650034D014 /* MemorySlotHandler.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4BF0BC67297108D100CCA2B5 /* MemorySlotHandler.cpp */; };
|
||||
4B06AADB2C645F6D0034D014 /* DiskROM.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4BEBFB4F2002DB30000708CC /* DiskROM.cpp */; };
|
||||
4B06AADC2C645F720034D014 /* BD500.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4B7BA03523CEB86000B98D9E /* BD500.cpp */; };
|
||||
4B06AADD2C645F790034D014 /* Microdisc.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4B5FADBE1DE3BF2B00AEC565 /* Microdisc.cpp */; };
|
||||
4B06AADE2C645F7E0034D014 /* Video.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4B8DF4F7254E36AD00F3433C /* Video.cpp */; };
|
||||
4B06AADF2C645F830034D014 /* Video.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4BB5056F2B962DDF0031C43C /* Video.cpp */; };
|
||||
4B06AAE02C645F870034D014 /* Video.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4BCE004D227CE8CA000CA200 /* Video.cpp */; };
|
||||
4B06AAE12C645F8B0034D014 /* Video.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4B2BFDB01DAEF5FF001A68B8 /* Video.cpp */; };
|
||||
4B06AAE22C645F970034D014 /* PCBooter.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 423820422B1A90BE00964EFE /* PCBooter.cpp */; };
|
||||
4B06AAE32C645F9E0034D014 /* StringSerialiser.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4B17B58920A8A9D9007CCA8F /* StringSerialiser.cpp */; };
|
||||
4B06AAE42C645FA50034D014 /* DiskIICard.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4BCE004E227CE8CA000CA200 /* DiskIICard.cpp */; };
|
||||
4B06AAE52C645FAA0034D014 /* SCSICard.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4B4C81C328B3C5CD00F84AE9 /* SCSICard.cpp */; };
|
||||
4B06AAE62C645FB10034D014 /* ADB.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4B8DF503254E3C9D00F3433C /* ADB.cpp */; };
|
||||
4B06AAE72C645FBC0034D014 /* DMAController.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4B0ACC0723775819008902D0 /* DMAController.cpp */; };
|
||||
4B06AAE82C645FCD0034D014 /* RP5C01.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4BF0BC6F2973318E00CCA2B5 /* RP5C01.cpp */; };
|
||||
4B06AAE92C645FD30034D014 /* Jasmin.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4B7BA02E23C2B19B00B98D9E /* Jasmin.cpp */; };
|
||||
4B06AAEA2C645FDD0034D014 /* Bus.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4BCE1DEF25D4C3FA00AE7A2B /* Bus.cpp */; };
|
||||
4B06AAEB2C645FE80034D014 /* Keyboard.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4B54C0C11F8D91CD0050900F /* Keyboard.cpp */; };
|
||||
4B06AAEC2C645FF50034D014 /* Keyboard.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4B2E86CD25D8D8C70024F1E9 /* Keyboard.cpp */; };
|
||||
4B06AAED2C6460040034D014 /* Sound.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4B1EC714255398B000A1F44B /* Sound.cpp */; };
|
||||
4B06AAEE2C64600C0034D014 /* Vic20.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4B4DC81F1D2C2425003C5BF8 /* Vic20.cpp */; };
|
||||
4B06AAEF2C6460180034D014 /* Keyboard.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4B051CAE267C1CA200CA44E8 /* Keyboard.cpp */; };
|
||||
4B06AAF02C6460240034D014 /* ReactiveDevice.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4B2E86B525D7490E0024F1E9 /* ReactiveDevice.cpp */; };
|
||||
4B06AAF12C64602D0034D014 /* 6850.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4BB307BA235001C300457D33 /* 6850.cpp */; };
|
||||
4B06AAF22C6460320034D014 /* MFP68901.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4B92E268234AE35000CD6D1B /* MFP68901.cpp */; };
|
||||
4B06AAF32C64603D0034D014 /* Keyboard.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4B54C0C41F8D91D90050900F /* Keyboard.cpp */; };
|
||||
4B06AAF42C6460430034D014 /* ZX8081.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4B0F1BCC2602F17B00B85C66 /* ZX8081.cpp */; };
|
||||
4B06AAF52C6460600034D014 /* Mouse.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4B2E86BC25D74F160024F1E9 /* Mouse.cpp */; };
|
||||
4B06AAF62C6460670034D014 /* DiskIIDrive.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4B80CD6D2568A82600176FCC /* DiskIIDrive.cpp */; };
|
||||
4B06AAF72C64606E0034D014 /* DiskII.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4B302183208A550100773308 /* DiskII.cpp */; };
|
||||
4B06AAF82C6460760034D014 /* IntelligentKeyboard.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4B0ACC0923775819008902D0 /* IntelligentKeyboard.cpp */; };
|
||||
4B06AAF92C64607C0034D014 /* AudioToggle.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4B595FAC2086DFBA0083CAA8 /* AudioToggle.cpp */; };
|
||||
4B06AAFA2C6460800034D014 /* KonamiSCC.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4B4B1A3A200198C900A0F866 /* KonamiSCC.cpp */; };
|
||||
4B06AAFB2C6460920034D014 /* Keyboard.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4B54C0BD1F8D8F450050900F /* Keyboard.cpp */; };
|
||||
4B06AAFC2C6460970034D014 /* Keyboard.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4B12C0EB1FCFA98D005BFD93 /* Keyboard.cpp */; };
|
||||
4B06AAFD2C64609D0034D014 /* IMD.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 42EB81262B23AAC300429AF4 /* IMD.cpp */; };
|
||||
4B06AAFE2C6460A40034D014 /* ConfidenceSummary.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4B8944E8201967B4007DE474 /* ConfidenceSummary.cpp */; };
|
||||
4B06AAFF2C6460A80034D014 /* ConfidenceCounter.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4B8944E6201967B4007DE474 /* ConfidenceCounter.cpp */; };
|
||||
4B06AB002C6460B70034D014 /* Keyboard.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4B0F1C1B2604EA1000B85C66 /* Keyboard.cpp */; };
|
||||
4B06AB012C6460C30034D014 /* Video.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4B0F1BCD2602F17B00B85C66 /* Video.cpp */; };
|
||||
4B06AB022C6460CB0034D014 /* Typer.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4B2B3A471F9B8FA70062DABF /* Typer.cpp */; };
|
||||
4B06AB032C6460D00034D014 /* OPLL.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4BC23A2B2467600E001A6030 /* OPLL.cpp */; };
|
||||
4B06AB042C6460D60034D014 /* 6560.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4BC9DF4D1D04691600F44158 /* 6560.cpp */; };
|
||||
4B06AB052C6460EC0034D014 /* ZXSpectrum.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4B0F1BFA260300D900B85C66 /* ZXSpectrum.cpp */; };
|
||||
4B06AB062C6460F40034D014 /* Atari2600.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4B0ACC2223775819008902D0 /* Atari2600.cpp */; };
|
||||
4B06AB072C6461160034D014 /* StaticAnalyser.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 429B135F2B1F7BDA006BB4CB /* StaticAnalyser.cpp */; };
|
||||
4B06AB082C64611F0034D014 /* ColecoVision.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4B7A90E42041097C008514A2 /* ColecoVision.cpp */; };
|
||||
4B06AB092C64612C0034D014 /* TIA.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4B0ACC1D23775819008902D0 /* TIA.cpp */; };
|
||||
4B06AB0A2C6461350034D014 /* TIASound.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4B0ACC2123775819008902D0 /* TIASound.cpp */; };
|
||||
4B06AB0B2C64614B0034D014 /* Electron.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4BB5056E2B962DDF0031C43C /* Electron.cpp */; };
|
||||
4B06AB0C2C6461590034D014 /* StaticAnalyser.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 423820102B17CBC800964EFE /* StaticAnalyser.cpp */; };
|
||||
4B06AB0D2C6461610034D014 /* MultiMachine.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4B3FCC3F201EC24200960631 /* MultiMachine.cpp */; };
|
||||
4B06AB0E2C6461700034D014 /* MultiMediaTarget.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4BBB70A3202011C2002FE009 /* MultiMediaTarget.cpp */; };
|
||||
4B06AB0F2C6461780034D014 /* MultiProducer.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4BBB70A6202014E2002FE009 /* MultiProducer.cpp */; };
|
||||
4B06AB102C6461810034D014 /* SoundGenerator.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4BB5056B2B962DDF0031C43C /* SoundGenerator.cpp */; };
|
||||
4B06AB112C64618B0034D014 /* Tape.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4BB505732B962DDF0031C43C /* Tape.cpp */; };
|
||||
4B06AB122C6461910034D014 /* Plus3.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4BB505752B962DDF0031C43C /* Plus3.cpp */; };
|
||||
4B06AB132C6461970034D014 /* MultiConfigurable.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4B1B88BE202E3DB200B67DFF /* MultiConfigurable.cpp */; };
|
||||
4B06AB142C64619E0034D014 /* MultiJoystickMachine.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4B1B88C6202E469300B67DFF /* MultiJoystickMachine.cpp */; };
|
||||
4B06AB152C6461A20034D014 /* MultiKeyboardMachine.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4B1B88B9202E2EC100B67DFF /* MultiKeyboardMachine.cpp */; };
|
||||
4B06AB162C6461AB0034D014 /* Keyboard.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4BB505762B962DDF0031C43C /* Keyboard.cpp */; };
|
||||
4B06AB172C6461B30034D014 /* MultiSpeaker.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4B9BE3FE203A0C0600FFAE60 /* MultiSpeaker.cpp */; };
|
||||
4B08A2751EE35D56008B7065 /* Z80InterruptTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4B08A2741EE35D56008B7065 /* Z80InterruptTests.swift */; };
|
||||
4B08A2781EE39306008B7065 /* TestMachine.mm in Sources */ = {isa = PBXBuildFile; fileRef = 4B08A2771EE39306008B7065 /* TestMachine.mm */; };
|
||||
4B08A56920D72BEF0016CE5A /* Activity.xib in Resources */ = {isa = PBXBuildFile; fileRef = 4B08A56720D72BEF0016CE5A /* Activity.xib */; };
|
||||
@ -180,6 +257,9 @@
|
||||
4B0F1C242605996900B85C66 /* ZXSpectrumTAP.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4B0F1C212605996900B85C66 /* ZXSpectrumTAP.cpp */; };
|
||||
4B0F94FE208C1A1600FE41D9 /* NIB.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4B0F94FC208C1A1600FE41D9 /* NIB.cpp */; };
|
||||
4B0F94FF208C1A1600FE41D9 /* NIB.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4B0F94FC208C1A1600FE41D9 /* NIB.cpp */; };
|
||||
4B1082C32C1A87CA00B07C5D /* CSL.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4B1082C02C1A87CA00B07C5D /* CSL.cpp */; };
|
||||
4B1082C42C1F5E7D00B07C5D /* CSL.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4B1082C02C1A87CA00B07C5D /* CSL.cpp */; };
|
||||
4B1082C52C1F60A900B07C5D /* CSL.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4B1082C02C1A87CA00B07C5D /* CSL.cpp */; };
|
||||
4B121F9B1E06293F00BFDA12 /* PCMSegmentEventSourceTests.mm in Sources */ = {isa = PBXBuildFile; fileRef = 4B121F9A1E06293F00BFDA12 /* PCMSegmentEventSourceTests.mm */; };
|
||||
4B12C0ED1FCFA98D005BFD93 /* Keyboard.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4B12C0EB1FCFA98D005BFD93 /* Keyboard.cpp */; };
|
||||
4B12C0EE1FCFAD1A005BFD93 /* Keyboard.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4B12C0EB1FCFA98D005BFD93 /* Keyboard.cpp */; };
|
||||
@ -537,6 +617,10 @@
|
||||
4B8805F41DCFD22A003085B1 /* Commodore.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4B8805F21DCFD22A003085B1 /* Commodore.cpp */; };
|
||||
4B8805F71DCFF6C9003085B1 /* Commodore.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4B8805F51DCFF6C9003085B1 /* Commodore.cpp */; };
|
||||
4B8805FB1DCFF807003085B1 /* Oric.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4B8805F91DCFF807003085B1 /* Oric.cpp */; };
|
||||
4B882F592C2F9C6A00D84031 /* CPCShakerTests.mm in Sources */ = {isa = PBXBuildFile; fileRef = 4B882F582C2F9C6900D84031 /* CPCShakerTests.mm */; };
|
||||
4B882F5B2C2F9C7700D84031 /* Shaker in Resources */ = {isa = PBXBuildFile; fileRef = 4B882F5A2C2F9C7700D84031 /* Shaker */; };
|
||||
4B882F5C2C32199400D84031 /* MachineForTarget.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4B055ABE1FAE98000060FFFF /* MachineForTarget.cpp */; };
|
||||
4B882F5D2C3219A400D84031 /* AmstradCPC.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4B38F3461F2EC11D00D9235D /* AmstradCPC.cpp */; };
|
||||
4B89449520194CB3007DE474 /* MachineForTarget.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4B055ABE1FAE98000060FFFF /* MachineForTarget.cpp */; };
|
||||
4B894518201967B4007DE474 /* ConfidenceCounter.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4B8944E6201967B4007DE474 /* ConfidenceCounter.cpp */; };
|
||||
4B894519201967B4007DE474 /* ConfidenceCounter.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4B8944E6201967B4007DE474 /* ConfidenceCounter.cpp */; };
|
||||
@ -1305,6 +1389,8 @@
|
||||
4B0F94FC208C1A1600FE41D9 /* NIB.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = NIB.cpp; sourceTree = "<group>"; };
|
||||
4B0F94FD208C1A1600FE41D9 /* NIB.hpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.h; path = NIB.hpp; sourceTree = "<group>"; };
|
||||
4B0F9500208C42A300FE41D9 /* Target.hpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.h; name = Target.hpp; path = AppleII/Target.hpp; sourceTree = "<group>"; };
|
||||
4B1082C02C1A87CA00B07C5D /* CSL.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CSL.cpp; sourceTree = "<group>"; };
|
||||
4B1082C12C1A87CA00B07C5D /* CSL.hpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; path = CSL.hpp; sourceTree = "<group>"; };
|
||||
4B121F9A1E06293F00BFDA12 /* PCMSegmentEventSourceTests.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = PCMSegmentEventSourceTests.mm; sourceTree = "<group>"; };
|
||||
4B12C0EB1FCFA98D005BFD93 /* Keyboard.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = Keyboard.cpp; sourceTree = "<group>"; };
|
||||
4B12C0EC1FCFA98D005BFD93 /* Keyboard.hpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.h; path = Keyboard.hpp; sourceTree = "<group>"; };
|
||||
@ -1644,6 +1730,8 @@
|
||||
4B8805F61DCFF6C9003085B1 /* Commodore.hpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; path = Commodore.hpp; sourceTree = "<group>"; };
|
||||
4B8805F91DCFF807003085B1 /* Oric.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = Oric.cpp; path = Parsers/Oric.cpp; sourceTree = "<group>"; };
|
||||
4B8805FA1DCFF807003085B1 /* Oric.hpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; name = Oric.hpp; path = Parsers/Oric.hpp; sourceTree = "<group>"; };
|
||||
4B882F582C2F9C6900D84031 /* CPCShakerTests.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = CPCShakerTests.mm; sourceTree = "<group>"; };
|
||||
4B882F5A2C2F9C7700D84031 /* Shaker */ = {isa = PBXFileReference; lastKnownFileType = folder; path = Shaker; sourceTree = "<group>"; };
|
||||
4B89449220194A47007DE474 /* CSStaticAnalyser+TargetVector.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "CSStaticAnalyser+TargetVector.h"; path = "StaticAnalyser/CSStaticAnalyser+TargetVector.h"; sourceTree = "<group>"; };
|
||||
4B8944E4201967B4007DE474 /* ConfidenceSummary.hpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; path = ConfidenceSummary.hpp; sourceTree = "<group>"; };
|
||||
4B8944E5201967B4007DE474 /* ConfidenceSource.hpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; path = ConfidenceSource.hpp; sourceTree = "<group>"; };
|
||||
@ -2688,6 +2776,15 @@
|
||||
path = Keyboard;
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
4B1082C22C1A87CA00B07C5D /* Automation */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
4B1082C02C1A87CA00B07C5D /* CSL.cpp */,
|
||||
4B1082C12C1A87CA00B07C5D /* CSL.hpp */,
|
||||
);
|
||||
path = Automation;
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
4B1414561B58879D00E04248 /* 6502 */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
@ -2702,7 +2799,6 @@
|
||||
4B1414631B588A1100E04248 /* Test Binaries */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
4BB505882B9C0E6F0031C43C /* Messy ARM */,
|
||||
4B680CE323A555CA00451D43 /* 68000 Comparative Tests */,
|
||||
4B75F97A280D7C7700121055 /* 68000 Decoding */,
|
||||
4B683B002727BE6F0043E541 /* Amiga Blitter Tests */,
|
||||
@ -2711,7 +2807,9 @@
|
||||
4BB0CAB127E51D2A00672A88 /* dingusdev PowerPC tests */,
|
||||
4B7C7A06282C3DED002D6C0B /* flamewing 68000 BCD tests */,
|
||||
4BBB77DC2867EBB300D335A1 /* IIgs Memory Map */,
|
||||
4BB505882B9C0E6F0031C43C /* Messy ARM */,
|
||||
4B98A1CD1FFADEC400ADF63B /* MSX ROMs */,
|
||||
4B882F5A2C2F9C7700D84031 /* Shaker */,
|
||||
4B018B88211930DE002A3937 /* 65C02_extended_opcodes_test.bin */,
|
||||
4BE211DD253E4E4800435408 /* 65C02_no_Rockwell_test.bin */,
|
||||
4B44EBF61DC9883B00A7820C /* 6502_functional_test.bin */,
|
||||
@ -3326,6 +3424,7 @@
|
||||
4BAB62AE1D32730D00DF5BA0 /* Storage.hpp */,
|
||||
4BF4A2D91F534DB300B171F4 /* TargetPlatforms.hpp */,
|
||||
4BB697CA1D4B6D3E00248BDF /* TimedEventLoop.hpp */,
|
||||
4B1082C22C1A87CA00B07C5D /* Automation */,
|
||||
4BEE0A691D72496600532C7B /* Cartridge */,
|
||||
4B8805F81DCFF6CD003085B1 /* Data */,
|
||||
4BAB62AA1D3272D200DF5BA0 /* Disk */,
|
||||
@ -4554,6 +4653,7 @@
|
||||
4B2005422B804D6400420C5C /* ARMDecoderTests.mm */,
|
||||
4B924E981E74D22700B76AF1 /* AtariStaticAnalyserTests.mm */,
|
||||
4BE34437238389E10058E78F /* AtariSTVideoTests.mm */,
|
||||
4B882F582C2F9C6900D84031 /* CPCShakerTests.mm */,
|
||||
4BB2A9AE1E13367E001A5C23 /* CRCTests.mm */,
|
||||
4BB0CAA627E51B6300672A88 /* DingusdevPowerPCTests.mm */,
|
||||
428168392A37AFB4008ECD27 /* DispatcherTests.mm */,
|
||||
@ -5497,6 +5597,7 @@
|
||||
4BB298FE1B587D8400A49093 /* anday in Resources */,
|
||||
4BB299141B587D8400A49093 /* axsz in Resources */,
|
||||
4BB2991D1B587D8400A49093 /* bplr in Resources */,
|
||||
4B882F5B2C2F9C7700D84031 /* Shaker in Resources */,
|
||||
4BB298FB1B587D8400A49093 /* ancb in Resources */,
|
||||
4BB299431B587D8400A49093 /* dcma in Resources */,
|
||||
4BB298FD1B587D8400A49093 /* andax in Resources */,
|
||||
@ -5918,6 +6019,7 @@
|
||||
4B055AAC1FAE85FD0060FFFF /* PCMSegment.cpp in Sources */,
|
||||
4BB307BC235001C300457D33 /* 6850.cpp in Sources */,
|
||||
4B055AB31FAE860F0060FFFF /* CSW.cpp in Sources */,
|
||||
4B1082C52C1F60A900B07C5D /* CSL.cpp in Sources */,
|
||||
4B89451D201967B4007DE474 /* Disk.cpp in Sources */,
|
||||
4BFEA2F02682A7B900EBF94C /* Dave.cpp in Sources */,
|
||||
4B4C81C628B3C5CD00F84AE9 /* SCSICard.cpp in Sources */,
|
||||
@ -6084,6 +6186,7 @@
|
||||
4BAF2B4E2004580C00480230 /* DMK.cpp in Sources */,
|
||||
4BB697CE1D4BA44400248BDF /* CommodoreGCR.cpp in Sources */,
|
||||
4B5B37312777C7FC0047F238 /* IPF.cpp in Sources */,
|
||||
4B1082C42C1F5E7D00B07C5D /* CSL.cpp in Sources */,
|
||||
4B0ACC3023775819008902D0 /* TIASound.cpp in Sources */,
|
||||
4B7136861F78724F008B8ED9 /* Encoder.cpp in Sources */,
|
||||
4B0E04EA1FC9E5DA00F43484 /* CAS.cpp in Sources */,
|
||||
@ -6340,6 +6443,7 @@
|
||||
isa = PBXSourcesBuildPhase;
|
||||
buildActionMask = 2147483647;
|
||||
files = (
|
||||
4B06AAEA2C645FDD0034D014 /* Bus.cpp in Sources */,
|
||||
4B778EF623A5EB600000D260 /* WOZ.cpp in Sources */,
|
||||
42EB812F2B4700B800429AF4 /* MemoryMap.cpp in Sources */,
|
||||
4B778F1423A5EC960000D260 /* Z80Storage.cpp in Sources */,
|
||||
@ -6347,12 +6451,16 @@
|
||||
4B778F1523A5EC980000D260 /* PartialMachineCycle.cpp in Sources */,
|
||||
4BEDA43125B3C700000C2DBD /* Executor.cpp in Sources */,
|
||||
4B778F6123A5F3560000D260 /* Disk.cpp in Sources */,
|
||||
4B06AAF82C6460760034D014 /* IntelligentKeyboard.cpp in Sources */,
|
||||
4B7752B628217EE70073E2C5 /* DSK.cpp in Sources */,
|
||||
4B06AAD12C645F130034D014 /* 1770.cpp in Sources */,
|
||||
4B778F2523A5EDF40000D260 /* Encoder.cpp in Sources */,
|
||||
4B778F4223A5F1A70000D260 /* MemoryFuzzer.cpp in Sources */,
|
||||
4B778F0123A5EBA00000D260 /* MacintoshIMG.cpp in Sources */,
|
||||
4B7752AD28217E770073E2C5 /* AmigaADF.cpp in Sources */,
|
||||
4B06AAEB2C645FE80034D014 /* Keyboard.cpp in Sources */,
|
||||
4BFF1D3D2235C3C100838EA1 /* EmuTOSTests.mm in Sources */,
|
||||
4B06AB052C6460EC0034D014 /* ZXSpectrum.cpp in Sources */,
|
||||
4B3F76B925A1635300178AEC /* PowerPCDecoderTests.mm in Sources */,
|
||||
4B778F0A23A5EC150000D260 /* TapePRG.cpp in Sources */,
|
||||
4B778F0823A5EC150000D260 /* CSW.cpp in Sources */,
|
||||
@ -6362,6 +6470,7 @@
|
||||
4B7752BA28217F160073E2C5 /* Bitplanes.cpp in Sources */,
|
||||
4BDDBA991EF3451200347E61 /* Z80MachineCycleTests.swift in Sources */,
|
||||
4B778F4E23A5F2160000D260 /* StaticAnalyser.cpp in Sources */,
|
||||
4B06AAFF2C6460A80034D014 /* ConfidenceCounter.cpp in Sources */,
|
||||
4B778F5523A5F2A70000D260 /* Keyboard.cpp in Sources */,
|
||||
4B778F5D23A5F3230000D260 /* Commodore.cpp in Sources */,
|
||||
4B98A05F1FFAD62400ADF63B /* CSROMFetcher.mm in Sources */,
|
||||
@ -6372,20 +6481,29 @@
|
||||
4B778F4A23A5F1FB0000D260 /* StaticAnalyser.cpp in Sources */,
|
||||
4B7752AB28217E560073E2C5 /* SZX.cpp in Sources */,
|
||||
4BD91D772401C2B8007BDC91 /* PatrikRakTests.swift in Sources */,
|
||||
4B06AAE22C645F970034D014 /* PCBooter.cpp in Sources */,
|
||||
4B1082C32C1A87CA00B07C5D /* CSL.cpp in Sources */,
|
||||
4B680CE223A5553100451D43 /* 68000ComparativeTests.mm in Sources */,
|
||||
4B778F3723A5F11C0000D260 /* Parser.cpp in Sources */,
|
||||
4B06AAE32C645F9E0034D014 /* StringSerialiser.cpp in Sources */,
|
||||
4B06AADB2C645F6D0034D014 /* DiskROM.cpp in Sources */,
|
||||
4B778F4523A5F1CD0000D260 /* SegmentParser.cpp in Sources */,
|
||||
4B90467422C6FADD000E2074 /* 68000BitwiseTests.mm in Sources */,
|
||||
4B06AAD42C645F250034D014 /* Oric.cpp in Sources */,
|
||||
4B7962A12819681F008130F9 /* Decoder.cpp in Sources */,
|
||||
4B7752BB28217F1A0073E2C5 /* Copper.cpp in Sources */,
|
||||
4B778F1D23A5ED470000D260 /* DiskController.cpp in Sources */,
|
||||
4B778F0023A5EB990000D260 /* G64.cpp in Sources */,
|
||||
4B778F4B23A5F2030000D260 /* StaticAnalyser.cpp in Sources */,
|
||||
4B778F5023A5F2230000D260 /* StaticAnalyser.cpp in Sources */,
|
||||
4B06AACB2C645ED00034D014 /* AY38910.cpp in Sources */,
|
||||
4B06AB172C6461B30034D014 /* MultiSpeaker.cpp in Sources */,
|
||||
4B06AADE2C645F7E0034D014 /* Video.cpp in Sources */,
|
||||
4B924E991E74D22700B76AF1 /* AtariStaticAnalyserTests.mm in Sources */,
|
||||
4B90467622C6FD6E000E2074 /* 68000ArithmeticTests.mm in Sources */,
|
||||
4B778F3423A5F1040000D260 /* DirectAccessDevice.cpp in Sources */,
|
||||
4B7BC7F51F58F27800D1B1B4 /* 6502AllRAM.cpp in Sources */,
|
||||
4B06AAD82C645F370034D014 /* MasterSystem.cpp in Sources */,
|
||||
4BC5C3E022C994CD00795658 /* 68000MoveTests.mm in Sources */,
|
||||
4B778F5923A5F2D00000D260 /* Z80.cpp in Sources */,
|
||||
4BD971392BFC3D9D00C907AA /* ArchimedesStaticAnalyserTests.mm in Sources */,
|
||||
@ -6393,48 +6511,66 @@
|
||||
4B778F0E23A5EC4F0000D260 /* Tape.cpp in Sources */,
|
||||
4B778F2D23A5EF190000D260 /* MFMDiskController.cpp in Sources */,
|
||||
4B7752C228217F5C0073E2C5 /* Spectrum.cpp in Sources */,
|
||||
4B06AAD92C645F5D0034D014 /* SN76489.cpp in Sources */,
|
||||
423BDC4A2AB24699008E37B6 /* 8088Tests.mm in Sources */,
|
||||
4B778F2723A5EEF60000D260 /* BinaryDump.cpp in Sources */,
|
||||
4BFCA1241ECBDCB400AC40C1 /* AllRAMProcessor.cpp in Sources */,
|
||||
4B06AB042C6460D60034D014 /* 6560.cpp in Sources */,
|
||||
4B06AB002C6460B70034D014 /* Keyboard.cpp in Sources */,
|
||||
4B778F5223A5F22F0000D260 /* StaticAnalyser.cpp in Sources */,
|
||||
4B778F4923A5F1F40000D260 /* StaticAnalyser.cpp in Sources */,
|
||||
4BBF49AF1ED2880200AB3669 /* FUSETests.swift in Sources */,
|
||||
4B778F4D23A5F20F0000D260 /* StaticAnalyser.cpp in Sources */,
|
||||
4B06AAD72C645F330034D014 /* AppleIIgs.cpp in Sources */,
|
||||
4B06AB082C64611F0034D014 /* ColecoVision.cpp in Sources */,
|
||||
4B778F0423A5EBB00000D260 /* OricMFMDSK.cpp in Sources */,
|
||||
4B7752BE28217F220073E2C5 /* MouseJoystick.cpp in Sources */,
|
||||
4B8DF4D825465B7500F3433C /* IIgsMemoryMapTests.mm in Sources */,
|
||||
4B3BA0CE1D318B44005DD7A7 /* C1540Bridge.mm in Sources */,
|
||||
4B4F477C253530B7004245B8 /* Jeek816Tests.swift in Sources */,
|
||||
4B06AB062C6460F40034D014 /* Atari2600.cpp in Sources */,
|
||||
4B7752B928217F140073E2C5 /* Audio.cpp in Sources */,
|
||||
4B778F0F23A5EC560000D260 /* PCMTrack.cpp in Sources */,
|
||||
4B778F1123A5EC650000D260 /* FileHolder.cpp in Sources */,
|
||||
4B778EFC23A5EB8B0000D260 /* AcornADF.cpp in Sources */,
|
||||
4B06AB122C6461910034D014 /* Plus3.cpp in Sources */,
|
||||
4B778F2023A5EDCE0000D260 /* HFV.cpp in Sources */,
|
||||
4B778F3323A5F0FB0000D260 /* MassStorageDevice.cpp in Sources */,
|
||||
4B75F979280D7C5100121055 /* 68000DecoderTests.mm in Sources */,
|
||||
4B778F2C23A5EF0F0000D260 /* ZX8081.cpp in Sources */,
|
||||
4B778F3023A5F0C50000D260 /* Macintosh.cpp in Sources */,
|
||||
4B882F5C2C32199400D84031 /* MachineForTarget.cpp in Sources */,
|
||||
4B06AAD32C645F1F0034D014 /* MSX.cpp in Sources */,
|
||||
4B06AAD02C645F0A0034D014 /* EXDos.cpp in Sources */,
|
||||
4B3BA0D11D318B44005DD7A7 /* TestMachine6502.mm in Sources */,
|
||||
4B778F4623A5F1D80000D260 /* StaticAnalyser.cpp in Sources */,
|
||||
4B778F1323A5EC890000D260 /* Z80Base.cpp in Sources */,
|
||||
4B778F2923A5EF030000D260 /* CommodoreROM.cpp in Sources */,
|
||||
4B06AADC2C645F720034D014 /* BD500.cpp in Sources */,
|
||||
4B778F4823A5F1E70000D260 /* StaticAnalyser.cpp in Sources */,
|
||||
4B92EACA1B7C112B00246143 /* 6502TimingTests.swift in Sources */,
|
||||
4B778F2823A5EEF80000D260 /* Cartridge.cpp in Sources */,
|
||||
4B06AAED2C6460040034D014 /* Sound.cpp in Sources */,
|
||||
4B06AAF12C64602D0034D014 /* 6850.cpp in Sources */,
|
||||
4B06AAF22C6460320034D014 /* MFP68901.cpp in Sources */,
|
||||
4B7752B528217ED30073E2C5 /* SNA.cpp in Sources */,
|
||||
4BEDA3C025B25563000C2DBD /* Decoder.cpp in Sources */,
|
||||
4B2005432B804D6400420C5C /* ARMDecoderTests.mm in Sources */,
|
||||
4B778F4C23A5F2090000D260 /* StaticAnalyser.cpp in Sources */,
|
||||
4B778F2623A5EE350000D260 /* Acorn.cpp in Sources */,
|
||||
4B7752C128217F490073E2C5 /* FAT.cpp in Sources */,
|
||||
4B06AAFE2C6460A40034D014 /* ConfidenceSummary.cpp in Sources */,
|
||||
4B778F5B23A5F2DE0000D260 /* Tape.cpp in Sources */,
|
||||
4BB73EB71B587A5100552FC2 /* AllSuiteATests.swift in Sources */,
|
||||
4B7752B228217EAE0073E2C5 /* StaticAnalyser.cpp in Sources */,
|
||||
4B7752BC28217F1D0073E2C5 /* Disk.cpp in Sources */,
|
||||
4B06AAE42C645FA50034D014 /* DiskIICard.cpp in Sources */,
|
||||
4B04C899285E3DC800AA8FD6 /* 65816ComparativeTests.mm in Sources */,
|
||||
4B06AAF92C64607C0034D014 /* AudioToggle.cpp in Sources */,
|
||||
4B01A6881F22F0DB001FD6E3 /* Z80MemptrTests.swift in Sources */,
|
||||
4B778EFA23A5EB790000D260 /* DMK.cpp in Sources */,
|
||||
4BEE1EC122B5E2FD000A26A6 /* Encoder.cpp in Sources */,
|
||||
4B06AACD2C645EE50034D014 /* Enterprise.cpp in Sources */,
|
||||
4B7752AF28217E890073E2C5 /* DAT.cpp in Sources */,
|
||||
4B121F9B1E06293F00BFDA12 /* PCMSegmentEventSourceTests.mm in Sources */,
|
||||
4B778EFF23A5EB940000D260 /* D64.cpp in Sources */,
|
||||
@ -6442,78 +6578,111 @@
|
||||
4B778F2423A5EDEE0000D260 /* PRG.cpp in Sources */,
|
||||
4B778F5A23A5F2D50000D260 /* 6502.cpp in Sources */,
|
||||
4B778F6223A5F35F0000D260 /* File.cpp in Sources */,
|
||||
4B06AB0F2C6461780034D014 /* MultiProducer.cpp in Sources */,
|
||||
4B778F3523A5F1040000D260 /* SCSI.cpp in Sources */,
|
||||
4BD388882239E198002D14B5 /* 68000Tests.mm in Sources */,
|
||||
4B8DF5142550D62A00F3433C /* 65816kromTests.swift in Sources */,
|
||||
4B06AB022C6460CB0034D014 /* Typer.cpp in Sources */,
|
||||
4BA91E1D216D85BA00F79557 /* MasterSystemVDPTests.mm in Sources */,
|
||||
4B98A0611FFADCDE00ADF63B /* MSXStaticAnalyserTests.mm in Sources */,
|
||||
4BE34438238389E10058E78F /* AtariSTVideoTests.mm in Sources */,
|
||||
4BEF6AAC1D35D1C400E73575 /* DPLLTests.swift in Sources */,
|
||||
4BE76CF922641ED400ACD6FA /* QLTests.mm in Sources */,
|
||||
4B06AB0C2C6461590034D014 /* StaticAnalyser.cpp in Sources */,
|
||||
4B43983A29620FC8006B0BFC /* 9918.cpp in Sources */,
|
||||
4B778F0923A5EC150000D260 /* OricTAP.cpp in Sources */,
|
||||
4B3BA0CF1D318B44005DD7A7 /* MOS6522Bridge.mm in Sources */,
|
||||
4B778F6023A5F3460000D260 /* Disk.cpp in Sources */,
|
||||
4B06AB142C64619E0034D014 /* MultiJoystickMachine.cpp in Sources */,
|
||||
4B778F5C23A5F3070000D260 /* MSX.cpp in Sources */,
|
||||
4B7752AA28217E370073E2C5 /* ROMCatalogue.cpp in Sources */,
|
||||
4B778F0323A5EBB00000D260 /* FAT12.cpp in Sources */,
|
||||
4B778F4023A5F1910000D260 /* z8530.cpp in Sources */,
|
||||
4B778EFD23A5EB8E0000D260 /* AppleDSK.cpp in Sources */,
|
||||
4B7752B728217EF40073E2C5 /* Chipset.cpp in Sources */,
|
||||
4B06AAF72C64606E0034D014 /* DiskII.cpp in Sources */,
|
||||
4B778EFB23A5EB7E0000D260 /* HFE.cpp in Sources */,
|
||||
4BC751B21D157E61006C31D9 /* 6522Tests.swift in Sources */,
|
||||
4B0DA67D282DCDF300C12F17 /* Instruction.cpp in Sources */,
|
||||
4B06AAE12C645F8B0034D014 /* Video.cpp in Sources */,
|
||||
4BFCA12B1ECBE7C400AC40C1 /* ZexallTests.swift in Sources */,
|
||||
4B06AAD62C645F2D0034D014 /* AtariST.cpp in Sources */,
|
||||
4B06AB132C6461970034D014 /* MultiConfigurable.cpp in Sources */,
|
||||
4B778F2223A5EDDD0000D260 /* PulseQueuedTape.cpp in Sources */,
|
||||
4B06AB112C64618B0034D014 /* Tape.cpp in Sources */,
|
||||
4B051CB3267D3FF800CA44E8 /* EnterpriseNickTests.mm in Sources */,
|
||||
4B9D0C4D22C7DA1A00DE1AD3 /* 68000ControlFlowTests.mm in Sources */,
|
||||
4BB2A9AF1E13367E001A5C23 /* CRCTests.mm in Sources */,
|
||||
4B06AAEE2C64600C0034D014 /* Vic20.cpp in Sources */,
|
||||
4B06AB0A2C6461350034D014 /* TIASound.cpp in Sources */,
|
||||
4BB0CAA727E51B6300672A88 /* DingusdevPowerPCTests.mm in Sources */,
|
||||
4B06AACC2C645EDF0034D014 /* Archimedes.cpp in Sources */,
|
||||
4B778F5623A5F2AF0000D260 /* CPM.cpp in Sources */,
|
||||
4B778F1C23A5ED3F0000D260 /* TimedEventLoop.cpp in Sources */,
|
||||
4B06AAFA2C6460800034D014 /* KonamiSCC.cpp in Sources */,
|
||||
4B47770D26900685005C2340 /* EnterpriseDaveTests.mm in Sources */,
|
||||
4B3BA0D01D318B44005DD7A7 /* MOS6532Bridge.mm in Sources */,
|
||||
4B778F3823A5F11C0000D260 /* SegmentParser.cpp in Sources */,
|
||||
4B778F0723A5EC150000D260 /* CommodoreTAP.cpp in Sources */,
|
||||
4281683A2A37AFB4008ECD27 /* DispatcherTests.mm in Sources */,
|
||||
4B06AAE52C645FAA0034D014 /* SCSICard.cpp in Sources */,
|
||||
4B778F4123A5F19A0000D260 /* MemoryPacker.cpp in Sources */,
|
||||
4B06AAE02C645F870034D014 /* Video.cpp in Sources */,
|
||||
4B778F4423A5F1BE0000D260 /* CommodoreGCR.cpp in Sources */,
|
||||
4B778EF923A5EB740000D260 /* MSA.cpp in Sources */,
|
||||
4B4DEC07252BFA56004583AC /* 65816Base.cpp in Sources */,
|
||||
4B7752A628217DF80073E2C5 /* Dave.cpp in Sources */,
|
||||
4B778F2323A5EDE40000D260 /* Tape.cpp in Sources */,
|
||||
4B7752A728217E060073E2C5 /* Blitter.cpp in Sources */,
|
||||
4B06AAD22C645F190034D014 /* I2C.cpp in Sources */,
|
||||
4B778F4F23A5F21C0000D260 /* StaticAnalyser.cpp in Sources */,
|
||||
4B06AAE72C645FBC0034D014 /* DMAController.cpp in Sources */,
|
||||
4B8DD3682633B2D400B3C866 /* SpectrumVideoContentionTests.mm in Sources */,
|
||||
4B06AB162C6461AB0034D014 /* Keyboard.cpp in Sources */,
|
||||
4B7752A928217E200073E2C5 /* 65816Storage.cpp in Sources */,
|
||||
4B06AAFB2C6460920034D014 /* Keyboard.cpp in Sources */,
|
||||
4BC62FF228A149300036AE59 /* NSData+dataWithContentsOfGZippedFile.m in Sources */,
|
||||
4B06AB152C6461A20034D014 /* MultiKeyboardMachine.cpp in Sources */,
|
||||
4B7752AC28217E6E0073E2C5 /* StaticAnalyser.cpp in Sources */,
|
||||
4B778F1223A5EC720000D260 /* CRT.cpp in Sources */,
|
||||
4B778EF423A5DB3A0000D260 /* C1540.cpp in Sources */,
|
||||
4B778F3C23A5F16F0000D260 /* FIRFilter.cpp in Sources */,
|
||||
4B06AB092C64612C0034D014 /* TIA.cpp in Sources */,
|
||||
4B778F5423A5F2600000D260 /* UnformattedTrack.cpp in Sources */,
|
||||
4B7752B028217E9A0073E2C5 /* StaticAnalyser.cpp in Sources */,
|
||||
4B06AADA2C645F650034D014 /* MemorySlotHandler.cpp in Sources */,
|
||||
4B778EF823A5EB6E0000D260 /* NIB.cpp in Sources */,
|
||||
4B9D0C4B22C7D70A00DE1AD3 /* 68000BCDTests.mm in Sources */,
|
||||
4B778F5E23A5F3230000D260 /* Oric.cpp in Sources */,
|
||||
4B7752B828217F110073E2C5 /* Amiga.cpp in Sources */,
|
||||
4B06AAEF2C6460180034D014 /* Keyboard.cpp in Sources */,
|
||||
4B3BA0C31D318AEC005DD7A7 /* C1540Tests.swift in Sources */,
|
||||
4BDA8235261E8E000021AA19 /* Z80ContentionTests.mm in Sources */,
|
||||
4B882F592C2F9C6A00D84031 /* CPCShakerTests.mm in Sources */,
|
||||
4B7752C328217F720073E2C5 /* Z80.cpp in Sources */,
|
||||
4B06AACE2C645EEC0034D014 /* PCCompatible.cpp in Sources */,
|
||||
4B06AB072C6461160034D014 /* StaticAnalyser.cpp in Sources */,
|
||||
4B778F1A23A5ED320000D260 /* Video.cpp in Sources */,
|
||||
4B778F3B23A5F1650000D260 /* KeyboardMachine.cpp in Sources */,
|
||||
4B5D497C28513F870076E2F9 /* IPF.cpp in Sources */,
|
||||
4B06AAF32C64603D0034D014 /* Keyboard.cpp in Sources */,
|
||||
4B778F2E23A5F09E0000D260 /* IRQDelegatePortHandler.cpp in Sources */,
|
||||
4B778EF323A5DB230000D260 /* PCMSegment.cpp in Sources */,
|
||||
4B06AB0D2C6461610034D014 /* MultiMachine.cpp in Sources */,
|
||||
4B06AAD52C645F290034D014 /* AppleII.cpp in Sources */,
|
||||
4B06AAFC2C6460970034D014 /* Keyboard.cpp in Sources */,
|
||||
4B778F0D23A5EC150000D260 /* ZX80O81P.cpp in Sources */,
|
||||
4B1414621B58888700E04248 /* KlausDormannTests.swift in Sources */,
|
||||
4B778EFE23A5EB910000D260 /* CPCDSK.cpp in Sources */,
|
||||
4B778F5823A5F2C60000D260 /* Tape.cpp in Sources */,
|
||||
4B7752B328217EB90073E2C5 /* State.cpp in Sources */,
|
||||
4B06AB032C6460D00034D014 /* OPLL.cpp in Sources */,
|
||||
4B06AAFD2C64609D0034D014 /* IMD.cpp in Sources */,
|
||||
4B1414601B58885000E04248 /* WolfgangLorenzTests.swift in Sources */,
|
||||
4BD4A8D01E077FD20020D856 /* PCMTrackTests.mm in Sources */,
|
||||
4B778F2123A5EDD50000D260 /* TrackSerialiser.cpp in Sources */,
|
||||
4B049CDD1DA3C82F00322067 /* BCDTest.swift in Sources */,
|
||||
4B06AADF2C645F830034D014 /* Video.cpp in Sources */,
|
||||
4BC6237226F94BCB00F83DFE /* MintermTests.mm in Sources */,
|
||||
4B7752BF28217F250073E2C5 /* Sprites.cpp in Sources */,
|
||||
4B778F3923A5F11C0000D260 /* Shifter.cpp in Sources */,
|
||||
@ -6521,10 +6690,14 @@
|
||||
4B778F3623A5F1040000D260 /* Target.cpp in Sources */,
|
||||
4B1D08061E0F7A1100763741 /* TimeTests.mm in Sources */,
|
||||
4B75EBFE28FF9CA20088AB22 /* MacintoshVolume.cpp in Sources */,
|
||||
4B06AB0B2C64614B0034D014 /* Electron.cpp in Sources */,
|
||||
4B06AAF52C6460600034D014 /* Mouse.cpp in Sources */,
|
||||
4B778F3D23A5F1750000D260 /* ncr5380.cpp in Sources */,
|
||||
4BF701A026FFD32300996424 /* AmigaBlitterTests.mm in Sources */,
|
||||
4B7752B428217ECB0073E2C5 /* ZXSpectrumTAP.cpp in Sources */,
|
||||
4B778F6323A5F3630000D260 /* Tape.cpp in Sources */,
|
||||
4B06AB012C6460C30034D014 /* Video.cpp in Sources */,
|
||||
4B06AADD2C645F790034D014 /* Microdisc.cpp in Sources */,
|
||||
4B778EF523A5DB440000D260 /* StaticAnalyser.cpp in Sources */,
|
||||
4BEE1EC022B5E236000A26A6 /* MacGCRTests.mm in Sources */,
|
||||
4B778F0623A5EC150000D260 /* CAS.cpp in Sources */,
|
||||
@ -6532,10 +6705,13 @@
|
||||
4B778F3F23A5F1890000D260 /* MacintoshDoubleDensityDrive.cpp in Sources */,
|
||||
4B778F1623A5ECA00000D260 /* Z80AllRAM.cpp in Sources */,
|
||||
4BEDA40D25B2844B000C2DBD /* Decoder.cpp in Sources */,
|
||||
4B06AAE62C645FB10034D014 /* ADB.cpp in Sources */,
|
||||
4B778EF723A5EB670000D260 /* SSD.cpp in Sources */,
|
||||
4BDA7F8329C4EA28007A10A5 /* 6809OperationMapperTests.mm in Sources */,
|
||||
4B778F5723A5F2BB0000D260 /* ZX8081.cpp in Sources */,
|
||||
4B06AACF2C645EF40034D014 /* i8272.cpp in Sources */,
|
||||
4B778F2F23A5F0B10000D260 /* ScanTarget.cpp in Sources */,
|
||||
4B882F5D2C3219A400D84031 /* AmstradCPC.cpp in Sources */,
|
||||
4B69DEB72AB79E4F0055B217 /* Instruction.cpp in Sources */,
|
||||
4BE90FFD22D5864800FB464D /* MacintoshVideoTests.mm in Sources */,
|
||||
4B4F478A25367EDC004245B8 /* 65816AddressingTests.swift in Sources */,
|
||||
@ -6543,16 +6719,23 @@
|
||||
4B778F0C23A5EC150000D260 /* TZX.cpp in Sources */,
|
||||
4B778F1B23A5ED380000D260 /* Video.cpp in Sources */,
|
||||
4B778F4723A5F1DD0000D260 /* StaticAnalyser.cpp in Sources */,
|
||||
4B06AAF62C6460670034D014 /* DiskIIDrive.cpp in Sources */,
|
||||
4B778F1923A5ED1B0000D260 /* 6502Storage.cpp in Sources */,
|
||||
4B7752A828217E110073E2C5 /* Nick.cpp in Sources */,
|
||||
42A5E80C2ABBE04600A0DD5D /* NeskellTests.swift in Sources */,
|
||||
4B06AAE92C645FD30034D014 /* Jasmin.cpp in Sources */,
|
||||
4B7752AE28217E830073E2C5 /* 2MG.cpp in Sources */,
|
||||
4B06AB102C6461810034D014 /* SoundGenerator.cpp in Sources */,
|
||||
4B08A2781EE39306008B7065 /* TestMachine.mm in Sources */,
|
||||
4B778F1E23A5EDC00000D260 /* DriveSpeedAccumulator.cpp in Sources */,
|
||||
4B778F4323A5F1B00000D260 /* ImplicitSectors.cpp in Sources */,
|
||||
4B7752B128217EA30073E2C5 /* StaticAnalyser.cpp in Sources */,
|
||||
4B778F5123A5F2290000D260 /* StaticAnalyser.cpp in Sources */,
|
||||
4B06AB0E2C6461700034D014 /* MultiMediaTarget.cpp in Sources */,
|
||||
42437B332AC70833006DFED1 /* HDV.cpp in Sources */,
|
||||
4B06AAE82C645FCD0034D014 /* RP5C01.cpp in Sources */,
|
||||
4B06AAEC2C645FF50034D014 /* Keyboard.cpp in Sources */,
|
||||
4B06AAF02C6460240034D014 /* ReactiveDevice.cpp in Sources */,
|
||||
4B7752C028217F3D0073E2C5 /* Line.cpp in Sources */,
|
||||
4B7C7A00282C3BCA002D6C0B /* 68000flamewingTests.mm in Sources */,
|
||||
4B778F0223A5EBA40000D260 /* MFMSectorDump.cpp in Sources */,
|
||||
@ -6561,6 +6744,7 @@
|
||||
4B778F3E23A5F17C0000D260 /* IWM.cpp in Sources */,
|
||||
4BD91D732401960C007BDC91 /* STX.cpp in Sources */,
|
||||
4B778F1023A5EC5D0000D260 /* Drive.cpp in Sources */,
|
||||
4B06AAF42C6460430034D014 /* ZX8081.cpp in Sources */,
|
||||
4B9D0C4F22C7E0CF00DE1AD3 /* 68000RollShiftTests.mm in Sources */,
|
||||
);
|
||||
runOnlyForDeploymentPostprocessing = 0;
|
||||
|
@ -1,7 +1,7 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<Scheme
|
||||
LastUpgradeVersion = "1400"
|
||||
version = "1.8">
|
||||
version = "1.3">
|
||||
<BuildAction
|
||||
parallelizeBuildables = "YES"
|
||||
buildImplicitDependencies = "YES">
|
||||
|
@ -7,7 +7,7 @@
|
||||
buildImplicitDependencies = "YES">
|
||||
</BuildAction>
|
||||
<TestAction
|
||||
buildConfiguration = "Debug"
|
||||
buildConfiguration = "Release"
|
||||
selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
|
||||
selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
|
||||
shouldUseLaunchSchemeArgsEnv = "YES">
|
||||
|
@ -16,6 +16,7 @@
|
||||
#include <fstream>
|
||||
#include <unordered_map>
|
||||
#include <unordered_set>
|
||||
#include <vector>
|
||||
|
||||
#include "NSData+dataWithContentsOfGZippedFile.h"
|
||||
|
||||
|
@ -15,6 +15,7 @@
|
||||
|
||||
#include <map>
|
||||
#include <sstream>
|
||||
#include <vector>
|
||||
|
||||
using namespace InstructionSet::ARM;
|
||||
|
||||
|
332
OSBindings/Mac/Clock SignalTests/CPCShakerTests.mm
Normal file
332
OSBindings/Mac/Clock SignalTests/CPCShakerTests.mm
Normal file
@ -0,0 +1,332 @@
|
||||
//
|
||||
// CPCShakerTests.m
|
||||
// Clock SignalTests
|
||||
//
|
||||
// Created by Thomas Harte on 28/06/2024.
|
||||
// Copyright © 2024 Thomas Harte. All rights reserved.
|
||||
//
|
||||
|
||||
#import <XCTest/XCTest.h>
|
||||
|
||||
#include <array>
|
||||
#include <cassert>
|
||||
|
||||
#include "CSL.hpp"
|
||||
#include "AmstradCPC.hpp"
|
||||
#include "../../../Analyser/Static/AmstradCPC/Target.hpp"
|
||||
#include "../../../Machines/AmstradCPC/Keyboard.hpp"
|
||||
#include "../../../Outputs/ScanTarget.hpp"
|
||||
#include "CSROMFetcher.hpp"
|
||||
#include "TimedMachine.hpp"
|
||||
#include "MediaTarget.hpp"
|
||||
#include "KeyboardMachine.hpp"
|
||||
#include "MachineForTarget.hpp"
|
||||
|
||||
struct ScanTarget: public Outputs::Display::ScanTarget {
|
||||
void set_modals(Modals modals) override {
|
||||
modals_ = modals;
|
||||
}
|
||||
Scan *begin_scan() override {
|
||||
return &scan_;
|
||||
}
|
||||
uint8_t *begin_data(size_t, size_t) override {
|
||||
return data_.data();
|
||||
}
|
||||
|
||||
|
||||
void end_scan() override {
|
||||
// Empirical, CPC-specific observation: x positions end up
|
||||
// being multiplied by 61 compared to a 1:1 pixel sampling at
|
||||
// the CPC's highest resolution.
|
||||
const int WidthDivider = 61;
|
||||
|
||||
const int src_pixels = scan_.end_points[1].data_offset - scan_.end_points[0].data_offset;
|
||||
const int dst_pixels = (scan_.end_points[1].x - scan_.end_points[0].x) / WidthDivider;
|
||||
|
||||
const int step = (src_pixels << 16) / dst_pixels;
|
||||
int position = 0;
|
||||
|
||||
const auto x1 = scan_.end_points[0].x / WidthDivider;
|
||||
const auto x2 = scan_.end_points[1].x / WidthDivider;
|
||||
|
||||
uint8_t *const line = &raw_image_[line_ * ImageWidth];
|
||||
if(x_ < x1) {
|
||||
std::fill(&line[x_], &line[x1], 0);
|
||||
}
|
||||
for(int x = x1; x < x2; x++) {
|
||||
line[x] = data_[position >> 16];
|
||||
position += step;
|
||||
}
|
||||
x_ = x2;
|
||||
}
|
||||
void announce(Event event, bool, const Scan::EndPoint &, uint8_t) override {
|
||||
switch(event) {
|
||||
case Event::EndHorizontalRetrace: {
|
||||
if(line_ == ImageHeight - 1) break;
|
||||
|
||||
if(x_ < ImageWidth) {
|
||||
uint8_t *const line = &raw_image_[line_ * ImageWidth];
|
||||
std::fill(&line[x_], &line[ImageWidth], 0);
|
||||
}
|
||||
|
||||
++line_;
|
||||
x_ = 0;
|
||||
} break;
|
||||
case Event::EndVerticalRetrace:
|
||||
std::fill(&raw_image_[line_ * ImageWidth], &raw_image_[ImageHeight * ImageWidth], 0);
|
||||
line_ = 0;
|
||||
x_ = 0;
|
||||
break;
|
||||
default: break;
|
||||
}
|
||||
}
|
||||
|
||||
NSBitmapImageRep *image_representation() {
|
||||
NSBitmapImageRep *const result =
|
||||
[[NSBitmapImageRep alloc]
|
||||
initWithBitmapDataPlanes:NULL
|
||||
pixelsWide:ImageWidth
|
||||
pixelsHigh:ImageHeight
|
||||
bitsPerSample:8
|
||||
samplesPerPixel:4
|
||||
hasAlpha:YES
|
||||
isPlanar:NO
|
||||
colorSpaceName:NSDeviceRGBColorSpace
|
||||
bytesPerRow:4 * ImageWidth
|
||||
bitsPerPixel:0];
|
||||
uint8_t *const data = result.bitmapData;
|
||||
|
||||
for(int c = 0; c < ImageWidth * ImageHeight; c++) {
|
||||
data[c * 4 + 0] = ((raw_image_[c] >> 4) & 3) * 127;
|
||||
data[c * 4 + 1] = ((raw_image_[c] >> 2) & 3) * 127;
|
||||
data[c * 4 + 2] = ((raw_image_[c] >> 0) & 3) * 127;
|
||||
data[c * 4 + 3] = 0xff;
|
||||
}
|
||||
|
||||
return result;
|
||||
}
|
||||
|
||||
|
||||
private:
|
||||
Modals modals_;
|
||||
Scan scan_;
|
||||
std::array<uint8_t, 2048> data_;
|
||||
int line_ = 0;
|
||||
int x_ = 0;
|
||||
|
||||
static constexpr int ImageWidth = 914;
|
||||
static constexpr int ImageHeight = 312;
|
||||
std::array<uint8_t, ImageWidth*ImageHeight> raw_image_;
|
||||
};
|
||||
|
||||
struct SSMDelegate: public AmstradCPC::Machine::SSMDelegate {
|
||||
SSMDelegate(ScanTarget &scan_target) : scan_target_(scan_target) {
|
||||
temp_dir_ = NSTemporaryDirectory();
|
||||
NSLog(@"Outputting to %@", temp_dir_);
|
||||
}
|
||||
|
||||
void set_crtc(int number) {
|
||||
crtc_ = number;
|
||||
}
|
||||
|
||||
void perform(uint16_t code) {
|
||||
if(!code) {
|
||||
// A code of 0000 is supposed to end a wait0000 command; at present
|
||||
// there seem to be no wait0000 commands to unblock.
|
||||
return;
|
||||
}
|
||||
|
||||
NSData *const data =
|
||||
[scan_target_.image_representation() representationUsingType:NSPNGFileType properties:@{}];
|
||||
NSString *const name = [temp_dir_ stringByAppendingPathComponent:[NSString stringWithFormat:@"CLK_%d_%04x.png", crtc_, code]];
|
||||
[data
|
||||
writeToFile:name
|
||||
atomically:NO];
|
||||
NSLog(@"Wrote %@", name);
|
||||
}
|
||||
|
||||
private:
|
||||
ScanTarget &scan_target_;
|
||||
NSString *temp_dir_;
|
||||
int crtc_ = 0;
|
||||
};
|
||||
|
||||
//
|
||||
// Runs a local capture of the test cases found at https://shaker.logonsystem.eu
|
||||
//
|
||||
@interface CPCShakerTests : XCTestCase
|
||||
@end
|
||||
|
||||
@implementation CPCShakerTests {}
|
||||
|
||||
- (void)testCSLPath:(NSString *)path name:(NSString *)name {
|
||||
using namespace Storage::Automation;
|
||||
const auto steps = CSL::parse([[path stringByAppendingPathComponent:name] UTF8String]);
|
||||
|
||||
ScanTarget scan_target;
|
||||
SSMDelegate ssm_delegate(scan_target);
|
||||
|
||||
std::unique_ptr<Machine::DynamicMachine> lazy_machine;
|
||||
CSL::KeyDelay key_delay;
|
||||
using Target = Analyser::Static::AmstradCPC::Target;
|
||||
Target target;
|
||||
target.catch_ssm_codes = true;
|
||||
target.model = Target::Model::CPC6128;
|
||||
|
||||
NSString *diskPath;
|
||||
const auto machine = [&]() -> Machine::DynamicMachine& {
|
||||
if(!lazy_machine) {
|
||||
Machine::Error error;
|
||||
lazy_machine = Machine::MachineForTarget(&target, CSROMFetcher(), error);
|
||||
static_cast<AmstradCPC::Machine *>(lazy_machine->raw_pointer())
|
||||
->set_ssm_delegate(&ssm_delegate);
|
||||
lazy_machine->scan_producer()->set_scan_target(&scan_target);
|
||||
|
||||
if(diskPath) {
|
||||
const auto media = Analyser::Static::GetMedia(diskPath.UTF8String);
|
||||
lazy_machine->media_target()->insert_media(media);
|
||||
}
|
||||
}
|
||||
return *lazy_machine;
|
||||
};
|
||||
const auto delay = [&](uint64_t micros) {
|
||||
machine().timed_machine()->run_for((double)micros / 1'000'000.0);
|
||||
};
|
||||
|
||||
using Type = CSL::Instruction::Type;
|
||||
for(const auto &step: steps) {
|
||||
switch(step.type) {
|
||||
case Type::Version:
|
||||
if(std::get<std::string>(step.argument) != "1.0") {
|
||||
XCTAssert(false, "Unrecognised file version");
|
||||
}
|
||||
break;
|
||||
|
||||
case Type::CRTCSelect: {
|
||||
const auto argument = static_cast<int>(std::get<uint64_t>(step.argument));
|
||||
switch(argument) {
|
||||
default:
|
||||
NSLog(@"Unrecognised CRTC type %d", argument);
|
||||
break;
|
||||
case 0: target.crtc_type = Target::CRTCType::Type0; break;
|
||||
case 1: target.crtc_type = Target::CRTCType::Type1; break;
|
||||
case 2: target.crtc_type = Target::CRTCType::Type2; break;
|
||||
case 3: target.crtc_type = Target::CRTCType::Type3; break;
|
||||
}
|
||||
ssm_delegate.set_crtc(argument);
|
||||
} break;
|
||||
|
||||
case Type::Reset:
|
||||
lazy_machine.reset();
|
||||
break;
|
||||
|
||||
case Type::Wait:
|
||||
delay(std::get<uint64_t>(step.argument));
|
||||
break;
|
||||
|
||||
case Type::DiskInsert: {
|
||||
const auto &disk = std::get<CSL::DiskInsert>(step.argument);
|
||||
XCTAssertEqual(disk.drive, 0); // Only drive 0 is supported for now.
|
||||
|
||||
NSString *diskName = [NSString stringWithUTF8String:disk.file.c_str()];
|
||||
diskPath =
|
||||
[[NSBundle bundleForClass:[self class]]
|
||||
pathForResource:diskName ofType:nil inDirectory:@"Shaker"];
|
||||
XCTAssertNotNil(diskPath);
|
||||
|
||||
if(lazy_machine) {
|
||||
const auto media = Analyser::Static::GetMedia(diskPath.UTF8String);
|
||||
machine().media_target()->insert_media(media);
|
||||
}
|
||||
} break;
|
||||
|
||||
case Type::KeyDelay:
|
||||
key_delay = std::get<CSL::KeyDelay>(step.argument);
|
||||
break;
|
||||
|
||||
case Type::KeyOutput: {
|
||||
auto &key_target = *machine().keyboard_machine();
|
||||
|
||||
const auto &events = std::get<std::vector<CSL::KeyEvent>>(step.argument);
|
||||
bool last_down = false;
|
||||
for(const auto &event: events) {
|
||||
// Apply the interpress delay before if this is a second consecutive press;
|
||||
// if this is a release then apply the regular key delay.
|
||||
if(event.down && !last_down) {
|
||||
delay(key_delay.interpress_delay);
|
||||
} else if(!event.down) {
|
||||
delay(key_delay.press_delay);
|
||||
}
|
||||
|
||||
key_target.set_key_state(event.key, event.down);
|
||||
last_down = event.down;
|
||||
|
||||
// If this was the release of a carriage return, wait some more after release.
|
||||
if(key_delay.carriage_return_delay && (event.key == AmstradCPC::Key::KeyEnter || event.key == AmstradCPC::Key::KeyReturn)) {
|
||||
delay(*key_delay.carriage_return_delay);
|
||||
}
|
||||
}
|
||||
} break;
|
||||
|
||||
case Type::LoadCSL:
|
||||
// Quick fix: just recurse.
|
||||
[self
|
||||
testCSLPath:path
|
||||
name:
|
||||
[NSString stringWithUTF8String:
|
||||
(std::get<std::string>(step.argument) + ".csl").c_str()
|
||||
]];
|
||||
break;
|
||||
|
||||
default:
|
||||
XCTAssert(false, "Unrecognised command: %d", step.type);
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
- (void)testModulePath:(NSString *)path name:(NSString *)name {
|
||||
NSString *basePath =
|
||||
[[NSBundle bundleForClass:[self class]]
|
||||
pathForResource:@"Shaker"
|
||||
ofType:nil];
|
||||
[self testCSLPath:[basePath stringByAppendingPathComponent:path] name:name];
|
||||
}
|
||||
|
||||
- (void)testModuleA {
|
||||
[self testModulePath:@"MODULE A" name:@"SHAKE26A-0.CSL"];
|
||||
// [self testModulePath:@"MODULE A" name:@"SHAKE26A-1.CSL"];
|
||||
// [self testModulePath:@"MODULE A" name:@"SHAKE26A-2.CSL"];
|
||||
// [self testModulePath:@"MODULE A" name:@"SHAKE26A-3.CSL"];
|
||||
// [self testModulePath:@"MODULE A" name:@"SHAKE26A-4.CSL"];
|
||||
}
|
||||
- (void)testModuleB {
|
||||
[self testModulePath:@"MODULE B" name:@"SHAKE26B-0.CSL"];
|
||||
// [self testModulePath:@"MODULE B" name:@"SHAKE26B-1.CSL"];
|
||||
// [self testModulePath:@"MODULE B" name:@"SHAKE26B-2.CSL"];
|
||||
// [self testModulePath:@"MODULE B" name:@"SHAKE26B-3.CSL"];
|
||||
// [self testModulePath:@"MODULE B" name:@"SHAKE26B-4.CSL"];
|
||||
}
|
||||
- (void)testModuleC {
|
||||
[self testModulePath:@"MODULE C" name:@"SHAKE26C-0.CSL"];
|
||||
// [self testModulePath:@"MODULE C" name:@"SHAKE26C-1.CSL"];
|
||||
// [self testModulePath:@"MODULE C" name:@"SHAKE26C-2.CSL"];
|
||||
// [self testModulePath:@"MODULE C" name:@"SHAKE26C-3.CSL"];
|
||||
// [self testModulePath:@"MODULE C" name:@"SHAKE26C-4.CSL"];
|
||||
}
|
||||
- (void)testModuleD {
|
||||
[self testModulePath:@"MODULE D" name:@"SHAKE26D-0.CSL"];
|
||||
// [self testModulePath:@"MODULE D" name:@"SHAKE26D-1.CSL"];
|
||||
// [self testModulePath:@"MODULE D" name:@"SHAKE26D-2.CSL"];
|
||||
// [self testModulePath:@"MODULE D" name:@"SHAKE26D-3.CSL"];
|
||||
// [self testModulePath:@"MODULE D" name:@"SHAKE26D-4.CSL"];
|
||||
}
|
||||
- (void)testModuleE {
|
||||
[self testModulePath:@"MODULE E" name:@"SHAKE26E-0.CSL"];
|
||||
// [self testModulePath:@"MODULE E" name:@"SHAKE26E-1.CSL"];
|
||||
// [self testModulePath:@"MODULE E" name:@"SHAKE26E-2.CSL"];
|
||||
// [self testModulePath:@"MODULE E" name:@"SHAKE26E-3.CSL"];
|
||||
// [self testModulePath:@"MODULE E" name:@"SHAKE26E-4.CSL"];
|
||||
}
|
||||
|
||||
@end
|
297
OSBindings/Mac/Clock SignalTests/Shaker/MODULE A/SHAKE26A-0.CSL
Normal file
297
OSBindings/Mac/Clock SignalTests/Shaker/MODULE A/SHAKE26A-0.CSL
Normal file
@ -0,0 +1,297 @@
|
||||
;
|
||||
; Fichier de script CSL
|
||||
; Execution du module SHAKE26A du DSK SHAKER26.DSK en CRTC 0
|
||||
; Le module genere des instructions au format SSM
|
||||
;
|
||||
csl_version 1.0
|
||||
crtc_select 0
|
||||
reset
|
||||
wait 3000000
|
||||
disk_insert 'shaker26.dsk'
|
||||
key_delay 70000 70000 400000
|
||||
key_output 'RUN"SHAKE26A"\(RET)'
|
||||
wait 10000000
|
||||
;
|
||||
; test 1
|
||||
key_output '1'
|
||||
wait 800000 ; fin affichage 1er ecran & ssm 595215
|
||||
key_output ' '
|
||||
wait 800000 ; fin affichage 2nd ecran & ssm 659451
|
||||
key_output ' '
|
||||
wait 800000 ; fin affichage 3eme ecran & ssm 627963
|
||||
key_output ' '
|
||||
wait 800000 ; fin affichage 4eme ecran & ssm 698883
|
||||
key_output ' '
|
||||
wait 800000 ; fin affichage 5eme ecran & ssm 551415
|
||||
key_output ' '
|
||||
wait 1000000 ; retour menu
|
||||
;
|
||||
; test 2
|
||||
key_output '2'
|
||||
wait 800000 ; 519961 crt 0 1 ecran
|
||||
key_output ' '
|
||||
wait 800000 ; 2 ecrans
|
||||
wait 800000 ;
|
||||
key_output ' '
|
||||
wait 800000 ; 723923
|
||||
key_output ' '
|
||||
wait 800000 ; 599040
|
||||
key_output ' '
|
||||
wait 1000000 ; retour menu
|
||||
;
|
||||
; test 3
|
||||
key_output '3'
|
||||
wait 800000 ; 596058
|
||||
wait 1500000 ; 1337856
|
||||
key_output ' '
|
||||
wait 800000 ; 730624
|
||||
wait 1500000 ; 1337856
|
||||
key_output ' '
|
||||
wait 800000 ; 750685
|
||||
wait 800000 ; 698880
|
||||
key_output ' '
|
||||
wait 800000 ; 750592
|
||||
wait 800000 ; 698880
|
||||
key_output ' '
|
||||
wait 800000 ; 750592
|
||||
wait 800000 ; 698880
|
||||
key_output ' '
|
||||
wait 800000 ; 750592
|
||||
wait 800000 ; 698880
|
||||
key_output ' '
|
||||
wait 800000 ; 710656
|
||||
wait 800000 ; 698880
|
||||
key_output ' '
|
||||
wait 800000 ; 726016
|
||||
wait 800000 ; 698880
|
||||
key_output ' '
|
||||
wait 800000 ; 726952
|
||||
wait 800000 ; 698880
|
||||
key_output ' '
|
||||
wait 1000000 ; 845824
|
||||
wait 800000 ; 698880
|
||||
key_output ' '
|
||||
wait 800000 ; 666112
|
||||
wait 800000 ; 698880
|
||||
key_output ' '
|
||||
wait 800000 ; 666112
|
||||
wait 800000 ; 698880
|
||||
key_output ' '
|
||||
wait 800000 ; 706048
|
||||
wait 800000 ; 698880
|
||||
key_output ' '
|
||||
wait 800000 ; 610816
|
||||
wait 800000 ; 698880
|
||||
key_output ' '
|
||||
wait 800000 ; 610816
|
||||
wait 800000 ; 698880
|
||||
key_output ' '
|
||||
wait 800000 ; 610816
|
||||
wait 800000 ; 698880
|
||||
key_output ' '
|
||||
wait 800000 ; 730624
|
||||
wait 800000 ; 698880
|
||||
key_output ' '
|
||||
wait 900000 ; 745984
|
||||
wait 800000 ; 698880
|
||||
key_output ' '
|
||||
wait 900000 ; 805888
|
||||
wait 800000 ; 698880
|
||||
key_output ' '
|
||||
wait 1000000 ; 865792
|
||||
wait 800000 ; 698880
|
||||
key_output ' '
|
||||
wait 800000 ; 686080
|
||||
wait 800000 ; 698880
|
||||
key_output ' '
|
||||
wait 800000 ; 686080
|
||||
wait 800000 ; 698880
|
||||
key_output ' '
|
||||
wait 10000000
|
||||
;
|
||||
key_output '4'
|
||||
wait 9000000 ; 6743019
|
||||
key_output ' '
|
||||
wait 1000000
|
||||
;
|
||||
key_output '5'
|
||||
wait 800000 ; 434016
|
||||
key_output ' '
|
||||
wait 800000 ; 547328
|
||||
key_output ' '
|
||||
wait 800000 ; 567296
|
||||
key_output ' '
|
||||
wait 800000 ; 587264
|
||||
key_output ' '
|
||||
wait 800000 ; 607232
|
||||
key_output ' '
|
||||
wait 1000000
|
||||
;
|
||||
key_output '6'
|
||||
wait 800000 ; 473960
|
||||
key_output ' '
|
||||
wait 800000 ; 607232
|
||||
key_output ' '
|
||||
wait 800000 ; 627200
|
||||
key_output ' '
|
||||
wait 800000 ; 647168
|
||||
key_output ' '
|
||||
wait 800000 ; 667136
|
||||
key_output ' '
|
||||
wait 1000000
|
||||
;
|
||||
key_output '7'
|
||||
wait 800000 ; 473957
|
||||
key_output ' '
|
||||
wait 800000 ; 667072
|
||||
key_output ' '
|
||||
wait 800000 ; 527296
|
||||
key_output ' '
|
||||
wait 800000 ; 547264
|
||||
key_output ' '
|
||||
wait 800000 ; 567232
|
||||
key_output ' '
|
||||
wait 1000000
|
||||
;
|
||||
key_output '8'
|
||||
wait 800000 ; 431083
|
||||
key_output ' '
|
||||
wait 1000000
|
||||
;
|
||||
key_output '9'
|
||||
wait 800000 ; 474048
|
||||
key_output ' '
|
||||
wait 800000 ; 559104
|
||||
key_output ' '
|
||||
wait 800000 ; 598363
|
||||
key_output ' '
|
||||
wait 1000000
|
||||
;
|
||||
key_output 'E'
|
||||
wait 800000 ; 514468
|
||||
key_output ' '
|
||||
wait 1000000
|
||||
;
|
||||
key_output 'R'
|
||||
wait 800000 ; 592695
|
||||
wait 1200000 ; 998400
|
||||
key_output ' '
|
||||
wait 800000 ; 599040
|
||||
wait 1200000 ; 998400
|
||||
key_output ' '
|
||||
wait 800000 ; 658944
|
||||
wait 1200000 ; 998400
|
||||
key_output ' '
|
||||
wait 1000000
|
||||
;
|
||||
key_output 'T'
|
||||
wait 800000 ; 531832
|
||||
key_output ' '
|
||||
wait 800000 ; 579072
|
||||
key_output ' '
|
||||
wait 800000 ; 579072
|
||||
key_output ' '
|
||||
wait 800000 ; 579072
|
||||
key_output ' '
|
||||
wait 800000 ; 579072
|
||||
key_output ' '
|
||||
wait 800000 ; 638976
|
||||
key_output ' '
|
||||
wait 1000000
|
||||
;
|
||||
key_output 'Y'
|
||||
wait 800000 ; 511931
|
||||
key_output ' '
|
||||
wait 800000 ; 619008
|
||||
key_output ' '
|
||||
wait 800000 ; 619008
|
||||
key_output ' '
|
||||
wait 800000 ; 619008
|
||||
key_output ' '
|
||||
wait 800000 ; 619008
|
||||
key_output ' '
|
||||
wait 800000 ; 619008
|
||||
key_output ' '
|
||||
wait 800000 ; 619008
|
||||
key_output ' '
|
||||
wait 800000 ; ???
|
||||
key_output ' '
|
||||
wait 1000000
|
||||
;
|
||||
key_output 'U'
|
||||
wait 14000000 ; 11803953+1007210
|
||||
key_output ' '
|
||||
wait 1000000
|
||||
;
|
||||
key_output 'I'
|
||||
wait 2200000 ; 2013010
|
||||
key_output ' '
|
||||
wait 2200000 ; 2315008
|
||||
key_output ' '
|
||||
wait 5000000 ; 4233216
|
||||
key_output ' '
|
||||
wait 35000000 ; 31301630
|
||||
key_output ' '
|
||||
wait 2000000 ; 1557507
|
||||
key_output ' '
|
||||
wait 1000000
|
||||
;
|
||||
key_output 'O'
|
||||
wait 800000 ; 576098
|
||||
key_output ' '
|
||||
wait 800000 ; 698880
|
||||
key_output ' '
|
||||
wait 800000 ; 698880
|
||||
key_output ' '
|
||||
wait 800000 ; 599040
|
||||
key_output ' '
|
||||
wait 800000 ; 497671
|
||||
key_output ' '
|
||||
wait 800000 ; 469504
|
||||
key_output ' '
|
||||
wait 800000 ; 522696
|
||||
key_output ' '
|
||||
wait 800000 ; 547978
|
||||
key_output ' '
|
||||
wait 800000 ; 579072
|
||||
; crtc 1
|
||||
;key_output ' '
|
||||
;wait 800000 ; 482251
|
||||
;key_output ' '
|
||||
;wait 800000 ; 599552
|
||||
;key_output ' '
|
||||
;wait 800000 ; 599552
|
||||
;key_output ' '
|
||||
;wait 800000 ; 599552
|
||||
;key_output ' '
|
||||
;wait 800000 ; 519680
|
||||
key_output ' '
|
||||
wait 1000000
|
||||
;
|
||||
key_output 'P'
|
||||
wait 450000 ; 427222
|
||||
wait 5200000 ; 5111808
|
||||
key_output ' '
|
||||
wait 800000 ; 529408
|
||||
key_output ' '
|
||||
wait 800000 ; 489472
|
||||
key_output ' '
|
||||
wait 800000 ; 449536
|
||||
key_output ' '
|
||||
wait 800000 ; 509440
|
||||
key_output ' '
|
||||
wait 800000 ; 587307
|
||||
key_output ' '
|
||||
wait 800000 ; 479104
|
||||
key_output ' '
|
||||
wait 800000 ; 479360
|
||||
key_output ' '
|
||||
wait 800000 ; 490944
|
||||
key_output ' '
|
||||
wait 800000 ; 638464
|
||||
key_output ' '
|
||||
wait 800000 ; 619008
|
||||
key_output ' '
|
||||
wait 1000000
|
||||
;
|
||||
csl_load 'SHAKE26A-1'
|
297
OSBindings/Mac/Clock SignalTests/Shaker/MODULE A/SHAKE26A-1.CSL
Normal file
297
OSBindings/Mac/Clock SignalTests/Shaker/MODULE A/SHAKE26A-1.CSL
Normal file
@ -0,0 +1,297 @@
|
||||
;
|
||||
; Fichier de script CSL
|
||||
; Execution du module SHAKE26A du DSK SHAKER26.DSK en CRTC 1
|
||||
; Le module genere des instructions au format SSM
|
||||
;
|
||||
csl_version 1.0
|
||||
crtc_select 1
|
||||
reset
|
||||
wait 3000000
|
||||
disk_insert 'shaker26.dsk'
|
||||
key_delay 70000 70000 400000
|
||||
key_output 'RUN"SHAKE26A"\(RET)'
|
||||
wait 10000000
|
||||
;
|
||||
; test 1
|
||||
key_output '1'
|
||||
wait 800000 ; fin affichage 1er ecran & ssm 595215
|
||||
key_output ' '
|
||||
wait 800000 ; fin affichage 2nd ecran & ssm 659451
|
||||
key_output ' '
|
||||
wait 800000 ; fin affichage 3eme ecran & ssm 627963
|
||||
key_output ' '
|
||||
wait 800000 ; fin affichage 4eme ecran & ssm 698883
|
||||
key_output ' '
|
||||
wait 800000 ; fin affichage 5eme ecran & ssm 551415
|
||||
key_output ' '
|
||||
wait 1000000 ; retour menu
|
||||
;
|
||||
; test 2
|
||||
key_output '2'
|
||||
wait 800000 ; 519961 crt 0 1 ecran
|
||||
wait 800000 ; 2 ecrans
|
||||
key_output ' '
|
||||
wait 800000 ;
|
||||
key_output ' '
|
||||
wait 800000 ; 723923
|
||||
key_output ' '
|
||||
wait 800000 ; 599040
|
||||
key_output ' '
|
||||
wait 1000000 ; retour menu
|
||||
;
|
||||
; test 3
|
||||
key_output '3'
|
||||
wait 800000 ; 596058
|
||||
wait 1500000 ; 1337856
|
||||
key_output ' '
|
||||
wait 800000 ; 730624
|
||||
wait 1500000 ; 1337856
|
||||
key_output ' '
|
||||
wait 800000 ; 750685
|
||||
wait 800000 ; 698880
|
||||
key_output ' '
|
||||
wait 800000 ; 750592
|
||||
wait 800000 ; 698880
|
||||
key_output ' '
|
||||
wait 800000 ; 750592
|
||||
wait 800000 ; 698880
|
||||
key_output ' '
|
||||
wait 800000 ; 750592
|
||||
wait 800000 ; 698880
|
||||
key_output ' '
|
||||
wait 800000 ; 710656
|
||||
wait 800000 ; 698880
|
||||
key_output ' '
|
||||
wait 800000 ; 726016
|
||||
wait 800000 ; 698880
|
||||
key_output ' '
|
||||
wait 800000 ; 726952
|
||||
wait 800000 ; 698880
|
||||
key_output ' '
|
||||
wait 1000000 ; 845824
|
||||
wait 800000 ; 698880
|
||||
key_output ' '
|
||||
wait 800000 ; 666112
|
||||
wait 800000 ; 698880
|
||||
key_output ' '
|
||||
wait 800000 ; 666112
|
||||
wait 800000 ; 698880
|
||||
key_output ' '
|
||||
wait 800000 ; 706048
|
||||
wait 800000 ; 698880
|
||||
key_output ' '
|
||||
wait 800000 ; 610816
|
||||
wait 800000 ; 698880
|
||||
key_output ' '
|
||||
wait 800000 ; 610816
|
||||
wait 800000 ; 698880
|
||||
key_output ' '
|
||||
wait 800000 ; 610816
|
||||
wait 800000 ; 698880
|
||||
key_output ' '
|
||||
wait 800000 ; 730624
|
||||
wait 800000 ; 698880
|
||||
key_output ' '
|
||||
wait 900000 ; 745984
|
||||
wait 800000 ; 698880
|
||||
key_output ' '
|
||||
wait 900000 ; 805888
|
||||
wait 800000 ; 698880
|
||||
key_output ' '
|
||||
wait 1000000 ; 865792
|
||||
wait 800000 ; 698880
|
||||
key_output ' '
|
||||
wait 800000 ; 686080
|
||||
wait 800000 ; 698880
|
||||
key_output ' '
|
||||
wait 800000 ; 686080
|
||||
wait 800000 ; 698880
|
||||
key_output ' '
|
||||
wait 10000000
|
||||
;
|
||||
key_output '4'
|
||||
wait 8000000 ; 6743019
|
||||
key_output ' '
|
||||
wait 1000000
|
||||
;
|
||||
key_output '5'
|
||||
wait 800000 ; 434016
|
||||
key_output ' '
|
||||
wait 800000 ; 547328
|
||||
key_output ' '
|
||||
wait 800000 ; 567296
|
||||
key_output ' '
|
||||
wait 800000 ; 587264
|
||||
key_output ' '
|
||||
wait 800000 ; 607232
|
||||
key_output ' '
|
||||
wait 1000000
|
||||
;
|
||||
key_output '6'
|
||||
wait 800000 ; 473960
|
||||
key_output ' '
|
||||
wait 800000 ; 607232
|
||||
key_output ' '
|
||||
wait 800000 ; 627200
|
||||
key_output ' '
|
||||
wait 800000 ; 647168
|
||||
key_output ' '
|
||||
wait 800000 ; 667136
|
||||
key_output ' '
|
||||
wait 1000000
|
||||
;
|
||||
key_output '7'
|
||||
wait 800000 ; 473957
|
||||
key_output ' '
|
||||
wait 800000 ; 667072
|
||||
key_output ' '
|
||||
wait 800000 ; 527296
|
||||
key_output ' '
|
||||
wait 800000 ; 547264
|
||||
key_output ' '
|
||||
wait 800000 ; 567232
|
||||
key_output ' '
|
||||
wait 1000000
|
||||
;
|
||||
key_output '8'
|
||||
wait 800000 ; 431083
|
||||
key_output ' '
|
||||
wait 1000000
|
||||
;
|
||||
key_output '9'
|
||||
wait 800000 ; 474048
|
||||
key_output ' '
|
||||
wait 800000 ; 559104
|
||||
key_output ' '
|
||||
wait 800000 ; 598363
|
||||
key_output ' '
|
||||
wait 1000000
|
||||
;
|
||||
key_output 'E'
|
||||
wait 800000 ; 514468
|
||||
key_output ' '
|
||||
wait 1000000
|
||||
;
|
||||
key_output 'R'
|
||||
wait 800000 ; 592695
|
||||
wait 1200000 ; 998400
|
||||
key_output ' '
|
||||
wait 800000 ; 599040
|
||||
wait 1200000 ; 998400
|
||||
key_output ' '
|
||||
wait 800000 ; 658944
|
||||
wait 1200000 ; 998400
|
||||
key_output ' '
|
||||
wait 1000000
|
||||
;
|
||||
key_output 'T'
|
||||
wait 800000 ; 531832
|
||||
key_output ' '
|
||||
wait 800000 ; 579072
|
||||
key_output ' '
|
||||
wait 800000 ; 579072
|
||||
key_output ' '
|
||||
wait 800000 ; 579072
|
||||
key_output ' '
|
||||
wait 800000 ; 579072
|
||||
key_output ' '
|
||||
wait 800000 ; 638976
|
||||
key_output ' '
|
||||
wait 1000000
|
||||
;
|
||||
key_output 'Y'
|
||||
wait 800000 ; 511931
|
||||
key_output ' '
|
||||
wait 800000 ; 619008
|
||||
key_output ' '
|
||||
wait 800000 ; 619008
|
||||
key_output ' '
|
||||
wait 800000 ; 619008
|
||||
key_output ' '
|
||||
wait 800000 ; 619008
|
||||
key_output ' '
|
||||
wait 800000 ; 619008
|
||||
key_output ' '
|
||||
wait 800000 ; 619008
|
||||
key_output ' '
|
||||
wait 800000 ; ???
|
||||
key_output ' '
|
||||
wait 1000000
|
||||
;
|
||||
key_output 'U'
|
||||
wait 14000000 ; 11803953+1007210
|
||||
key_output ' '
|
||||
wait 1000000
|
||||
;
|
||||
key_output 'I'
|
||||
wait 2200000 ; 2013010
|
||||
key_output ' '
|
||||
wait 2200000 ; 2315008
|
||||
key_output ' '
|
||||
wait 5000000 ; 4233216
|
||||
key_output ' '
|
||||
wait 35000000 ; 31301630
|
||||
key_output ' '
|
||||
wait 2000000 ; 1557507
|
||||
key_output ' '
|
||||
wait 1000000
|
||||
;
|
||||
key_output 'O'
|
||||
wait 800000 ; 576098
|
||||
key_output ' '
|
||||
wait 800000 ; 698880
|
||||
key_output ' '
|
||||
wait 800000 ; 698880
|
||||
key_output ' '
|
||||
wait 800000 ; 599040
|
||||
key_output ' '
|
||||
wait 800000 ; 497671
|
||||
key_output ' '
|
||||
wait 800000 ; 469504
|
||||
key_output ' '
|
||||
wait 800000 ; 522696
|
||||
key_output ' '
|
||||
wait 800000 ; 547978
|
||||
key_output ' '
|
||||
wait 800000 ; 579072
|
||||
; crtc 1
|
||||
;key_output ' '
|
||||
;wait 800000 ; 482251
|
||||
;key_output ' '
|
||||
;wait 800000 ; 599552
|
||||
;key_output ' '
|
||||
;wait 800000 ; 599552
|
||||
;key_output ' '
|
||||
;wait 800000 ; 599552
|
||||
;key_output ' '
|
||||
;wait 800000 ; 519680
|
||||
key_output ' '
|
||||
wait 1000000
|
||||
;
|
||||
key_output 'P'
|
||||
wait 450000 ; 427222
|
||||
wait 5200000 ; 5111808
|
||||
key_output ' '
|
||||
wait 800000 ; 529408
|
||||
key_output ' '
|
||||
wait 800000 ; 489472
|
||||
key_output ' '
|
||||
wait 800000 ; 449536
|
||||
key_output ' '
|
||||
wait 800000 ; 509440
|
||||
key_output ' '
|
||||
wait 800000 ; 587307
|
||||
key_output ' '
|
||||
wait 800000 ; 479104
|
||||
key_output ' '
|
||||
wait 800000 ; 479360
|
||||
key_output ' '
|
||||
wait 800000 ; 490944
|
||||
key_output ' '
|
||||
wait 800000 ; 638464
|
||||
key_output ' '
|
||||
wait 800000 ; 619008
|
||||
key_output ' '
|
||||
wait 1000000
|
||||
|
||||
csl_load 'SHAKE26A-2'
|
267
OSBindings/Mac/Clock SignalTests/Shaker/MODULE A/SHAKE26A-2.CSL
Normal file
267
OSBindings/Mac/Clock SignalTests/Shaker/MODULE A/SHAKE26A-2.CSL
Normal file
@ -0,0 +1,267 @@
|
||||
;
|
||||
; Fichier de script CSL
|
||||
; Execution du module SHAKE26A du DSK SHAKER26.DSK en CRTC 2
|
||||
; Le module genere des instructions au format SSM
|
||||
;
|
||||
csl_version 1.0
|
||||
crtc_select 2
|
||||
reset
|
||||
wait 3000000
|
||||
disk_insert 'shaker26.dsk'
|
||||
key_delay 70000 70000 400000
|
||||
key_output 'RUN"SHAKE26A"\(RET)'
|
||||
wait 10000000
|
||||
;
|
||||
; test 1
|
||||
key_output '1'
|
||||
wait 800000 ; fin affichage 1er ecran & ssm 595215
|
||||
key_output ' '
|
||||
wait 800000 ; fin affichage 2nd ecran & ssm 659451
|
||||
key_output ' '
|
||||
wait 800000 ; fin affichage 3eme ecran & ssm 627963
|
||||
key_output ' '
|
||||
wait 800000 ; fin affichage 4eme ecran & ssm 698883
|
||||
key_output ' '
|
||||
wait 800000 ; fin affichage 5eme ecran & ssm 551415
|
||||
key_output ' '
|
||||
wait 1000000 ; retour menu
|
||||
;
|
||||
; test 2
|
||||
key_output '2'
|
||||
wait 800000 ; 519961 crt 0 1 ecran
|
||||
key_output ' '
|
||||
wait 800000 ; 2 ecrans
|
||||
wait 800000 ;
|
||||
key_output ' '
|
||||
wait 800000 ; 723923
|
||||
key_output ' '
|
||||
wait 800000 ; 599040
|
||||
key_output ' '
|
||||
wait 1000000 ; retour menu
|
||||
;
|
||||
; test 3
|
||||
key_output '3'
|
||||
wait 800000 ; 596058
|
||||
wait 1500000 ; 1337856
|
||||
key_output ' '
|
||||
wait 800000 ; 730624
|
||||
wait 1500000 ; 1337856
|
||||
key_output ' '
|
||||
wait 800000 ; 750685
|
||||
wait 800000 ; 698880
|
||||
key_output ' '
|
||||
wait 800000 ; 750592
|
||||
wait 800000 ; 698880
|
||||
key_output ' '
|
||||
wait 800000 ; 750592
|
||||
wait 800000 ; 698880
|
||||
key_output ' '
|
||||
wait 800000 ; 750592
|
||||
wait 800000 ; 698880
|
||||
key_output ' '
|
||||
wait 800000 ; 710656
|
||||
wait 800000 ; 698880
|
||||
key_output ' '
|
||||
wait 800000 ; 726016
|
||||
wait 800000 ; 698880
|
||||
key_output ' '
|
||||
wait 800000 ; 726952
|
||||
wait 800000 ; 698880
|
||||
key_output ' '
|
||||
wait 1000000 ; 845824
|
||||
wait 800000 ; 698880
|
||||
key_output ' '
|
||||
wait 800000 ; 666112
|
||||
wait 800000 ; 698880
|
||||
key_output ' '
|
||||
wait 800000 ; 666112
|
||||
wait 800000 ; 698880
|
||||
key_output ' '
|
||||
wait 800000 ; 706048
|
||||
wait 800000 ; 698880
|
||||
key_output ' '
|
||||
wait 800000 ; 610816
|
||||
wait 800000 ; 698880
|
||||
key_output ' '
|
||||
wait 800000 ; 610816
|
||||
wait 800000 ; 698880
|
||||
key_output ' '
|
||||
wait 800000 ; 610816
|
||||
wait 800000 ; 698880
|
||||
key_output ' '
|
||||
wait 800000 ; 730624
|
||||
wait 800000 ; 698880
|
||||
key_output ' '
|
||||
wait 900000 ; 745984
|
||||
wait 800000 ; 698880
|
||||
key_output ' '
|
||||
wait 900000 ; 805888
|
||||
wait 800000 ; 698880
|
||||
key_output ' '
|
||||
wait 1000000 ; 865792
|
||||
wait 800000 ; 698880
|
||||
key_output ' '
|
||||
wait 800000 ; 686080
|
||||
wait 800000 ; 698880
|
||||
key_output ' '
|
||||
wait 800000 ; 686080
|
||||
wait 800000 ; 698880
|
||||
key_output ' '
|
||||
wait 10000000
|
||||
;
|
||||
key_output '4'
|
||||
wait 8000000 ; 6743019
|
||||
key_output ' '
|
||||
wait 1000000
|
||||
;
|
||||
key_output '8'
|
||||
wait 800000 ; 431083
|
||||
key_output ' '
|
||||
wait 1000000
|
||||
;
|
||||
key_output '9'
|
||||
wait 800000 ; 474048
|
||||
key_output ' '
|
||||
wait 800000 ; 559104
|
||||
key_output ' '
|
||||
wait 800000 ; 598363
|
||||
key_output ' '
|
||||
wait 1000000
|
||||
;
|
||||
key_output 'E'
|
||||
wait 800000 ; 514468
|
||||
key_output ' '
|
||||
wait 1000000
|
||||
;
|
||||
key_output 'R'
|
||||
wait 800000 ; 592695
|
||||
wait 1200000 ; 998400
|
||||
key_output ' '
|
||||
wait 800000 ; 599040
|
||||
wait 1200000 ; 998400
|
||||
key_output ' '
|
||||
wait 800000 ; 658944
|
||||
wait 1200000 ; 998400
|
||||
key_output ' '
|
||||
wait 1000000
|
||||
;
|
||||
key_output 'T'
|
||||
wait 800000 ; 531832
|
||||
key_output ' '
|
||||
wait 800000 ; 579072
|
||||
key_output ' '
|
||||
wait 800000 ; 579072
|
||||
key_output ' '
|
||||
wait 800000 ; 579072
|
||||
key_output ' '
|
||||
wait 800000 ; 579072
|
||||
key_output ' '
|
||||
wait 800000 ; 638976
|
||||
key_output ' '
|
||||
wait 1000000
|
||||
;
|
||||
key_output 'Y'
|
||||
wait 800000 ; 511931
|
||||
key_output ' '
|
||||
wait 800000 ; 619008
|
||||
key_output ' '
|
||||
wait 800000 ; 619008
|
||||
key_output ' '
|
||||
wait 800000 ; 619008
|
||||
key_output ' '
|
||||
wait 800000 ; 619008
|
||||
key_output ' '
|
||||
wait 800000 ; 619008
|
||||
key_output ' '
|
||||
wait 800000 ; 619008
|
||||
key_output ' '
|
||||
wait 800000 ; ???
|
||||
key_output ' '
|
||||
wait 1000000
|
||||
;
|
||||
key_output 'U'
|
||||
wait 14000000 ; 11803953+1007210
|
||||
key_output ' '
|
||||
wait 1000000
|
||||
;
|
||||
key_output 'I'
|
||||
wait 2200000 ; 2013010
|
||||
key_output ' '
|
||||
wait 2200000 ; 2315008
|
||||
key_output ' '
|
||||
wait 5000000 ; 4233216
|
||||
key_output ' '
|
||||
wait 35000000 ; 31301630
|
||||
key_output ' '
|
||||
wait 2000000 ; 1557507
|
||||
key_output ' '
|
||||
wait 1000000
|
||||
;
|
||||
key_output 'O'
|
||||
wait 800000 ; 576098
|
||||
key_output ' '
|
||||
wait 800000 ; 698880
|
||||
key_output ' '
|
||||
wait 800000 ; 698880
|
||||
key_output ' '
|
||||
wait 800000 ; 599040
|
||||
key_output ' '
|
||||
wait 800000 ; 497671
|
||||
key_output ' '
|
||||
wait 800000 ; 469504
|
||||
key_output ' '
|
||||
wait 800000 ; 522696
|
||||
key_output ' '
|
||||
wait 800000 ; 547978
|
||||
key_output ' '
|
||||
wait 800000 ; 579072
|
||||
; crtc 1
|
||||
;key_output ' '
|
||||
;wait 800000 ; 482251
|
||||
;key_output ' '
|
||||
;wait 800000 ; 599552
|
||||
;key_output ' '
|
||||
;wait 800000 ; 599552
|
||||
;key_output ' '
|
||||
;wait 800000 ; 599552
|
||||
;key_output ' '
|
||||
;wait 800000 ; 519680
|
||||
key_output ' '
|
||||
wait 1000000
|
||||
;
|
||||
key_output 'P'
|
||||
wait 450000 ; 427222
|
||||
wait 5200000 ; 5111808
|
||||
key_output ' '
|
||||
wait 800000 ; 529408
|
||||
key_output ' '
|
||||
wait 800000 ; 489472
|
||||
key_output ' '
|
||||
wait 800000 ; 449536
|
||||
key_output ' '
|
||||
wait 800000 ; 509440
|
||||
key_output ' '
|
||||
wait 800000 ; 587307
|
||||
key_output ' '
|
||||
wait 800000 ; 479104
|
||||
key_output ' '
|
||||
wait 800000 ; 479360
|
||||
key_output ' '
|
||||
wait 800000 ; 490944
|
||||
key_output ' '
|
||||
wait 800000 ; 638464
|
||||
key_output ' '
|
||||
wait 800000 ; 619008
|
||||
key_output ' '
|
||||
wait 1000000
|
||||
;
|
||||
; crtc 2
|
||||
;
|
||||
key_output '\(COP)'
|
||||
wait 8500000 ; 8313240
|
||||
wait 500000 ; 319488
|
||||
key_output ' '
|
||||
wait 1000000
|
||||
;
|
||||
;
|
||||
csl_load 'SHAKE26A-4'
|
296
OSBindings/Mac/Clock SignalTests/Shaker/MODULE A/SHAKE26A-3.CSL
Normal file
296
OSBindings/Mac/Clock SignalTests/Shaker/MODULE A/SHAKE26A-3.CSL
Normal file
@ -0,0 +1,296 @@
|
||||
;
|
||||
; Fichier de script CSL
|
||||
; Execution du module SHAKE26A du DSK SHAKER26.DSK en CRTC 3
|
||||
; Le module genere des instructions au format SSM
|
||||
;
|
||||
csl_version 1.0
|
||||
crtc_select 3
|
||||
reset
|
||||
wait 3000000
|
||||
disk_insert 'shaker26.dsk'
|
||||
key_delay 70000 70000 400000
|
||||
key_output 'RUN"SHAKE26A"\(RET)'
|
||||
wait 10000000
|
||||
;
|
||||
; test 1
|
||||
key_output '1'
|
||||
wait 800000 ; fin affichage 1er ecran & ssm 595215
|
||||
key_output ' '
|
||||
wait 800000 ; fin affichage 2nd ecran & ssm 659451
|
||||
key_output ' '
|
||||
wait 800000 ; fin affichage 3eme ecran & ssm 627963
|
||||
key_output ' '
|
||||
wait 800000 ; fin affichage 4eme ecran & ssm 698883
|
||||
key_output ' '
|
||||
wait 800000 ; fin affichage 5eme ecran & ssm 551415
|
||||
key_output ' '
|
||||
wait 1000000 ; retour menu
|
||||
;
|
||||
; test 2
|
||||
key_output '2'
|
||||
wait 800000 ; 519961 crt 0 1 ecran
|
||||
key_output ' '
|
||||
wait 800000 ; 2 ecrans
|
||||
wait 800000 ;
|
||||
key_output ' '
|
||||
wait 800000 ; 723923
|
||||
key_output ' '
|
||||
wait 800000 ; 599040
|
||||
key_output ' '
|
||||
wait 1000000 ; retour menu
|
||||
;
|
||||
; test 3
|
||||
key_output '3'
|
||||
wait 800000 ; 596058
|
||||
wait 1500000 ; 1337856
|
||||
key_output ' '
|
||||
wait 800000 ; 730624
|
||||
wait 1500000 ; 1337856
|
||||
key_output ' '
|
||||
wait 800000 ; 750685
|
||||
wait 800000 ; 698880
|
||||
key_output ' '
|
||||
wait 800000 ; 750592
|
||||
wait 800000 ; 698880
|
||||
key_output ' '
|
||||
wait 800000 ; 750592
|
||||
wait 800000 ; 698880
|
||||
key_output ' '
|
||||
wait 800000 ; 750592
|
||||
wait 800000 ; 698880
|
||||
key_output ' '
|
||||
wait 800000 ; 710656
|
||||
wait 800000 ; 698880
|
||||
key_output ' '
|
||||
wait 800000 ; 726016
|
||||
wait 800000 ; 698880
|
||||
key_output ' '
|
||||
wait 800000 ; 726952
|
||||
wait 800000 ; 698880
|
||||
key_output ' '
|
||||
wait 1000000 ; 845824
|
||||
wait 800000 ; 698880
|
||||
key_output ' '
|
||||
wait 800000 ; 666112
|
||||
wait 800000 ; 698880
|
||||
key_output ' '
|
||||
wait 800000 ; 666112
|
||||
wait 800000 ; 698880
|
||||
key_output ' '
|
||||
wait 800000 ; 706048
|
||||
wait 800000 ; 698880
|
||||
key_output ' '
|
||||
wait 800000 ; 610816
|
||||
wait 800000 ; 698880
|
||||
key_output ' '
|
||||
wait 800000 ; 610816
|
||||
wait 800000 ; 698880
|
||||
key_output ' '
|
||||
wait 800000 ; 610816
|
||||
wait 800000 ; 698880
|
||||
key_output ' '
|
||||
wait 800000 ; 730624
|
||||
wait 800000 ; 698880
|
||||
key_output ' '
|
||||
wait 900000 ; 745984
|
||||
wait 800000 ; 698880
|
||||
key_output ' '
|
||||
wait 900000 ; 805888
|
||||
wait 800000 ; 698880
|
||||
key_output ' '
|
||||
wait 1000000 ; 865792
|
||||
wait 800000 ; 698880
|
||||
key_output ' '
|
||||
wait 800000 ; 686080
|
||||
wait 800000 ; 698880
|
||||
key_output ' '
|
||||
wait 800000 ; 686080
|
||||
wait 800000 ; 698880
|
||||
key_output ' '
|
||||
wait 10000000
|
||||
;
|
||||
key_output '4'
|
||||
wait 8000000 ; 6743019
|
||||
key_output ' '
|
||||
wait 1000000
|
||||
;
|
||||
key_output '5'
|
||||
wait 800000 ; 434016
|
||||
key_output ' '
|
||||
wait 800000 ; 547328
|
||||
key_output ' '
|
||||
wait 800000 ; 567296
|
||||
key_output ' '
|
||||
wait 800000 ; 587264
|
||||
key_output ' '
|
||||
wait 800000 ; 607232
|
||||
key_output ' '
|
||||
wait 1000000
|
||||
;
|
||||
key_output '6'
|
||||
wait 800000 ; 473960
|
||||
key_output ' '
|
||||
wait 800000 ; 607232
|
||||
key_output ' '
|
||||
wait 800000 ; 627200
|
||||
key_output ' '
|
||||
wait 800000 ; 647168
|
||||
key_output ' '
|
||||
wait 800000 ; 667136
|
||||
key_output ' '
|
||||
wait 1000000
|
||||
;
|
||||
key_output '7'
|
||||
wait 800000 ; 473957
|
||||
key_output ' '
|
||||
wait 800000 ; 667072
|
||||
key_output ' '
|
||||
wait 800000 ; 527296
|
||||
key_output ' '
|
||||
wait 800000 ; 547264
|
||||
key_output ' '
|
||||
wait 800000 ; 567232
|
||||
key_output ' '
|
||||
wait 1000000
|
||||
;
|
||||
key_output '8'
|
||||
wait 800000 ; 431083
|
||||
key_output ' '
|
||||
wait 1000000
|
||||
;
|
||||
key_output '9'
|
||||
wait 800000 ; 474048
|
||||
key_output ' '
|
||||
wait 800000 ; 559104
|
||||
key_output ' '
|
||||
wait 800000 ; 598363
|
||||
key_output ' '
|
||||
wait 1000000
|
||||
;
|
||||
key_output 'E'
|
||||
wait 800000 ; 514468
|
||||
key_output ' '
|
||||
wait 1000000
|
||||
;
|
||||
key_output 'R'
|
||||
wait 800000 ; 592695
|
||||
wait 1200000 ; 998400
|
||||
key_output ' '
|
||||
wait 800000 ; 599040
|
||||
wait 1200000 ; 998400
|
||||
key_output ' '
|
||||
wait 800000 ; 658944
|
||||
wait 1200000 ; 998400
|
||||
key_output ' '
|
||||
wait 1000000
|
||||
;
|
||||
key_output 'T'
|
||||
wait 800000 ; 531832
|
||||
key_output ' '
|
||||
wait 800000 ; 579072
|
||||
key_output ' '
|
||||
wait 800000 ; 579072
|
||||
key_output ' '
|
||||
wait 800000 ; 579072
|
||||
key_output ' '
|
||||
wait 800000 ; 579072
|
||||
key_output ' '
|
||||
wait 800000 ; 638976
|
||||
key_output ' '
|
||||
wait 1000000
|
||||
;
|
||||
key_output 'Y'
|
||||
wait 800000 ; 511931
|
||||
key_output ' '
|
||||
wait 800000 ; 619008
|
||||
key_output ' '
|
||||
wait 800000 ; 619008
|
||||
key_output ' '
|
||||
wait 800000 ; 619008
|
||||
key_output ' '
|
||||
wait 800000 ; 619008
|
||||
key_output ' '
|
||||
wait 800000 ; 619008
|
||||
key_output ' '
|
||||
wait 800000 ; 619008
|
||||
key_output ' '
|
||||
wait 800000 ; ???
|
||||
key_output ' '
|
||||
wait 1000000
|
||||
;
|
||||
key_output 'U'
|
||||
wait 14000000 ; 11803953+1007210
|
||||
key_output ' '
|
||||
wait 1000000
|
||||
;
|
||||
key_output 'I'
|
||||
wait 2200000 ; 2013010
|
||||
key_output ' '
|
||||
wait 2200000 ; 2315008
|
||||
key_output ' '
|
||||
wait 5000000 ; 4233216
|
||||
key_output ' '
|
||||
wait 35000000 ; 31301630
|
||||
key_output ' '
|
||||
wait 2000000 ; 1557507
|
||||
key_output ' '
|
||||
wait 1000000
|
||||
;
|
||||
key_output 'O'
|
||||
wait 800000 ; 576098
|
||||
key_output ' '
|
||||
wait 800000 ; 698880
|
||||
key_output ' '
|
||||
wait 800000 ; 698880
|
||||
key_output ' '
|
||||
wait 800000 ; 599040
|
||||
key_output ' '
|
||||
wait 800000 ; 497671
|
||||
key_output ' '
|
||||
wait 800000 ; 469504
|
||||
key_output ' '
|
||||
wait 800000 ; 522696
|
||||
key_output ' '
|
||||
wait 800000 ; 547978
|
||||
key_output ' '
|
||||
wait 800000 ; 579072
|
||||
; crtc 1
|
||||
;key_output ' '
|
||||
;wait 800000 ; 482251
|
||||
;key_output ' '
|
||||
;wait 800000 ; 599552
|
||||
;key_output ' '
|
||||
;wait 800000 ; 599552
|
||||
;key_output ' '
|
||||
;wait 800000 ; 599552
|
||||
;key_output ' '
|
||||
;wait 800000 ; 519680
|
||||
key_output ' '
|
||||
wait 1000000
|
||||
;
|
||||
key_output 'P'
|
||||
wait 450000 ; 427222
|
||||
wait 5200000 ; 5111808
|
||||
key_output ' '
|
||||
wait 800000 ; 529408
|
||||
key_output ' '
|
||||
wait 800000 ; 489472
|
||||
key_output ' '
|
||||
wait 800000 ; 449536
|
||||
key_output ' '
|
||||
wait 800000 ; 509440
|
||||
key_output ' '
|
||||
wait 800000 ; 587307
|
||||
key_output ' '
|
||||
wait 800000 ; 479104
|
||||
key_output ' '
|
||||
wait 800000 ; 479360
|
||||
key_output ' '
|
||||
wait 800000 ; 490944
|
||||
key_output ' '
|
||||
wait 800000 ; 638464
|
||||
key_output ' '
|
||||
wait 800000 ; 619008
|
||||
key_output ' '
|
||||
wait 1000000
|
||||
reset
|
297
OSBindings/Mac/Clock SignalTests/Shaker/MODULE A/SHAKE26A-4.CSL
Normal file
297
OSBindings/Mac/Clock SignalTests/Shaker/MODULE A/SHAKE26A-4.CSL
Normal file
@ -0,0 +1,297 @@
|
||||
;
|
||||
; Fichier de script CSL
|
||||
; Execution du module SHAKE26A du DSK SHAKER26.DSK en CRTC 4
|
||||
; Le module genere des instructions au format SSM
|
||||
;
|
||||
csl_version 1.0
|
||||
crtc_select 4
|
||||
reset
|
||||
wait 3000000
|
||||
disk_insert 'shaker26.dsk'
|
||||
key_delay 70000 70000 400000
|
||||
key_output 'RUN"SHAKE26A"\(RET)'
|
||||
wait 10000000
|
||||
;
|
||||
; test 1
|
||||
key_output '1'
|
||||
wait 800000 ; fin affichage 1er ecran & ssm 595215
|
||||
key_output ' '
|
||||
wait 800000 ; fin affichage 2nd ecran & ssm 659451
|
||||
key_output ' '
|
||||
wait 800000 ; fin affichage 3eme ecran & ssm 627963
|
||||
key_output ' '
|
||||
wait 800000 ; fin affichage 4eme ecran & ssm 698883
|
||||
key_output ' '
|
||||
wait 800000 ; fin affichage 5eme ecran & ssm 551415
|
||||
key_output ' '
|
||||
wait 1000000 ; retour menu
|
||||
;
|
||||
; test 2
|
||||
key_output '2'
|
||||
wait 800000 ; 519961 crt 0 1 ecran
|
||||
key_output ' '
|
||||
wait 800000 ; 2 ecrans
|
||||
wait 800000 ;
|
||||
key_output ' '
|
||||
wait 800000 ; 723923
|
||||
key_output ' '
|
||||
wait 800000 ; 599040
|
||||
key_output ' '
|
||||
wait 1000000 ; retour menu
|
||||
;
|
||||
; test 3
|
||||
key_output '3'
|
||||
wait 800000 ; 596058
|
||||
wait 1500000 ; 1337856
|
||||
key_output ' '
|
||||
wait 800000 ; 730624
|
||||
wait 1500000 ; 1337856
|
||||
key_output ' '
|
||||
wait 800000 ; 750685
|
||||
wait 800000 ; 698880
|
||||
key_output ' '
|
||||
wait 800000 ; 750592
|
||||
wait 800000 ; 698880
|
||||
key_output ' '
|
||||
wait 800000 ; 750592
|
||||
wait 800000 ; 698880
|
||||
key_output ' '
|
||||
wait 800000 ; 750592
|
||||
wait 800000 ; 698880
|
||||
key_output ' '
|
||||
wait 800000 ; 710656
|
||||
wait 800000 ; 698880
|
||||
key_output ' '
|
||||
wait 800000 ; 726016
|
||||
wait 800000 ; 698880
|
||||
key_output ' '
|
||||
wait 800000 ; 726952
|
||||
wait 800000 ; 698880
|
||||
key_output ' '
|
||||
wait 1000000 ; 845824
|
||||
wait 800000 ; 698880
|
||||
key_output ' '
|
||||
wait 800000 ; 666112
|
||||
wait 800000 ; 698880
|
||||
key_output ' '
|
||||
wait 800000 ; 666112
|
||||
wait 800000 ; 698880
|
||||
key_output ' '
|
||||
wait 800000 ; 706048
|
||||
wait 800000 ; 698880
|
||||
key_output ' '
|
||||
wait 800000 ; 610816
|
||||
wait 800000 ; 698880
|
||||
key_output ' '
|
||||
wait 800000 ; 610816
|
||||
wait 800000 ; 698880
|
||||
key_output ' '
|
||||
wait 800000 ; 610816
|
||||
wait 800000 ; 698880
|
||||
key_output ' '
|
||||
wait 800000 ; 730624
|
||||
wait 800000 ; 698880
|
||||
key_output ' '
|
||||
wait 900000 ; 745984
|
||||
wait 800000 ; 698880
|
||||
key_output ' '
|
||||
wait 900000 ; 805888
|
||||
wait 800000 ; 698880
|
||||
key_output ' '
|
||||
wait 1000000 ; 865792
|
||||
wait 800000 ; 698880
|
||||
key_output ' '
|
||||
wait 800000 ; 686080
|
||||
wait 800000 ; 698880
|
||||
key_output ' '
|
||||
wait 800000 ; 686080
|
||||
wait 800000 ; 698880
|
||||
key_output ' '
|
||||
wait 10000000
|
||||
;
|
||||
key_output '4'
|
||||
wait 12000000 ; 6743019
|
||||
key_output ' '
|
||||
wait 1000000
|
||||
;
|
||||
key_output '5'
|
||||
wait 800000 ; 434016
|
||||
key_output ' '
|
||||
wait 800000 ; 547328
|
||||
key_output ' '
|
||||
wait 800000 ; 567296
|
||||
key_output ' '
|
||||
wait 800000 ; 587264
|
||||
key_output ' '
|
||||
wait 800000 ; 607232
|
||||
key_output ' '
|
||||
wait 1000000
|
||||
;
|
||||
key_output '6'
|
||||
wait 800000 ; 473960
|
||||
key_output ' '
|
||||
wait 800000 ; 607232
|
||||
key_output ' '
|
||||
wait 800000 ; 627200
|
||||
key_output ' '
|
||||
wait 800000 ; 647168
|
||||
key_output ' '
|
||||
wait 800000 ; 667136
|
||||
key_output ' '
|
||||
wait 1000000
|
||||
;
|
||||
key_output '7'
|
||||
wait 800000 ; 473957
|
||||
key_output ' '
|
||||
wait 800000 ; 667072
|
||||
key_output ' '
|
||||
wait 800000 ; 527296
|
||||
key_output ' '
|
||||
wait 800000 ; 547264
|
||||
key_output ' '
|
||||
wait 800000 ; 567232
|
||||
key_output ' '
|
||||
wait 1000000
|
||||
;
|
||||
key_output '8'
|
||||
wait 800000 ; 431083
|
||||
key_output ' '
|
||||
wait 1000000
|
||||
;
|
||||
key_output '9'
|
||||
wait 800000 ; 474048
|
||||
key_output ' '
|
||||
wait 800000 ; 559104
|
||||
key_output ' '
|
||||
wait 800000 ; 598363
|
||||
key_output ' '
|
||||
wait 1000000
|
||||
;
|
||||
key_output 'E'
|
||||
wait 800000 ; 514468
|
||||
key_output ' '
|
||||
wait 1000000
|
||||
;
|
||||
key_output 'R'
|
||||
wait 800000 ; 592695
|
||||
wait 1200000 ; 998400
|
||||
key_output ' '
|
||||
wait 800000 ; 599040
|
||||
wait 1200000 ; 998400
|
||||
key_output ' '
|
||||
wait 800000 ; 658944
|
||||
wait 1200000 ; 998400
|
||||
key_output ' '
|
||||
wait 1000000
|
||||
;
|
||||
key_output 'T'
|
||||
wait 800000 ; 531832
|
||||
key_output ' '
|
||||
wait 800000 ; 579072
|
||||
key_output ' '
|
||||
wait 800000 ; 579072
|
||||
key_output ' '
|
||||
wait 800000 ; 579072
|
||||
key_output ' '
|
||||
wait 800000 ; 579072
|
||||
key_output ' '
|
||||
wait 800000 ; 638976
|
||||
key_output ' '
|
||||
wait 1000000
|
||||
;
|
||||
key_output 'Y'
|
||||
wait 800000 ; 511931
|
||||
key_output ' '
|
||||
wait 800000 ; 619008
|
||||
key_output ' '
|
||||
wait 800000 ; 619008
|
||||
key_output ' '
|
||||
wait 800000 ; 619008
|
||||
key_output ' '
|
||||
wait 800000 ; 619008
|
||||
key_output ' '
|
||||
wait 800000 ; 619008
|
||||
key_output ' '
|
||||
wait 800000 ; 619008
|
||||
key_output ' '
|
||||
wait 800000 ; ???
|
||||
key_output ' '
|
||||
wait 1000000
|
||||
;
|
||||
key_output 'U'
|
||||
wait 14000000 ; 11803953+1007210
|
||||
key_output ' '
|
||||
wait 1000000
|
||||
;
|
||||
key_output 'I'
|
||||
wait 2200000 ; 2013010
|
||||
key_output ' '
|
||||
wait 2200000 ; 2315008
|
||||
key_output ' '
|
||||
wait 5000000 ; 4233216
|
||||
key_output ' '
|
||||
wait 35000000 ; 31301630
|
||||
key_output ' '
|
||||
wait 2000000 ; 1557507
|
||||
key_output ' '
|
||||
wait 1000000
|
||||
;
|
||||
key_output 'O'
|
||||
wait 800000 ; 576098
|
||||
key_output ' '
|
||||
wait 800000 ; 698880
|
||||
key_output ' '
|
||||
wait 800000 ; 698880
|
||||
key_output ' '
|
||||
wait 800000 ; 599040
|
||||
key_output ' '
|
||||
wait 800000 ; 497671
|
||||
key_output ' '
|
||||
wait 800000 ; 469504
|
||||
key_output ' '
|
||||
wait 800000 ; 522696
|
||||
key_output ' '
|
||||
wait 800000 ; 547978
|
||||
key_output ' '
|
||||
wait 800000 ; 579072
|
||||
; crtc 1
|
||||
;key_output ' '
|
||||
;wait 800000 ; 482251
|
||||
;key_output ' '
|
||||
;wait 800000 ; 599552
|
||||
;key_output ' '
|
||||
;wait 800000 ; 599552
|
||||
;key_output ' '
|
||||
;wait 800000 ; 599552
|
||||
;key_output ' '
|
||||
;wait 800000 ; 519680
|
||||
key_output ' '
|
||||
wait 1000000
|
||||
;
|
||||
key_output 'P'
|
||||
wait 450000 ; 427222
|
||||
wait 5200000 ; 5111808
|
||||
key_output ' '
|
||||
wait 800000 ; 529408
|
||||
key_output ' '
|
||||
wait 800000 ; 489472
|
||||
key_output ' '
|
||||
wait 800000 ; 449536
|
||||
key_output ' '
|
||||
wait 800000 ; 509440
|
||||
key_output ' '
|
||||
wait 800000 ; 587307
|
||||
key_output ' '
|
||||
wait 800000 ; 479104
|
||||
key_output ' '
|
||||
wait 800000 ; 479360
|
||||
key_output ' '
|
||||
wait 800000 ; 490944
|
||||
key_output ' '
|
||||
wait 800000 ; 638464
|
||||
key_output ' '
|
||||
wait 800000 ; 619008
|
||||
key_output ' '
|
||||
wait 1000000
|
||||
|
||||
csl_load 'SHAKE26A-3'
|
390
OSBindings/Mac/Clock SignalTests/Shaker/MODULE B/SHAKE26B-0.CSL
Normal file
390
OSBindings/Mac/Clock SignalTests/Shaker/MODULE B/SHAKE26B-0.CSL
Normal file
@ -0,0 +1,390 @@
|
||||
;
|
||||
; Fichier de script CSL
|
||||
; Execution du module SHAKE26B du DSK SHAKER26.DSK en CRTC 0
|
||||
; Le module genere des instructions au format SSM
|
||||
;
|
||||
csl_version 1.0
|
||||
crtc_select 0
|
||||
reset
|
||||
wait 3000000
|
||||
disk_insert 'shaker26.dsk'
|
||||
key_delay 70000 70000 400000
|
||||
key_output 'RUN"SHAKE26B"\(RET)'
|
||||
wait 10000000
|
||||
;
|
||||
; test 1 interlace c4/c9 counters R9 base=07 Parity Odd
|
||||
key_output '1'
|
||||
wait 5000000 ; Ecran settings, ecran intermediaire
|
||||
wait 7000000 ; 1er ecran
|
||||
key_output ' '
|
||||
wait 7000000 ; 5251584
|
||||
key_output ' '
|
||||
wait 7000000 ; 5251584
|
||||
key_output ' '
|
||||
wait 7000000 ; 5251584
|
||||
key_output ' '
|
||||
wait 7000000 ; 5251584
|
||||
key_output ' '
|
||||
wait 7000000 ; 5251584
|
||||
key_output ' '
|
||||
wait 7000000 ; 5251584
|
||||
key_output ' '
|
||||
wait 7000000 ; 5251584
|
||||
key_output ' '
|
||||
wait 7000000 ; 5251584
|
||||
key_output ' '
|
||||
wait 7000000 ; 5251584
|
||||
key_output ' '
|
||||
wait 7000000 ; 5251584
|
||||
key_output ' '
|
||||
wait 7000000 ; menu
|
||||
key_output 'Y' ; bascule sur parity Even (R9 Base=7)
|
||||
wait 300000
|
||||
;
|
||||
key_output '1'
|
||||
wait 5000000 ; Ecran settings, ecran intermediaire
|
||||
wait 7000000 ; 1er ecran
|
||||
key_output ' '
|
||||
wait 7000000 ; 5251584
|
||||
key_output ' '
|
||||
wait 7000000 ; 5251584
|
||||
key_output ' '
|
||||
wait 7000000 ; 5251584
|
||||
key_output ' '
|
||||
wait 7000000 ; 5251584
|
||||
key_output ' '
|
||||
wait 7000000 ; 5251584
|
||||
key_output ' '
|
||||
wait 7000000 ; 5251584
|
||||
key_output ' '
|
||||
wait 7000000 ; 5251584
|
||||
key_output ' '
|
||||
wait 7000000 ; 5251584
|
||||
key_output ' '
|
||||
wait 7000000 ; 5251584
|
||||
key_output ' '
|
||||
wait 7000000 ; 5251584
|
||||
key_output ' '
|
||||
wait 7000000 ; menu
|
||||
key_output 'Z' ; Passe sur R9 BASE=6 (parity Even)
|
||||
wait 300000
|
||||
;
|
||||
key_output '1'
|
||||
wait 5000000 ; Ecran settings, ecran intermediaire
|
||||
wait 7000000 ; 1er ecran
|
||||
key_output ' '
|
||||
wait 7000000 ; 5251584
|
||||
key_output ' '
|
||||
wait 7000000 ; 5251584
|
||||
key_output ' '
|
||||
wait 7000000 ; 5251584
|
||||
key_output ' '
|
||||
wait 7000000 ; 5251584
|
||||
key_output ' '
|
||||
wait 7000000 ; 5251584
|
||||
key_output ' '
|
||||
wait 7000000 ; 5251584
|
||||
key_output ' '
|
||||
wait 7000000 ; 5251584
|
||||
key_output ' '
|
||||
wait 7000000 ; 5251584
|
||||
key_output ' '
|
||||
wait 7000000 ; 5251584
|
||||
key_output ' '
|
||||
wait 7000000 ; 5251584
|
||||
key_output ' '
|
||||
wait 7000000 ; menu
|
||||
;
|
||||
key_output 'Y' ; bascule sur parity Odd (R9 base=6)
|
||||
wait 300000
|
||||
key_output '1'
|
||||
wait 5000000 ; Ecran settings, ecran intermediaire
|
||||
wait 7000000 ; 1er ecran
|
||||
key_output ' '
|
||||
wait 7000000 ; 5251584
|
||||
key_output ' '
|
||||
wait 7000000 ; 5251584
|
||||
key_output ' '
|
||||
wait 7000000 ; 5251584
|
||||
key_output ' '
|
||||
wait 7000000 ; 5251584
|
||||
key_output ' '
|
||||
wait 7000000 ; 5251584
|
||||
key_output ' '
|
||||
wait 7000000 ; 5251584
|
||||
key_output ' '
|
||||
wait 7000000 ; 5251584
|
||||
key_output ' '
|
||||
wait 7000000 ; 5251584
|
||||
key_output ' '
|
||||
wait 7000000 ; 5251584
|
||||
key_output ' '
|
||||
wait 7000000 ; 5251584
|
||||
key_output ' '
|
||||
wait 7000000 ; menu
|
||||
;
|
||||
; test 9 (garder la foi tu dois, mecreant)
|
||||
key_output '9' ; En Odd
|
||||
wait 20000000 ;
|
||||
key_output ' '
|
||||
wait 20000000
|
||||
key_output ' '
|
||||
wait 1000000
|
||||
;
|
||||
key_output 'Y' ; Repasser en Even
|
||||
wait 100000
|
||||
key_output '9' ; En even
|
||||
wait 20000000 ;
|
||||
key_output ' '
|
||||
wait 20000000
|
||||
key_output ' '
|
||||
wait 1000000
|
||||
;
|
||||
key_output '0' ; vertical sub pixel scroll
|
||||
wait 1000000 ; 816677 1/8
|
||||
key_output ' '
|
||||
wait 1000000 ; 890842 1/16
|
||||
key_output ' '
|
||||
wait 1000000 ; 830950 1/32
|
||||
key_output ' '
|
||||
wait 1000000 ; 870899 1/64
|
||||
key_output ' '
|
||||
wait 1000000 ; 830965 1/128
|
||||
key_output ' '
|
||||
wait 1000000 ; menu
|
||||
;
|
||||
;
|
||||
key_output '4' ;
|
||||
wait 2000000 ; 1913669
|
||||
wait 900000 ; 730624
|
||||
key_output ' '
|
||||
wait 900000 ; 730624
|
||||
key_output ' '
|
||||
wait 900000 ; 730624
|
||||
key_output ' '
|
||||
wait 900000 ; 730624
|
||||
key_output ' '
|
||||
wait 900000 ; 730624
|
||||
key_output ' '
|
||||
wait 900000 ; 730624
|
||||
key_output ' '
|
||||
wait 900000 ; 730624
|
||||
key_output ' '
|
||||
wait 1000000 ;
|
||||
key_output ' '
|
||||
wait 1000000 ; menu
|
||||
;
|
||||
key_output '5' ; rlal crtc 2 (tous crtc)
|
||||
wait 900000
|
||||
key_output ' '
|
||||
wait 2000000
|
||||
key_output ' ' ; Menu
|
||||
wait 1000000
|
||||
;
|
||||
;
|
||||
key_output '\(RET)'
|
||||
wait 800000 ; 632429
|
||||
wait 6000000 ; 5111808
|
||||
wait 6000000 ; 5111808
|
||||
wait 6000000 ; 5111808
|
||||
wait 6000000 ; 5111808
|
||||
wait 6000000 ; 5111808
|
||||
wait 6000000 ; 5111808
|
||||
wait 6000000 ; 5111808
|
||||
wait 6000000 ; 5111808
|
||||
wait 6000000 ; 5111808
|
||||
key_output ' '
|
||||
wait 800000 ; 647344
|
||||
wait 6000000 ; 5111808
|
||||
wait 6000000 ; 5111808
|
||||
wait 6000000 ; 5111808
|
||||
wait 6000000 ; 5111808
|
||||
wait 6000000 ; 5111808
|
||||
wait 6000000 ; 5111808
|
||||
wait 6000000 ; 5111808
|
||||
wait 6000000 ; 5111808
|
||||
wait 6000000 ; 5111808
|
||||
key_output ' '
|
||||
wait 800000 ; 667312
|
||||
wait 6000000 ; 5111808
|
||||
wait 6000000 ; 5111808
|
||||
wait 6000000 ; 5111808
|
||||
wait 6000000 ; 5111808
|
||||
wait 6000000 ; 5111808
|
||||
wait 6000000 ; 5111808
|
||||
wait 6000000 ; 5111808
|
||||
wait 6000000 ; 5111808
|
||||
wait 6000000 ; 5111808
|
||||
key_output ' '
|
||||
wait 1000000
|
||||
;
|
||||
;Test Bounga
|
||||
key_output '\(FN0)'
|
||||
wait 30000000 ; ???
|
||||
key_output ' '
|
||||
wait 1000000
|
||||
;
|
||||
; Test RVNI LTD
|
||||
;
|
||||
key_output '\(CAP)'
|
||||
wait 6000000 ; 753563
|
||||
key_output ' '
|
||||
wait 6000000 ; 727728
|
||||
key_output ' '
|
||||
wait 6000000 ; 728880
|
||||
key_output ' '
|
||||
wait 6000000
|
||||
;
|
||||
; Shaker Killer Don't be afraid
|
||||
;
|
||||
key_output 'R'
|
||||
wait 5000000 ; 2615301 z80aintb
|
||||
key_output ' '
|
||||
wait 6000000 ; 4692484 r52Reset
|
||||
key_output ' '
|
||||
wait 9000000 ; 7867387 Inter Test IM1
|
||||
key_output ' '
|
||||
wait 9000000 ; 6888966 Inter Test IM2
|
||||
key_output ' '
|
||||
wait 3000000 ; 1711766 R52 Incr
|
||||
key_output ' '
|
||||
wait 900000 ; 486262 Otir Zone
|
||||
key_output ' '
|
||||
wait 1000000 ; menu
|
||||
;
|
||||
; R3 JIT
|
||||
key_output 'I'
|
||||
wait 1000000 ; 474622
|
||||
key_output ' '
|
||||
wait 1000000 ; 519168
|
||||
key_output ' '
|
||||
wait 1000000 ; 519168
|
||||
key_output ' '
|
||||
wait 1000000 ; 499200
|
||||
key_output ' '
|
||||
wait 1000000 ; 619008
|
||||
key_output ' '
|
||||
wait 1000000 ; 619008
|
||||
key_output ' '
|
||||
wait 1000000 ; 619008
|
||||
key_output ' '
|
||||
wait 1000000 ; 599040
|
||||
key_output ' '
|
||||
wait 1000000 ; Menu
|
||||
;
|
||||
; test crtc 0,1 only
|
||||
;
|
||||
key_output '\(COP)'
|
||||
wait 1000000 ; 787700
|
||||
key_output ' '
|
||||
wait 1000000 ; 778752
|
||||
key_output ' '
|
||||
wait 2000000 ; 702326+19968
|
||||
key_output ' '
|
||||
wait 2000000 ; 835656
|
||||
key_output ' '
|
||||
wait 2000000 ; 924826
|
||||
key_output ' '
|
||||
wait 4000000
|
||||
;
|
||||
;
|
||||
; test crtc 1 , ouvert aux autres CRTCs
|
||||
;
|
||||
key_output '6'
|
||||
wait 10000000 ; 1676617
|
||||
key_output ' '
|
||||
wait 1000000
|
||||
;
|
||||
; test crtc 0 only
|
||||
;
|
||||
key_output '7' ; resultat a verifier
|
||||
wait 800000 ; 613742
|
||||
wait 600000 ; 511808
|
||||
wait 2000000 ; 1277952
|
||||
wait 5000000 ; 3833856
|
||||
wait 2000000 ; 1277952
|
||||
wait 5000000 ; 3833856
|
||||
wait 2000000 ; 1277952
|
||||
key_output ' '
|
||||
wait 800000 ; 533680
|
||||
wait 6000000 ; 5111808
|
||||
wait 2000000 ; 1277952
|
||||
wait 6000000 ; 3833856
|
||||
wait 2000000 ; 1277952
|
||||
wait 6000000 ; 3833856
|
||||
wait 2000000 ; 1277952
|
||||
key_output ' '
|
||||
wait 800000 ; 565936
|
||||
wait 6000000 ; 5111808
|
||||
wait 6000000 ; 5111808
|
||||
wait 2000000 ; 1277952
|
||||
wait 6000000 ; 3833856
|
||||
wait 2000000 ; 1277952
|
||||
key_output ' '
|
||||
key_output ' '
|
||||
wait 800000 ; 565936
|
||||
wait 6000000 ; 5111808
|
||||
wait 6000000 ; 5111808
|
||||
wait 2000000 ; 1277952
|
||||
wait 6000000 ; 3833856
|
||||
wait 2000000 ; 1277952
|
||||
key_output ' '
|
||||
wait 1000000 ; menu
|
||||
;
|
||||
; test crtc 0 only
|
||||
;
|
||||
key_output 'U'
|
||||
wait 1200000 ;
|
||||
key_output ' ' ; A
|
||||
wait 1200000 ;
|
||||
key_output ' ' ; B
|
||||
wait 1200000 ;
|
||||
key_output ' ' ; C
|
||||
wait 1200000 ;
|
||||
key_output ' ' ; D
|
||||
wait 1200000 ;
|
||||
key_output ' ' ; E
|
||||
wait 1200000 ;
|
||||
key_output ' ' ; F
|
||||
wait 1200000 ;
|
||||
key_output ' ' ; G
|
||||
wait 1200000 ;
|
||||
key_output ' ' ; H
|
||||
wait 1200000 ;
|
||||
key_output ' ' ; I
|
||||
wait 1200000 ;
|
||||
key_output ' ' ; J
|
||||
wait 1200000 ;
|
||||
key_output ' ' ; K
|
||||
wait 1200000 ;
|
||||
key_output ' ' ; L
|
||||
wait 1200000 ;
|
||||
key_output ' ' ; M
|
||||
wait 1200000 ;
|
||||
key_output ' ' ; N
|
||||
wait 1200000 ;
|
||||
key_output ' ' ; O
|
||||
wait 1200000 ;
|
||||
key_output ' ' ; P
|
||||
wait 1200000 ;
|
||||
key_output ' ' ; Q
|
||||
wait 1200000 ;
|
||||
key_output ' ' ; R
|
||||
wait 1200000 ;
|
||||
key_output ' ' ; S
|
||||
wait 1200000 ;
|
||||
;
|
||||
; Test Analyzer des premieres heures
|
||||
;
|
||||
key_output 'P'
|
||||
wait 100000000 ; 12828735+638976
|
||||
key_output ' '
|
||||
wait 100000000 ; 5440000+638976
|
||||
key_output ' '
|
||||
wait 100000000 ; 11637760+638976
|
||||
key_output ' '
|
||||
wait 100000000 ; 13560624+638976
|
||||
key_output ' '
|
||||
wait 1000000
|
||||
|
||||
csl_load 'SHAKE26B-1'
|
278
OSBindings/Mac/Clock SignalTests/Shaker/MODULE B/SHAKE26B-1.CSL
Normal file
278
OSBindings/Mac/Clock SignalTests/Shaker/MODULE B/SHAKE26B-1.CSL
Normal file
@ -0,0 +1,278 @@
|
||||
;
|
||||
; Fichier de script CSL
|
||||
; Execution du module SHAKE26B du DSK SHAKER26.DSK en CRTC 1
|
||||
; Le module genere des instructions au format SSM
|
||||
;
|
||||
csl_version 1.0
|
||||
crtc_select 1A
|
||||
reset
|
||||
wait 3000000
|
||||
disk_insert 'shaker26.dsk'
|
||||
key_delay 70000 70000 400000
|
||||
key_output 'RUN"SHAKE26B"\(RET)'
|
||||
wait 10000000
|
||||
;
|
||||
; test 1 interlace c4/c9 counters R9 base=07
|
||||
key_output '1'
|
||||
wait 5000000 ; Ecran settings, ecran intermediaire
|
||||
wait 7000000 ; 1er ecran
|
||||
key_output ' '
|
||||
wait 7000000 ; 5251584
|
||||
key_output ' '
|
||||
wait 7000000 ; 5251584
|
||||
key_output ' '
|
||||
wait 7000000 ; 5251584
|
||||
key_output ' '
|
||||
wait 7000000 ; 5251584
|
||||
key_output ' '
|
||||
wait 7000000 ; 5251584
|
||||
key_output ' '
|
||||
wait 7000000 ; 5251584
|
||||
key_output ' '
|
||||
wait 7000000 ; 5251584
|
||||
key_output ' '
|
||||
wait 7000000 ; 5251584
|
||||
key_output ' '
|
||||
wait 7000000 ; 5251584
|
||||
key_output ' '
|
||||
wait 7000000 ; 5251584
|
||||
key_output ' '
|
||||
wait 7000000 ; menu
|
||||
;
|
||||
key_output 'Z' ; Passe sur R9 BASE=6
|
||||
wait 300000
|
||||
;
|
||||
key_output '1'
|
||||
wait 5000000 ; Ecran settings, ecran intermediaire
|
||||
wait 7000000 ; 1er ecran
|
||||
key_output ' '
|
||||
wait 7000000 ; 5251584
|
||||
key_output ' '
|
||||
wait 7000000 ; 5251584
|
||||
key_output ' '
|
||||
wait 7000000 ; 5251584
|
||||
key_output ' '
|
||||
wait 7000000 ; 5251584
|
||||
key_output ' '
|
||||
wait 7000000 ; 5251584
|
||||
key_output ' '
|
||||
wait 7000000 ; 5251584
|
||||
key_output ' '
|
||||
wait 7000000 ; 5251584
|
||||
key_output ' '
|
||||
wait 7000000 ; 5251584
|
||||
key_output ' '
|
||||
wait 7000000 ; 5251584
|
||||
key_output ' '
|
||||
wait 7000000 ; 5251584
|
||||
key_output ' '
|
||||
wait 7000000 ; menu
|
||||
;
|
||||
; test 9 (garder la foi tu dois, mecreant)
|
||||
key_output '9'
|
||||
wait 20000000 ;
|
||||
key_output ' '
|
||||
wait 20000000
|
||||
key_output ' '
|
||||
wait 1000000
|
||||
;
|
||||
key_output '0' ; vertical sub pixel scroll
|
||||
wait 1000000 ; 816677 1/8
|
||||
key_output ' '
|
||||
wait 1000000 ; 890842 1/16
|
||||
key_output ' '
|
||||
wait 1000000 ; 830950 1/32
|
||||
key_output ' '
|
||||
wait 1000000 ; 870899 1/64
|
||||
key_output ' '
|
||||
wait 1000000 ; 830965 1/128
|
||||
key_output ' '
|
||||
wait 1000000 ; menu
|
||||
;
|
||||
key_output '4' ;
|
||||
wait 2000000 ; 1913669
|
||||
wait 900000 ; 730624
|
||||
key_output ' '
|
||||
wait 900000 ; 730624
|
||||
key_output ' '
|
||||
wait 900000 ; 730624
|
||||
key_output ' '
|
||||
wait 900000 ; 730624
|
||||
key_output ' '
|
||||
wait 900000 ; 730624
|
||||
key_output ' '
|
||||
wait 900000 ; 730624
|
||||
key_output ' '
|
||||
wait 900000 ; 730624
|
||||
key_output ' '
|
||||
wait 1000000 ;
|
||||
key_output ' '
|
||||
wait 1000000 ; menu
|
||||
;
|
||||
key_output '5' ; rlal crtc 2 (tous crtc)
|
||||
wait 900000
|
||||
key_output ' '
|
||||
wait 2000000
|
||||
key_output ' ' ; Menu
|
||||
wait 1000000
|
||||
;
|
||||
;
|
||||
key_output '\(RET)'
|
||||
wait 800000 ; 632429
|
||||
wait 6000000 ; 5111808
|
||||
wait 6000000 ; 5111808
|
||||
wait 6000000 ; 5111808
|
||||
wait 6000000 ; 5111808
|
||||
wait 6000000 ; 5111808
|
||||
wait 6000000 ; 5111808
|
||||
wait 6000000 ; 5111808
|
||||
wait 6000000 ; 5111808
|
||||
wait 6000000 ; 5111808
|
||||
key_output ' '
|
||||
wait 800000 ; 647344
|
||||
wait 6000000 ; 5111808
|
||||
wait 6000000 ; 5111808
|
||||
wait 6000000 ; 5111808
|
||||
wait 6000000 ; 5111808
|
||||
wait 6000000 ; 5111808
|
||||
wait 6000000 ; 5111808
|
||||
wait 6000000 ; 5111808
|
||||
wait 6000000 ; 5111808
|
||||
wait 6000000 ; 5111808
|
||||
key_output ' '
|
||||
wait 800000 ; 667312
|
||||
wait 6000000 ; 5111808
|
||||
wait 6000000 ; 5111808
|
||||
wait 6000000 ; 5111808
|
||||
wait 6000000 ; 5111808
|
||||
wait 6000000 ; 5111808
|
||||
wait 6000000 ; 5111808
|
||||
wait 6000000 ; 5111808
|
||||
wait 6000000 ; 5111808
|
||||
wait 6000000 ; 5111808
|
||||
key_output ' '
|
||||
wait 1000000
|
||||
;
|
||||
;Test Bounga
|
||||
key_output '\(FN0)'
|
||||
wait 30000000 ; ???
|
||||
key_output ' '
|
||||
wait 1000000
|
||||
;
|
||||
; Test RVNI LTD
|
||||
;
|
||||
key_output '\(CAP)'
|
||||
wait 6000000 ; 753563
|
||||
key_output ' '
|
||||
wait 6000000 ; 727728
|
||||
key_output ' '
|
||||
wait 6000000 ; 728880
|
||||
key_output ' '
|
||||
wait 6000000
|
||||
;
|
||||
; Shaker Killer Don't be afraid
|
||||
;
|
||||
key_output 'R'
|
||||
wait 5000000 ; 2615301 z80aintb
|
||||
key_output ' '
|
||||
wait 6000000 ; 4692484 r52Reset
|
||||
key_output ' '
|
||||
wait 9000000 ; 7867387 Inter Test IM1
|
||||
key_output ' '
|
||||
wait 9000000 ; 6888966 Inter Test IM2
|
||||
key_output ' '
|
||||
wait 3000000 ; 1711766 R52 Incr
|
||||
key_output ' '
|
||||
wait 900000 ; 486262 Otir Zone
|
||||
key_output ' '
|
||||
wait 1000000 ; menu
|
||||
;
|
||||
; R3 JIT
|
||||
key_output 'I'
|
||||
wait 1000000 ; 474622
|
||||
key_output ' '
|
||||
wait 1000000 ; 519168
|
||||
key_output ' '
|
||||
wait 1000000 ; 519168
|
||||
key_output ' '
|
||||
wait 1000000 ; 499200
|
||||
key_output ' '
|
||||
wait 1000000 ; 619008
|
||||
key_output ' '
|
||||
wait 1000000 ; 619008
|
||||
key_output ' '
|
||||
wait 1000000 ; 619008
|
||||
key_output ' '
|
||||
wait 1000000 ; 599040
|
||||
key_output ' '
|
||||
wait 1000000 ; Menu
|
||||
;
|
||||
; test crtc 0,1 only
|
||||
;
|
||||
key_output '\(COP)'
|
||||
wait 1000000 ; 787700
|
||||
key_output ' '
|
||||
wait 1000000 ; 778752
|
||||
key_output ' '
|
||||
wait 2000000 ; 702326+19968
|
||||
key_output ' '
|
||||
wait 2000000 ; 835656
|
||||
key_output ' '
|
||||
wait 2000000 ; 924826
|
||||
key_output ' '
|
||||
wait 4000000
|
||||
;
|
||||
;
|
||||
; test crtc 1 , ouvert aux autres CRTCs
|
||||
;
|
||||
key_output '6'
|
||||
wait 10000000 ; 1676617
|
||||
key_output ' '
|
||||
wait 1000000
|
||||
;
|
||||
; test crtc 1 only : identification crtc 1A/1B
|
||||
; pour le 1A
|
||||
key_output 'O'
|
||||
wait 500000 ; 336980
|
||||
key_output ' '
|
||||
wait 1000000
|
||||
;
|
||||
;
|
||||
; test crtc 1 only : BE00 check
|
||||
;
|
||||
key_output 'S'
|
||||
wait 5000000 ; 1976392
|
||||
key_output ' '
|
||||
wait 1000000
|
||||
;
|
||||
;
|
||||
; Test Analyzer des premieres heures
|
||||
;
|
||||
key_output 'P'
|
||||
wait 100000000 ; 12828735+638976
|
||||
key_output ' '
|
||||
wait 100000000 ; 5440000+638976
|
||||
key_output ' '
|
||||
wait 100000000 ; 11637760+638976
|
||||
key_output ' '
|
||||
wait 100000000 ; 13560624+638976
|
||||
key_output ' '
|
||||
wait 1000000
|
||||
;
|
||||
; Test RFD
|
||||
;
|
||||
key_output '\(CTR)'
|
||||
wait 10000000
|
||||
;
|
||||
; Si la selection de crtc en cours de route pose prb sortir ce test
|
||||
;
|
||||
crtc_select 1B
|
||||
;
|
||||
; test crtc 1 only : identification crtc 1A/1B
|
||||
; pour le 1B
|
||||
key_output 'E'
|
||||
wait 500000 ; 336980
|
||||
key_output ' '
|
||||
wait 1000000
|
||||
;
|
||||
csl_load 'SHAKE26B-2'
|
306
OSBindings/Mac/Clock SignalTests/Shaker/MODULE B/SHAKE26B-2.CSL
Normal file
306
OSBindings/Mac/Clock SignalTests/Shaker/MODULE B/SHAKE26B-2.CSL
Normal file
@ -0,0 +1,306 @@
|
||||
;
|
||||
; Fichier de script CSL
|
||||
; Execution du module SHAKE26B du DSK SHAKER26.DSK en CRTC 2
|
||||
; Le module genere des instructions au format SSM
|
||||
;
|
||||
csl_version 1.0
|
||||
crtc_select 2
|
||||
reset
|
||||
wait 3000000
|
||||
disk_insert 'shaker26.dsk'
|
||||
key_delay 70000 70000 400000
|
||||
key_output 'RUN"SHAKE26B"\(RET)'
|
||||
wait 10000000
|
||||
;
|
||||
; test 1 interlace c4/c9 counters R9 base=07 Parity Odd
|
||||
key_output '1'
|
||||
wait 5000000 ; Ecran settings, ecran intermediaire
|
||||
wait 7000000 ; 1er ecran
|
||||
key_output ' '
|
||||
wait 7000000 ; 5251584
|
||||
key_output ' '
|
||||
wait 7000000 ; 5251584
|
||||
key_output ' '
|
||||
wait 7000000 ; 5251584
|
||||
key_output ' '
|
||||
wait 7000000 ; 5251584
|
||||
key_output ' '
|
||||
wait 7000000 ; 5251584
|
||||
key_output ' '
|
||||
wait 7000000 ; 5251584
|
||||
key_output ' '
|
||||
wait 7000000 ; 5251584
|
||||
key_output ' '
|
||||
wait 7000000 ; 5251584
|
||||
key_output ' '
|
||||
wait 7000000 ; 5251584
|
||||
key_output ' '
|
||||
wait 7000000 ; 5251584
|
||||
key_output ' '
|
||||
wait 7000000 ; menu
|
||||
key_output 'Y' ; bascule sur parity Even (R9 Base=7)
|
||||
wait 300000
|
||||
;
|
||||
key_output '1'
|
||||
wait 5000000 ; Ecran settings, ecran intermediaire
|
||||
wait 7000000 ; 1er ecran
|
||||
key_output ' '
|
||||
wait 7000000 ; 5251584
|
||||
key_output ' '
|
||||
wait 7000000 ; 5251584
|
||||
key_output ' '
|
||||
wait 7000000 ; 5251584
|
||||
key_output ' '
|
||||
wait 7000000 ; 5251584
|
||||
key_output ' '
|
||||
wait 7000000 ; 5251584
|
||||
key_output ' '
|
||||
wait 7000000 ; 5251584
|
||||
key_output ' '
|
||||
wait 7000000 ; 5251584
|
||||
key_output ' '
|
||||
wait 7000000 ; 5251584
|
||||
key_output ' '
|
||||
wait 7000000 ; 5251584
|
||||
key_output ' '
|
||||
wait 7000000 ; 5251584
|
||||
key_output ' '
|
||||
wait 7000000 ; menu
|
||||
key_output 'Z' ; Passe sur R9 BASE=6 (parity Even)
|
||||
wait 300000
|
||||
;
|
||||
key_output '1'
|
||||
wait 5000000 ; Ecran settings, ecran intermediaire
|
||||
wait 7000000 ; 1er ecran
|
||||
key_output ' '
|
||||
wait 7000000 ; 5251584
|
||||
key_output ' '
|
||||
wait 7000000 ; 5251584
|
||||
key_output ' '
|
||||
wait 7000000 ; 5251584
|
||||
key_output ' '
|
||||
wait 7000000 ; 5251584
|
||||
key_output ' '
|
||||
wait 7000000 ; 5251584
|
||||
key_output ' '
|
||||
wait 7000000 ; 5251584
|
||||
key_output ' '
|
||||
wait 7000000 ; 5251584
|
||||
key_output ' '
|
||||
wait 7000000 ; 5251584
|
||||
key_output ' '
|
||||
wait 7000000 ; 5251584
|
||||
key_output ' '
|
||||
wait 7000000 ; 5251584
|
||||
key_output ' '
|
||||
wait 7000000 ; menu
|
||||
;
|
||||
key_output 'Y' ; bascule sur parity Odd (R9 base=6)
|
||||
wait 300000
|
||||
key_output '1'
|
||||
wait 5000000 ; Ecran settings, ecran intermediaire
|
||||
wait 7000000 ; 1er ecran
|
||||
key_output ' '
|
||||
wait 7000000 ; 5251584
|
||||
key_output ' '
|
||||
wait 7000000 ; 5251584
|
||||
key_output ' '
|
||||
wait 7000000 ; 5251584
|
||||
key_output ' '
|
||||
wait 7000000 ; 5251584
|
||||
key_output ' '
|
||||
wait 7000000 ; 5251584
|
||||
key_output ' '
|
||||
wait 7000000 ; 5251584
|
||||
key_output ' '
|
||||
wait 7000000 ; 5251584
|
||||
key_output ' '
|
||||
wait 7000000 ; 5251584
|
||||
key_output ' '
|
||||
wait 7000000 ; 5251584
|
||||
key_output ' '
|
||||
wait 7000000 ; 5251584
|
||||
key_output ' '
|
||||
wait 7000000 ; menu
|
||||
;
|
||||
; test 9 (garder la foi tu dois, mecreant)
|
||||
key_output '9' ; En Odd
|
||||
wait 20000000 ;
|
||||
key_output ' '
|
||||
wait 20000000
|
||||
key_output ' '
|
||||
wait 1000000
|
||||
;
|
||||
key_output 'Y' ; Repasser en Even
|
||||
wait 100000
|
||||
key_output '9' ; En even
|
||||
wait 20000000 ;
|
||||
key_output ' '
|
||||
wait 20000000
|
||||
key_output ' '
|
||||
wait 1000000
|
||||
;
|
||||
key_output '0' ; vertical sub pixel scroll
|
||||
wait 1000000 ; 816677 1/8
|
||||
key_output ' '
|
||||
wait 1000000 ; 890842 1/16
|
||||
key_output ' '
|
||||
wait 1000000 ; 830950 1/32
|
||||
key_output ' '
|
||||
wait 1000000 ; 870899 1/64
|
||||
key_output ' '
|
||||
wait 1000000 ; 830965 1/128
|
||||
key_output ' '
|
||||
wait 1000000 ; menu
|
||||
;
|
||||
; ** crtc 2 only Even mode 1 ecran
|
||||
key_output '2' ;
|
||||
wait 3000000 ; 1245718
|
||||
key_output ' ' ;
|
||||
wait 1000000 ; menu
|
||||
key_output 'Y' ; repasser en Odd
|
||||
key_output '2'
|
||||
wait 3000000 ; 1245718
|
||||
key_output ' ' ;
|
||||
wait 3000000 ; 1245718 2 ecrans
|
||||
;
|
||||
key_output '4' ;
|
||||
wait 2000000 ; 1913669
|
||||
wait 900000 ; 730624
|
||||
key_output ' '
|
||||
wait 900000 ; 730624
|
||||
key_output ' '
|
||||
wait 900000 ; 730624
|
||||
key_output ' '
|
||||
wait 900000 ; 730624
|
||||
key_output ' '
|
||||
wait 900000 ; 730624
|
||||
key_output ' '
|
||||
wait 900000 ; 730624
|
||||
key_output ' '
|
||||
wait 900000 ; 730624
|
||||
key_output ' '
|
||||
wait 1000000 ;
|
||||
key_output ' '
|
||||
wait 1000000 ; menu
|
||||
;
|
||||
key_output '5' ; rlal crtc 2 (tous crtc)
|
||||
wait 900000
|
||||
key_output ' '
|
||||
wait 2000000
|
||||
key_output ' ' ; Menu
|
||||
wait 1000000
|
||||
;
|
||||
;
|
||||
key_output '\(RET)'
|
||||
wait 800000 ; 632429
|
||||
wait 6000000 ; 5111808
|
||||
wait 6000000 ; 5111808
|
||||
wait 6000000 ; 5111808
|
||||
wait 6000000 ; 5111808
|
||||
wait 6000000 ; 5111808
|
||||
wait 6000000 ; 5111808
|
||||
wait 6000000 ; 5111808
|
||||
wait 6000000 ; 5111808
|
||||
wait 6000000 ; 5111808
|
||||
key_output ' '
|
||||
wait 800000 ; 647344
|
||||
wait 6000000 ; 5111808
|
||||
wait 6000000 ; 5111808
|
||||
wait 6000000 ; 5111808
|
||||
wait 6000000 ; 5111808
|
||||
wait 6000000 ; 5111808
|
||||
wait 6000000 ; 5111808
|
||||
wait 6000000 ; 5111808
|
||||
wait 6000000 ; 5111808
|
||||
wait 6000000 ; 5111808
|
||||
key_output ' '
|
||||
wait 800000 ; 667312
|
||||
wait 6000000 ; 5111808
|
||||
wait 6000000 ; 5111808
|
||||
wait 6000000 ; 5111808
|
||||
wait 6000000 ; 5111808
|
||||
wait 6000000 ; 5111808
|
||||
wait 6000000 ; 5111808
|
||||
wait 6000000 ; 5111808
|
||||
wait 6000000 ; 5111808
|
||||
wait 6000000 ; 5111808
|
||||
key_output ' '
|
||||
wait 1000000
|
||||
;
|
||||
;Test Bounga
|
||||
key_output '\(FN0)'
|
||||
wait 30000000 ; ???
|
||||
key_output ' '
|
||||
wait 1000000
|
||||
;
|
||||
; Test RVNI LTD
|
||||
;
|
||||
key_output '\(CAP)'
|
||||
wait 6000000 ; 753563
|
||||
key_output ' '
|
||||
wait 6000000 ; 727728
|
||||
key_output ' '
|
||||
wait 6000000 ; 728880
|
||||
key_output ' '
|
||||
wait 6000000
|
||||
;
|
||||
; Shaker Killer Don't be afraid
|
||||
;
|
||||
key_output 'R'
|
||||
wait 5000000 ; 2615301 z80aintb
|
||||
key_output ' '
|
||||
wait 6000000 ; 4692484 r52Reset
|
||||
key_output ' '
|
||||
wait 9000000 ; 7867387 Inter Test IM1
|
||||
key_output ' '
|
||||
wait 9000000 ; 6888966 Inter Test IM2
|
||||
key_output ' '
|
||||
wait 3000000 ; 1711766 R52 Incr
|
||||
key_output ' '
|
||||
wait 900000 ; 486262 Otir Zone
|
||||
key_output ' '
|
||||
wait 1000000 ; menu
|
||||
;
|
||||
; R3 JIT
|
||||
key_output 'I'
|
||||
wait 1000000 ; 474622
|
||||
key_output ' '
|
||||
wait 1000000 ; 519168
|
||||
key_output ' '
|
||||
wait 1000000 ; 519168
|
||||
key_output ' '
|
||||
wait 1000000 ; 499200
|
||||
key_output ' '
|
||||
wait 1000000 ; 619008
|
||||
key_output ' '
|
||||
wait 1000000 ; 619008
|
||||
key_output ' '
|
||||
wait 1000000 ; 619008
|
||||
key_output ' '
|
||||
wait 1000000 ; 599040
|
||||
key_output ' '
|
||||
wait 1000000 ; Menu
|
||||
;
|
||||
; test crtc 1 , ouvert aux autres CRTCs
|
||||
;
|
||||
key_output '6'
|
||||
wait 20000000 ; 1676617
|
||||
key_output ' '
|
||||
wait 1000000
|
||||
;
|
||||
;
|
||||
; Test Analyzer des premieres heures
|
||||
;
|
||||
key_output 'P'
|
||||
wait 100000000 ; 12828735+638976
|
||||
key_output ' '
|
||||
wait 100000000 ; 5440000+638976
|
||||
key_output ' '
|
||||
wait 100000000 ; 11637760+638976
|
||||
key_output ' '
|
||||
wait 100000000 ; 13560624+638976
|
||||
key_output ' '
|
||||
wait 1000000
|
||||
|
||||
csl_load 'SHAKE26B-4'
|
242
OSBindings/Mac/Clock SignalTests/Shaker/MODULE B/SHAKE26B-3.CSL
Normal file
242
OSBindings/Mac/Clock SignalTests/Shaker/MODULE B/SHAKE26B-3.CSL
Normal file
@ -0,0 +1,242 @@
|
||||
;
|
||||
; Fichier de script CSL
|
||||
; Execution du module SHAKE26B du DSK SHAKER26.DSK en CRTC 3
|
||||
; Le module genere des instructions au format SSM
|
||||
;
|
||||
csl_version 1.0
|
||||
crtc_select 3
|
||||
reset
|
||||
wait 3000000
|
||||
disk_insert 'shaker26.dsk'
|
||||
key_delay 70000 70000 400000
|
||||
key_output 'RUN"SHAKE26B"\(RET)'
|
||||
wait 10000000
|
||||
;
|
||||
; test 1 interlace c4/c9 counters R9 base=07
|
||||
key_output '1'
|
||||
wait 5000000 ; Ecran settings, ecran intermediaire
|
||||
wait 7000000 ; 1er ecran
|
||||
key_output ' '
|
||||
wait 7000000 ; 5251584
|
||||
key_output ' '
|
||||
wait 7000000 ; 5251584
|
||||
key_output ' '
|
||||
wait 7000000 ; 5251584
|
||||
key_output ' '
|
||||
wait 7000000 ; 5251584
|
||||
key_output ' '
|
||||
wait 7000000 ; 5251584
|
||||
key_output ' '
|
||||
wait 7000000 ; 5251584
|
||||
key_output ' '
|
||||
wait 7000000 ; 5251584
|
||||
key_output ' '
|
||||
wait 7000000 ; 5251584
|
||||
key_output ' '
|
||||
wait 7000000 ; 5251584
|
||||
key_output ' '
|
||||
wait 7000000 ; 5251584
|
||||
key_output ' '
|
||||
wait 7000000 ; menu
|
||||
;
|
||||
key_output 'Z' ; Passe sur R9 BASE=6
|
||||
wait 300000
|
||||
;
|
||||
key_output '1'
|
||||
wait 5000000 ; Ecran settings, ecran intermediaire
|
||||
wait 7000000 ; 1er ecran
|
||||
key_output ' '
|
||||
wait 7000000 ; 5251584
|
||||
key_output ' '
|
||||
wait 7000000 ; 5251584
|
||||
key_output ' '
|
||||
wait 7000000 ; 5251584
|
||||
key_output ' '
|
||||
wait 7000000 ; 5251584
|
||||
key_output ' '
|
||||
wait 7000000 ; 5251584
|
||||
key_output ' '
|
||||
wait 7000000 ; 5251584
|
||||
key_output ' '
|
||||
wait 7000000 ; 5251584
|
||||
key_output ' '
|
||||
wait 7000000 ; 5251584
|
||||
key_output ' '
|
||||
wait 7000000 ; 5251584
|
||||
key_output ' '
|
||||
wait 7000000 ; 5251584
|
||||
key_output ' '
|
||||
wait 7000000 ; menu
|
||||
;
|
||||
; test 9 (garder la foi tu dois, mecreant)
|
||||
key_output '9'
|
||||
wait 20000000 ;
|
||||
key_output ' '
|
||||
wait 20000000
|
||||
key_output ' '
|
||||
wait 1000000
|
||||
;
|
||||
key_output 'Y' ; Repasser en Even
|
||||
wait 100000
|
||||
key_output '9' ; En even
|
||||
wait 20000000 ;
|
||||
key_output ' '
|
||||
wait 20000000
|
||||
key_output ' '
|
||||
wait 1000000
|
||||
;
|
||||
key_output '0' ; vertical sub pixel scroll
|
||||
wait 1000000 ; 816677 1/8
|
||||
key_output ' '
|
||||
wait 1000000 ; 890842 1/16
|
||||
key_output ' '
|
||||
wait 1000000 ; 830950 1/32
|
||||
key_output ' '
|
||||
wait 1000000 ; 870899 1/64
|
||||
key_output ' '
|
||||
wait 1000000 ; 830965 1/128
|
||||
key_output ' '
|
||||
wait 1000000 ; menu
|
||||
;
|
||||
key_output '4' ;
|
||||
wait 2000000 ; 1913669
|
||||
wait 900000 ; 730624
|
||||
key_output ' '
|
||||
wait 900000 ; 730624
|
||||
key_output ' '
|
||||
wait 900000 ; 730624
|
||||
key_output ' '
|
||||
wait 900000 ; 730624
|
||||
key_output ' '
|
||||
wait 900000 ; 730624
|
||||
key_output ' '
|
||||
wait 900000 ; 730624
|
||||
key_output ' '
|
||||
wait 900000 ; 730624
|
||||
key_output ' '
|
||||
wait 1000000 ;
|
||||
key_output ' '
|
||||
wait 1000000 ; menu
|
||||
;
|
||||
key_output '5' ; rlal crtc 2 (tous crtc)
|
||||
wait 900000
|
||||
key_output ' '
|
||||
wait 2000000
|
||||
key_output ' ' ; Menu
|
||||
wait 1000000
|
||||
;
|
||||
;
|
||||
key_output '\(RET)'
|
||||
wait 800000 ; 632429
|
||||
wait 6000000 ; 5111808
|
||||
wait 6000000 ; 5111808
|
||||
wait 6000000 ; 5111808
|
||||
wait 6000000 ; 5111808
|
||||
wait 6000000 ; 5111808
|
||||
wait 6000000 ; 5111808
|
||||
wait 6000000 ; 5111808
|
||||
wait 6000000 ; 5111808
|
||||
wait 6000000 ; 5111808
|
||||
key_output ' '
|
||||
wait 800000 ; 647344
|
||||
wait 6000000 ; 5111808
|
||||
wait 6000000 ; 5111808
|
||||
wait 6000000 ; 5111808
|
||||
wait 6000000 ; 5111808
|
||||
wait 6000000 ; 5111808
|
||||
wait 6000000 ; 5111808
|
||||
wait 6000000 ; 5111808
|
||||
wait 6000000 ; 5111808
|
||||
wait 6000000 ; 5111808
|
||||
key_output ' '
|
||||
wait 800000 ; 667312
|
||||
wait 6000000 ; 5111808
|
||||
wait 6000000 ; 5111808
|
||||
wait 6000000 ; 5111808
|
||||
wait 6000000 ; 5111808
|
||||
wait 6000000 ; 5111808
|
||||
wait 6000000 ; 5111808
|
||||
wait 6000000 ; 5111808
|
||||
wait 6000000 ; 5111808
|
||||
wait 6000000 ; 5111808
|
||||
key_output ' '
|
||||
wait 1000000
|
||||
;
|
||||
;Test Bounga
|
||||
key_output '\(FN0)'
|
||||
wait 30000000 ; ???
|
||||
key_output ' '
|
||||
wait 1000000
|
||||
;
|
||||
; Test RVNI LTD
|
||||
;
|
||||
key_output '\(CAP)'
|
||||
wait 6000000 ; 753563
|
||||
key_output ' '
|
||||
wait 6000000 ; 727728
|
||||
key_output ' '
|
||||
wait 6000000 ; 728880
|
||||
key_output ' '
|
||||
wait 6000000
|
||||
;
|
||||
; Shaker Killer Don't be afraid
|
||||
;
|
||||
key_output 'R'
|
||||
wait 5000000 ; 2615301 z80aintb
|
||||
key_output ' '
|
||||
wait 6000000 ; 4692484 r52Reset
|
||||
key_output ' '
|
||||
wait 9000000 ; 7867387 Inter Test IM1
|
||||
key_output ' '
|
||||
wait 9000000 ; 6888966 Inter Test IM2
|
||||
key_output ' '
|
||||
wait 3000000 ; 1711766 R52 Incr
|
||||
key_output ' '
|
||||
wait 900000 ; 486262 Otir Zone
|
||||
key_output ' '
|
||||
wait 1000000 ; menu
|
||||
;
|
||||
; R3 JIT
|
||||
key_output 'I'
|
||||
wait 1000000 ; 474622
|
||||
key_output ' '
|
||||
wait 1000000 ; 519168
|
||||
key_output ' '
|
||||
wait 1000000 ; 519168
|
||||
key_output ' '
|
||||
wait 1000000 ; 499200
|
||||
key_output ' '
|
||||
wait 1000000 ; 619008
|
||||
key_output ' '
|
||||
wait 1000000 ; 619008
|
||||
key_output ' '
|
||||
wait 1000000 ; 619008
|
||||
key_output ' '
|
||||
wait 1000000 ; 599040
|
||||
key_output ' '
|
||||
wait 1000000 ; Menu
|
||||
;
|
||||
;
|
||||
; test crtc 1 , ouvert aux autres CRTCs
|
||||
;
|
||||
key_output '6'
|
||||
wait 2000000 ; 1676617
|
||||
key_output ' '
|
||||
wait 1000000
|
||||
|
||||
;
|
||||
; Test Analyzer des premieres heures
|
||||
;
|
||||
key_output 'P'
|
||||
wait 100000000 ; 12828735+638976
|
||||
key_output ' '
|
||||
wait 100000000 ; 5440000+638976
|
||||
key_output ' '
|
||||
wait 100000000 ; 11637760+638976
|
||||
key_output ' '
|
||||
wait 100000000 ; 13560624+638976
|
||||
key_output ' '
|
||||
wait 1000000
|
||||
;
|
||||
reset
|
||||
;
|
241
OSBindings/Mac/Clock SignalTests/Shaker/MODULE B/SHAKE26B-4.CSL
Normal file
241
OSBindings/Mac/Clock SignalTests/Shaker/MODULE B/SHAKE26B-4.CSL
Normal file
@ -0,0 +1,241 @@
|
||||
;
|
||||
; Fichier de script CSL
|
||||
; Execution du module SHAKE26B du DSK SHAKER26.DSK en CRTC 4
|
||||
; Le module genere des instructions au format SSM
|
||||
;
|
||||
csl_version 1.0
|
||||
crtc_select 4
|
||||
reset
|
||||
wait 3000000
|
||||
disk_insert 'shaker26.dsk'
|
||||
key_delay 70000 70000 400000
|
||||
key_output 'RUN"SHAKE26B"\(RET)'
|
||||
wait 10000000
|
||||
;
|
||||
; test 1 interlace c4/c9 counters R9 base=06
|
||||
key_output '1'
|
||||
wait 5000000 ; Ecran settings, ecran intermediaire
|
||||
wait 7000000 ; 1er ecran
|
||||
key_output ' '
|
||||
wait 7000000 ; 5251584
|
||||
key_output ' '
|
||||
wait 7000000 ; 5251584
|
||||
key_output ' '
|
||||
wait 7000000 ; 5251584
|
||||
key_output ' '
|
||||
wait 7000000 ; 5251584
|
||||
key_output ' '
|
||||
wait 7000000 ; 5251584
|
||||
key_output ' '
|
||||
wait 7000000 ; 5251584
|
||||
key_output ' '
|
||||
wait 7000000 ; 5251584
|
||||
key_output ' '
|
||||
wait 7000000 ; 5251584
|
||||
key_output ' '
|
||||
wait 7000000 ; 5251584
|
||||
key_output ' '
|
||||
wait 7000000 ; 5251584
|
||||
key_output ' '
|
||||
wait 7000000 ; menu
|
||||
;
|
||||
key_output 'X' ; Passe sur R9 BASE=7
|
||||
wait 300000
|
||||
;
|
||||
key_output '1'
|
||||
wait 5000000 ; Ecran settings, ecran intermediaire
|
||||
wait 7000000 ; 1er ecran
|
||||
key_output ' '
|
||||
wait 7000000 ; 5251584
|
||||
key_output ' '
|
||||
wait 7000000 ; 5251584
|
||||
key_output ' '
|
||||
wait 7000000 ; 5251584
|
||||
key_output ' '
|
||||
wait 7000000 ; 5251584
|
||||
key_output ' '
|
||||
wait 7000000 ; 5251584
|
||||
key_output ' '
|
||||
wait 7000000 ; 5251584
|
||||
key_output ' '
|
||||
wait 7000000 ; 5251584
|
||||
key_output ' '
|
||||
wait 7000000 ; 5251584
|
||||
key_output ' '
|
||||
wait 7000000 ; 5251584
|
||||
key_output ' '
|
||||
wait 7000000 ; 5251584
|
||||
key_output ' '
|
||||
wait 7000000 ; menu
|
||||
;
|
||||
; test 9 (garder la foi tu dois, mecreant)
|
||||
key_output '9'
|
||||
wait 20000000 ;
|
||||
key_output ' '
|
||||
wait 20000000
|
||||
key_output ' '
|
||||
wait 1000000
|
||||
;
|
||||
key_output 'Y' ; Repasser en Even
|
||||
wait 100000
|
||||
key_output '9' ; En even
|
||||
wait 20000000 ;
|
||||
key_output ' '
|
||||
wait 20000000
|
||||
key_output ' '
|
||||
wait 1000000
|
||||
;
|
||||
key_output '0' ; vertical sub pixel scroll
|
||||
wait 1000000 ; 816677 1/8
|
||||
key_output ' '
|
||||
wait 1000000 ; 890842 1/16
|
||||
key_output ' '
|
||||
wait 1000000 ; 830950 1/32
|
||||
key_output ' '
|
||||
wait 1000000 ; 870899 1/64
|
||||
key_output ' '
|
||||
wait 1000000 ; 830965 1/128
|
||||
key_output ' '
|
||||
wait 1000000 ; menu
|
||||
;
|
||||
key_output '4' ;
|
||||
wait 2000000 ; 1913669
|
||||
wait 900000 ; 730624
|
||||
key_output ' '
|
||||
wait 900000 ; 730624
|
||||
key_output ' '
|
||||
wait 900000 ; 730624
|
||||
key_output ' '
|
||||
wait 900000 ; 730624
|
||||
key_output ' '
|
||||
wait 900000 ; 730624
|
||||
key_output ' '
|
||||
wait 900000 ; 730624
|
||||
key_output ' '
|
||||
wait 900000 ; 730624
|
||||
key_output ' '
|
||||
wait 1000000 ;
|
||||
key_output ' '
|
||||
wait 1000000 ; menu
|
||||
;
|
||||
key_output '5' ; rlal crtc 2 (tous crtc)
|
||||
wait 900000
|
||||
key_output ' '
|
||||
wait 2000000
|
||||
key_output ' ' ; Menu
|
||||
wait 1000000
|
||||
;
|
||||
;
|
||||
key_output '\(RET)'
|
||||
wait 800000 ; 632429
|
||||
wait 6000000 ; 5111808
|
||||
wait 6000000 ; 5111808
|
||||
wait 6000000 ; 5111808
|
||||
wait 6000000 ; 5111808
|
||||
wait 6000000 ; 5111808
|
||||
wait 6000000 ; 5111808
|
||||
wait 6000000 ; 5111808
|
||||
wait 6000000 ; 5111808
|
||||
wait 6000000 ; 5111808
|
||||
key_output ' '
|
||||
wait 800000 ; 647344
|
||||
wait 6000000 ; 5111808
|
||||
wait 6000000 ; 5111808
|
||||
wait 6000000 ; 5111808
|
||||
wait 6000000 ; 5111808
|
||||
wait 6000000 ; 5111808
|
||||
wait 6000000 ; 5111808
|
||||
wait 6000000 ; 5111808
|
||||
wait 6000000 ; 5111808
|
||||
wait 6000000 ; 5111808
|
||||
key_output ' '
|
||||
wait 800000 ; 667312
|
||||
wait 6000000 ; 5111808
|
||||
wait 6000000 ; 5111808
|
||||
wait 6000000 ; 5111808
|
||||
wait 6000000 ; 5111808
|
||||
wait 6000000 ; 5111808
|
||||
wait 6000000 ; 5111808
|
||||
wait 6000000 ; 5111808
|
||||
wait 6000000 ; 5111808
|
||||
wait 6000000 ; 5111808
|
||||
key_output ' '
|
||||
wait 1000000
|
||||
;
|
||||
;Test Bounga
|
||||
key_output '\(FN0)'
|
||||
wait 50000000 ; ???
|
||||
key_output ' '
|
||||
wait 1000000
|
||||
;
|
||||
; Test RVNI LTD
|
||||
;
|
||||
key_output '\(CAP)'
|
||||
wait 6000000 ; 753563
|
||||
key_output ' '
|
||||
wait 6000000 ; 727728
|
||||
key_output ' '
|
||||
wait 6000000 ; 728880
|
||||
key_output ' '
|
||||
wait 6000000
|
||||
;
|
||||
; Shaker Killer Don't be afraid
|
||||
;
|
||||
key_output 'R'
|
||||
wait 5000000 ; 2615301 z80aintb
|
||||
key_output ' '
|
||||
wait 6000000 ; 4692484 r52Reset
|
||||
key_output ' '
|
||||
wait 9000000 ; 7867387 Inter Test IM1
|
||||
key_output ' '
|
||||
wait 9000000 ; 6888966 Inter Test IM2
|
||||
key_output ' '
|
||||
wait 3000000 ; 1711766 R52 Incr
|
||||
key_output ' '
|
||||
wait 900000 ; 486262 Otir Zone
|
||||
key_output ' '
|
||||
wait 1000000 ; menu
|
||||
;
|
||||
; R3 JIT
|
||||
key_output 'I'
|
||||
wait 1000000 ; 474622
|
||||
key_output ' '
|
||||
wait 1000000 ; 519168
|
||||
key_output ' '
|
||||
wait 1000000 ; 519168
|
||||
key_output ' '
|
||||
wait 1000000 ; 499200
|
||||
key_output ' '
|
||||
wait 1000000 ; 619008
|
||||
key_output ' '
|
||||
wait 1000000 ; 619008
|
||||
key_output ' '
|
||||
wait 1000000 ; 619008
|
||||
key_output ' '
|
||||
wait 1000000 ; 599040
|
||||
key_output ' '
|
||||
wait 1000000 ; Menu
|
||||
;
|
||||
;
|
||||
; test crtc 1 , ouvert aux autres CRTCs
|
||||
;
|
||||
key_output '6'
|
||||
wait 12000000 ; 1676617
|
||||
key_output ' '
|
||||
wait 1000000
|
||||
|
||||
;
|
||||
; Test Analyzer des premieres heures
|
||||
;
|
||||
key_output 'P'
|
||||
wait 100000000 ; 12828735+638976
|
||||
key_output ' '
|
||||
wait 100000000 ; 5440000+638976
|
||||
key_output ' '
|
||||
wait 100000000 ; 11637760+638976
|
||||
key_output ' '
|
||||
wait 100000000 ; 13560624+638976
|
||||
key_output ' '
|
||||
wait 1000000
|
||||
;
|
||||
csl_load 'SHAKE26B-3'
|
@ -0,0 +1,96 @@
|
||||
;
|
||||
; Fichier de script CSL
|
||||
; Execution du module SHAKE26C du DSK SHAKER26.DSK en CRTC 0
|
||||
; Le module genere des instructions au format SSM
|
||||
;
|
||||
csl_version 1.0
|
||||
crtc_select 0
|
||||
reset
|
||||
wait 3000000
|
||||
disk_insert 'shaker26.dsk'
|
||||
key_delay 70000 70000 400000
|
||||
key_output 'RUN"SHAKE26C"\(RET)'
|
||||
wait 10000000
|
||||
;
|
||||
; test 5 Parity Check Select CRTC 0, 2
|
||||
key_output '5'
|
||||
wait 10000000
|
||||
key_output ' '
|
||||
wait 1000000 ; menu
|
||||
|
||||
; test prevu pour CRTC 2 mais disp autre crc Last Line cond
|
||||
key_output '7'
|
||||
wait 64000000
|
||||
key_output ' '
|
||||
wait 1000000 ; menu
|
||||
|
||||
; test crtc 2 vma' sur R1=0
|
||||
key_output 'T'
|
||||
wait 1100000
|
||||
key_output ' '
|
||||
wait 1200000
|
||||
key_output ' '
|
||||
wait 1200000
|
||||
key_output ' '
|
||||
wait 1200000
|
||||
key_output ' '
|
||||
wait 1000000 ; menu
|
||||
|
||||
; crtc 2 ghost vsync vs Last Line (others crtc welcome)
|
||||
key_output '\(RET)'
|
||||
wait 5000000
|
||||
key_output ' '
|
||||
wait 2000000
|
||||
key_output ' '
|
||||
wait 1000000 ; menu
|
||||
|
||||
; Add Line R5 on last line
|
||||
key_output 'E'
|
||||
wait 10000000
|
||||
key_output ' '
|
||||
wait 5000000
|
||||
key_output ' '
|
||||
wait 1000000 ; menu
|
||||
|
||||
; Add line R8
|
||||
key_output 'P'
|
||||
wait 12000000
|
||||
key_output ' '
|
||||
wait 1000000 ; menu
|
||||
|
||||
; r5 additional line in interlace mode
|
||||
key_output 'S'
|
||||
wait 2000000
|
||||
key_output ' '
|
||||
wait 1000000 ; menu
|
||||
|
||||
; CRTC 0,3,4 Interlace vsync nightmare (2 1er test uniqu CRTC1)
|
||||
key_output 'O'
|
||||
wait 4000000
|
||||
key_output ' '
|
||||
wait 6000000
|
||||
key_output ' '
|
||||
wait 1000000
|
||||
wait 8000000
|
||||
key_output ' '
|
||||
wait 9000000
|
||||
key_output ' '
|
||||
wait 9000000
|
||||
key_output ' '
|
||||
wait 10000000
|
||||
key_output ' '
|
||||
wait 9000000
|
||||
key_output ' '
|
||||
wait 10000000
|
||||
key_output ' '
|
||||
wait 10000000
|
||||
key_output ' '
|
||||
wait 1000000 ; menu
|
||||
|
||||
; R9/R4 UPD LAST LIMIT
|
||||
key_output 'R'
|
||||
wait 5000000
|
||||
key_output ' '
|
||||
wait 10000000 ; menu
|
||||
|
||||
csl_load 'SHAKE26C-1'
|
187
OSBindings/Mac/Clock SignalTests/Shaker/MODULE C/SHAKE26C-1.CSL
Normal file
187
OSBindings/Mac/Clock SignalTests/Shaker/MODULE C/SHAKE26C-1.CSL
Normal file
@ -0,0 +1,187 @@
|
||||
;
|
||||
; Fichier de script CSL
|
||||
; Execution du module SHAKE26C du DSK SHAKER26.DSK en CRTC 1
|
||||
; Le module genere des instructions au format SSM
|
||||
;
|
||||
csl_version 1.0
|
||||
crtc_select 1
|
||||
reset
|
||||
wait 3000000
|
||||
disk_insert 'shaker26.dsk'
|
||||
key_delay 70000 70000 400000
|
||||
key_output 'RUN"SHAKE26C"\(RET)'
|
||||
wait 10000000
|
||||
;
|
||||
; R8 IVM ODD C9
|
||||
key_output '2'
|
||||
wait 1000000
|
||||
key_output ' '
|
||||
wait 1000000
|
||||
key_output ' '
|
||||
wait 1000000
|
||||
key_output ' '
|
||||
wait 1000000
|
||||
key_output ' '
|
||||
wait 1000000
|
||||
key_output ' '
|
||||
wait 1000000
|
||||
key_output ' '
|
||||
wait 1000000
|
||||
key_output ' '
|
||||
wait 1000000
|
||||
key_output ' '
|
||||
wait 1000000
|
||||
key_output ' '
|
||||
wait 1000000 ; menu
|
||||
|
||||
; Parity Switch Status
|
||||
key_output '3'
|
||||
wait 5000000
|
||||
key_output ' '
|
||||
wait 1000000 ; menu
|
||||
|
||||
; Ivm On/Off
|
||||
key_output '4'
|
||||
wait 800000 ; 23D
|
||||
key_output ' '
|
||||
wait 1000000 ; 23E
|
||||
key_output ' '
|
||||
wait 1000000 ; 23F
|
||||
key_output ' '
|
||||
wait 1000000 ; 27F
|
||||
key_output ' '
|
||||
wait 1000000 ; 280
|
||||
key_output ' '
|
||||
wait 1000000 ; 281
|
||||
key_output ' '
|
||||
wait 1000000 ; 282
|
||||
key_output ' '
|
||||
wait 1000000 ; 283
|
||||
key_output ' '
|
||||
wait 1000000 ; 284
|
||||
key_output ' '
|
||||
wait 1000000 ; 285, 286
|
||||
key_output ' '
|
||||
wait 1000000 ; 287, 288
|
||||
key_output ' '
|
||||
wait 1000000 ; 289
|
||||
key_output ' '
|
||||
wait 1000000 ; 28A
|
||||
key_output ' '
|
||||
wait 1000000 ; 28B
|
||||
key_output ' '
|
||||
wait 1000000 ; 28c
|
||||
key_output ' '
|
||||
wait 1000000 ; 28d
|
||||
key_output ' '
|
||||
wait 1000000 ; 28e
|
||||
key_output ' '
|
||||
wait 1000000 ; 28f
|
||||
key_output ' '
|
||||
wait 1000000 ; 290
|
||||
key_output ' '
|
||||
wait 1000000 ; 291
|
||||
key_output ' '
|
||||
wait 1000000 ; 292
|
||||
key_output ' '
|
||||
wait 1000000 ; 293
|
||||
key_output ' '
|
||||
wait 1000000 ; 294
|
||||
key_output ' '
|
||||
wait 1000000 ; 295
|
||||
key_output ' '
|
||||
wait 1000000 ; 296, 297
|
||||
key_output ' '
|
||||
wait 1000000 ; 298, 299
|
||||
key_output ' '
|
||||
wait 1000000 ; 29a
|
||||
key_output ' '
|
||||
wait 1000000 ; 29b
|
||||
key_output ' '
|
||||
wait 1000000 ; 29c
|
||||
key_output ' '
|
||||
wait 1000000 ; 29d
|
||||
key_output ' '
|
||||
|
||||
; test prevu pour CRTC 2 mais disp autre crc Last Line cond
|
||||
key_output '7'
|
||||
wait 64000000
|
||||
key_output ' '
|
||||
wait 1000000 ; menu
|
||||
|
||||
; test crtc 2 vma' sur R1=0
|
||||
key_output 'T'
|
||||
wait 1100000
|
||||
key_output ' '
|
||||
wait 1200000
|
||||
key_output ' '
|
||||
wait 1200000
|
||||
key_output ' '
|
||||
wait 1200000
|
||||
key_output ' '
|
||||
wait 1000000 ; menu
|
||||
|
||||
; crtc 2 ghost vsync vs Last Line (others crtc welcome)
|
||||
key_output '\(RET)'
|
||||
wait 5000000
|
||||
key_output ' '
|
||||
wait 2000000
|
||||
key_output ' '
|
||||
wait 1000000 ; menu
|
||||
|
||||
; Add Line R5 on last line
|
||||
key_output 'E'
|
||||
wait 20000000
|
||||
key_output ' '
|
||||
wait 10000000
|
||||
key_output ' '
|
||||
wait 1000000 ; menu
|
||||
|
||||
; Add line R8
|
||||
key_output 'P'
|
||||
wait 20000000
|
||||
key_output ' '
|
||||
wait 1000000 ; menu
|
||||
|
||||
; r5 additional line in interlace mode
|
||||
key_output 'S'
|
||||
wait 4000000
|
||||
key_output ' '
|
||||
wait 1000000 ; menu
|
||||
|
||||
; CRTC 1 Interlace vsync nightmare (2 1er test uniqu CRTC1)
|
||||
key_output 'O'
|
||||
wait 12000000 ; cvsct1_a
|
||||
key_output ' '
|
||||
wait 6000000 ; cvsct1_b
|
||||
key_output ' '
|
||||
wait 3500000 ; cvstot
|
||||
key_output ' '
|
||||
wait 2000000 ; parity00
|
||||
wait 8000000
|
||||
key_output ' '
|
||||
wait 6000000 ; cvms_a
|
||||
key_output ' '
|
||||
wait 6000000 ; cvms_b
|
||||
key_output ' '
|
||||
wait 6000000 ; cvms_b
|
||||
key_output ' '
|
||||
wait 6000000 ; cvms_c
|
||||
key_output ' '
|
||||
wait 6000000 ; cvms_c
|
||||
key_output ' '
|
||||
wait 3000000 ; parity01a
|
||||
key_output ' '
|
||||
wait 3000000 ; parity01b
|
||||
key_output ' '
|
||||
wait 3000000 ; parity01c
|
||||
key_output ' '
|
||||
wait 3000000 ; parity01d
|
||||
key_output ' '
|
||||
wait 3000000 ; parity01e
|
||||
key_output ' '
|
||||
wait 3000000 ; parity01f
|
||||
key_output ' '
|
||||
wait 1000000
|
||||
|
||||
csl_load 'SHAKE26C-2'
|
154
OSBindings/Mac/Clock SignalTests/Shaker/MODULE C/SHAKE26C-2.CSL
Normal file
154
OSBindings/Mac/Clock SignalTests/Shaker/MODULE C/SHAKE26C-2.CSL
Normal file
@ -0,0 +1,154 @@
|
||||
;
|
||||
; Fichier de script CSL
|
||||
; Execution du module SHAKE26C du DSK SHAKER26.DSK en CRTC 2
|
||||
; Le module genere des instructions au format SSM
|
||||
;
|
||||
csl_version 1.0
|
||||
crtc_select 2
|
||||
reset
|
||||
wait 3000000
|
||||
disk_insert 'shaker26.dsk'
|
||||
key_delay 70000 70000 400000
|
||||
key_output 'RUN"SHAKE26C"\(RET)'
|
||||
wait 10000000
|
||||
;
|
||||
; test 5 Parity Check Select CRTC 0, 2
|
||||
key_output '5'
|
||||
wait 10000000
|
||||
key_output ' '
|
||||
wait 1000000 ; menu
|
||||
|
||||
; C9 IVM Switch
|
||||
key_output '6'
|
||||
wait 1200000 ; 29f
|
||||
key_output ' '
|
||||
wait 1200000 ; 2a4
|
||||
key_output ' '
|
||||
wait 1200000 ; 2a5
|
||||
key_output ' '
|
||||
wait 1200000 ; 2a6
|
||||
key_output ' '
|
||||
wait 1200000 ; 2a7
|
||||
key_output ' '
|
||||
wait 1200000 ; 2ac
|
||||
key_output ' '
|
||||
wait 1200000 ; 2ad
|
||||
key_output ' '
|
||||
wait 1200000 ; 2ae
|
||||
key_output ' '
|
||||
wait 1200000 ; 2af
|
||||
key_output ' '
|
||||
wait 1200000 ; 2b4
|
||||
key_output ' '
|
||||
wait 1200000 ; 2b5
|
||||
key_output ' '
|
||||
wait 1200000 ; 2b6
|
||||
key_output ' '
|
||||
wait 1200000 ; 2b7
|
||||
key_output ' '
|
||||
wait 1200000 ; 2bc
|
||||
key_output ' '
|
||||
wait 1200000 ; 2bd
|
||||
key_output ' '
|
||||
wait 1200000 ; 2be
|
||||
key_output ' '
|
||||
wait 1000000 ; menu
|
||||
|
||||
|
||||
; test prevu pour CRTC 2 mais disp autre crc Last Line cond
|
||||
key_output '7'
|
||||
wait 64000000
|
||||
key_output ' '
|
||||
wait 1000000 ; menu
|
||||
;
|
||||
; add line on parity bug
|
||||
key_output '8'
|
||||
wait 2000000 ; 2c0
|
||||
key_output ' '
|
||||
wait 2000000 ; 2c1
|
||||
key_output ' '
|
||||
wait 2000000 ; 2c2
|
||||
key_output ' '
|
||||
wait 2000000 ; 2c3
|
||||
key_output ' '
|
||||
wait 2000000 ; 2c4
|
||||
key_output ' '
|
||||
wait 2000000 ; 2c5
|
||||
key_output ' '
|
||||
wait 2000000 ; 2c6
|
||||
key_output ' '
|
||||
wait 1000000 ; menu
|
||||
|
||||
; add line rq & trigger
|
||||
key_output '9'
|
||||
wait 2000000 ; 2c7
|
||||
key_output ' '
|
||||
wait 300000000
|
||||
key_output ' '
|
||||
|
||||
; test crtc 2 vma' sur R1=0
|
||||
key_output 'T'
|
||||
wait 1100000
|
||||
key_output ' '
|
||||
wait 1200000
|
||||
key_output ' '
|
||||
wait 1200000
|
||||
key_output ' '
|
||||
wait 1200000
|
||||
key_output ' '
|
||||
wait 1000000 ; menu
|
||||
|
||||
; crtc 2 ghost vsync vs Last Line (others crtc welcome)
|
||||
key_output '\(RET)'
|
||||
wait 5000000
|
||||
key_output ' '
|
||||
wait 2000000
|
||||
key_output ' '
|
||||
wait 1000000 ; menu
|
||||
|
||||
; Add Line R5 on last line
|
||||
key_output 'E'
|
||||
wait 20000000
|
||||
key_output ' '
|
||||
wait 10000000
|
||||
key_output ' '
|
||||
wait 1000000 ; menu
|
||||
|
||||
; Add line R8
|
||||
key_output 'P'
|
||||
wait 20000000
|
||||
key_output ' '
|
||||
wait 1000000 ; menu
|
||||
|
||||
; r5 additional line in interlace mode
|
||||
key_output 'S'
|
||||
wait 2000000
|
||||
key_output ' '
|
||||
wait 1000000 ; menu
|
||||
|
||||
; CRTC 2 Interlace vsync nightmare (2 1er test uniqu CRTC1)
|
||||
key_output 'O'
|
||||
wait 6000000 ; cvstot
|
||||
key_output ' '
|
||||
wait 2000000 ; parity00 2d8
|
||||
wait 8000000 ; 2d9
|
||||
key_output ' '
|
||||
wait 10000000 ; cvms_a ; 2da
|
||||
key_output ' '
|
||||
wait 10000000 ; cvms_b ; 2db
|
||||
key_output ' '
|
||||
wait 10000000 ; cvms_b ; 2dc
|
||||
key_output ' '
|
||||
wait 10000000 ; cvms_c ; 2dd
|
||||
key_output ' '
|
||||
wait 10000000 ; cvms_c ; 2de
|
||||
key_output ' '
|
||||
wait 10000000 ; menu
|
||||
|
||||
; R9/R4 UPD LAST LIMIT
|
||||
key_output 'R'
|
||||
wait 5000000 ; 3ad
|
||||
key_output ' '
|
||||
wait 10000000 ; menu
|
||||
|
||||
csl_load 'SHAKE26C-4' ; corrected from cls_load
|
@ -0,0 +1,94 @@
|
||||
;
|
||||
; Fichier de script CSL
|
||||
; Execution du module SHAKE26C du DSK SHAKER26.DSK en CRTC 3
|
||||
; Le module genere des instructions au format SSM
|
||||
;
|
||||
csl_version 1.0
|
||||
crtc_select 3
|
||||
reset
|
||||
wait 3000000
|
||||
disk_insert 'shaker26.dsk'
|
||||
key_delay 70000 70000 400000
|
||||
key_output 'RUN"SHAKE26C"\(RET)'
|
||||
wait 10000000
|
||||
|
||||
; test prevu pour CRTC 2 mais disp autre crc Last Line cond
|
||||
key_output '7'
|
||||
wait 64000000
|
||||
key_output ' '
|
||||
wait 1000000 ; menu
|
||||
;
|
||||
; test crtc 2 vma' sur R1=0
|
||||
key_output 'T'
|
||||
wait 1100000
|
||||
key_output ' '
|
||||
wait 1200000
|
||||
key_output ' '
|
||||
wait 1200000
|
||||
key_output ' '
|
||||
wait 1200000
|
||||
key_output ' '
|
||||
wait 1000000 ; menu
|
||||
|
||||
; crtc 2 ghost vsync vs Last Line (others crtc welcome)
|
||||
key_output '\(RET)'
|
||||
wait 5000000 ; 2cd
|
||||
key_output ' '
|
||||
wait 2000000 ; 2ce
|
||||
key_output ' '
|
||||
wait 1000000 ; menu
|
||||
|
||||
; Add Line R5 on last line
|
||||
key_output 'E'
|
||||
wait 10000000 ; 2c9
|
||||
key_output ' '
|
||||
wait 5000000 ; 2ca
|
||||
key_output ' '
|
||||
wait 1000000 ; menu
|
||||
|
||||
; r5 additional line in interlace mode
|
||||
key_output 'S'
|
||||
wait 2000000 ; 2d3
|
||||
key_output ' '
|
||||
wait 1000000 ; menu
|
||||
|
||||
; CRTC 2 Interlace vsync nightmare (2 1er test uniqu CRTC1)
|
||||
key_output 'O'
|
||||
wait 6000000 ; cvstot 2d6
|
||||
key_output ' '
|
||||
wait 3500000 ; cvstot 2d7
|
||||
key_output ' '
|
||||
wait 2000000 ; parity00
|
||||
wait 8000000
|
||||
key_output ' '
|
||||
wait 10000000 ; cvms_a 2d8
|
||||
key_output ' '
|
||||
wait 10000000 ; cvms_b
|
||||
key_output ' '
|
||||
wait 10000000 ; cvms_b
|
||||
key_output ' '
|
||||
wait 10000000 ; cvms_c
|
||||
key_output ' '
|
||||
wait 10000000 ; cvms_c
|
||||
key_output ' '
|
||||
wait 10000000 ; menu
|
||||
|
||||
; Y crtc 3/4 parity
|
||||
key_output 'Y'
|
||||
wait 4500000 ; 2df
|
||||
key_output ' '
|
||||
wait 1000000 ; 2e0
|
||||
key_output ' '
|
||||
wait 1000000 ; 2e1
|
||||
key_output ' '
|
||||
wait 1000000 ; 2e2
|
||||
key_output ' '
|
||||
wait 10000000 ; menu
|
||||
|
||||
; R9/R4 UPD LAST LIMIT
|
||||
key_output 'R'
|
||||
wait 5000000
|
||||
key_output ' '
|
||||
wait 10000000 ; menu
|
||||
|
||||
reset
|
@ -0,0 +1,94 @@
|
||||
;
|
||||
; Fichier de script CSL
|
||||
; Execution du module SHAKE26C du DSK SHAKER26.DSK en CRTC 4
|
||||
; Le module genere des instructions au format SSM
|
||||
;
|
||||
csl_version 1.0
|
||||
crtc_select 4
|
||||
reset
|
||||
wait 3000000
|
||||
disk_insert 'shaker26.dsk'
|
||||
key_delay 70000 70000 400000
|
||||
key_output 'RUN"SHAKE26C"\(RET)'
|
||||
wait 10000000
|
||||
|
||||
; test prevu pour CRTC 2 mais disp autre crc Last Line cond
|
||||
key_output '7'
|
||||
wait 64000000
|
||||
key_output ' '
|
||||
wait 1000000 ; menu
|
||||
;
|
||||
; test crtc 2 vma' sur R1=0
|
||||
key_output 'T'
|
||||
wait 1100000
|
||||
key_output ' '
|
||||
wait 1200000
|
||||
key_output ' '
|
||||
wait 1200000
|
||||
key_output ' '
|
||||
wait 1200000
|
||||
key_output ' '
|
||||
wait 1000000 ; menu
|
||||
|
||||
; crtc 2 ghost vsync vs Last Line (others crtc welcome)
|
||||
key_output '\(RET)'
|
||||
wait 5000000 ; 2cd
|
||||
key_output ' '
|
||||
wait 2000000 ; 2ce
|
||||
key_output ' '
|
||||
wait 1000000 ; menu
|
||||
|
||||
; Add Line R5 on last line
|
||||
key_output 'E'
|
||||
wait 10000000 ; 2c9
|
||||
key_output ' '
|
||||
wait 5000000 ; 2ca
|
||||
key_output ' '
|
||||
wait 1000000 ; menu
|
||||
|
||||
; r5 additional line in interlace mode
|
||||
key_output 'S'
|
||||
wait 2000000 ; 2d3
|
||||
key_output ' '
|
||||
wait 1000000 ; menu
|
||||
|
||||
; CRTC 2 Interlace vsync nightmare (2 1er test uniqu CRTC1)
|
||||
key_output 'O'
|
||||
wait 6000000 ; cvstot 2d6
|
||||
key_output ' '
|
||||
wait 3500000 ; cvstot 2d7
|
||||
key_output ' '
|
||||
wait 2000000 ; parity00
|
||||
wait 8000000
|
||||
key_output ' '
|
||||
wait 10000000 ; cvms_a 2d8
|
||||
key_output ' '
|
||||
wait 10000000 ; cvms_b
|
||||
key_output ' '
|
||||
wait 10000000 ; cvms_b
|
||||
key_output ' '
|
||||
wait 10000000 ; cvms_c
|
||||
key_output ' '
|
||||
wait 10000000 ; cvms_c
|
||||
key_output ' '
|
||||
wait 10000000 ; menu
|
||||
|
||||
; Y crtc 3/4 parity
|
||||
key_output 'Y'
|
||||
wait 4500000 ; 2df
|
||||
key_output ' '
|
||||
wait 1000000 ; 2e0
|
||||
key_output ' '
|
||||
wait 1000000 ; 2e1
|
||||
key_output ' '
|
||||
wait 1000000 ; 2e2
|
||||
key_output ' '
|
||||
wait 10000000 ; menu
|
||||
|
||||
; R9/R4 UPD LAST LIMIT
|
||||
key_output 'R'
|
||||
wait 5000000
|
||||
key_output ' '
|
||||
wait 10000000 ; menu
|
||||
|
||||
csl_load 'SHAKE26C-3'
|
201
OSBindings/Mac/Clock SignalTests/Shaker/MODULE D/SHAKE26D-0.CSL
Normal file
201
OSBindings/Mac/Clock SignalTests/Shaker/MODULE D/SHAKE26D-0.CSL
Normal file
@ -0,0 +1,201 @@
|
||||
;
|
||||
; Fichier de script CSL
|
||||
; Execution du module SHAKE26D du DSK SHAKER26.DSK en CRTC 0
|
||||
; Le module genere des instructions au format SSM
|
||||
;
|
||||
csl_version 1.0
|
||||
crtc_select 0
|
||||
reset
|
||||
wait 3000000
|
||||
disk_insert 'shaker26.dsk'
|
||||
key_delay 70000 70000 400000
|
||||
key_output 'RUN"SHAKE26D"\(RET)'
|
||||
wait 10000000
|
||||
;
|
||||
; SHAKER KILLER 2
|
||||
key_output 'I'
|
||||
wait 2000000 ; 2e3 ecran bleu
|
||||
key_output ' '
|
||||
wait 2000000 ; 2e4
|
||||
key_output ' '
|
||||
wait 2000000 ; 2e5
|
||||
key_output ' '
|
||||
wait 2000000 ; 2e6
|
||||
key_output ' '
|
||||
wait 2000000 ; 2e7
|
||||
key_output ' '
|
||||
wait 2000000 ; 2e8
|
||||
key_output ' '
|
||||
wait 2000000 ; 2e9
|
||||
key_output ' '
|
||||
wait 1000000 ; menu
|
||||
|
||||
; VSYNC TORTURE (LOCK MECHANISM)
|
||||
; Eventuellement ajouter des SS sur les 3 tests desync crtc 0
|
||||
key_output 'R'
|
||||
wait 22000000 ; 2ea
|
||||
key_output ' '
|
||||
wait 1000000 ; menu
|
||||
|
||||
; VSYNC/CSYNC GATE ARRAY
|
||||
key_output 'T'
|
||||
wait 800000 ; 2eb
|
||||
key_output ' '
|
||||
wait 2000000 ; 2ec
|
||||
key_output ' '
|
||||
wait 2000000 ; 2ed
|
||||
key_output ' '
|
||||
wait 2000000 ; 2ee
|
||||
key_output ' '
|
||||
wait 2000000 ; 2ef
|
||||
key_output ' '
|
||||
wait 2000000 ; 2ef
|
||||
key_output ' '
|
||||
wait 2000000 ; 2f0
|
||||
key_output ' '
|
||||
wait 2000000 ; 2f1
|
||||
key_output ' '
|
||||
wait 2000000 ; 2f2
|
||||
key_output ' '
|
||||
wait 2000000 ; 2f3
|
||||
key_output ' '
|
||||
wait 2000000 ; 2f4
|
||||
key_output ' '
|
||||
wait 2000000 ; 2f5
|
||||
key_output ' '
|
||||
wait 2000000 ; 2fb
|
||||
key_output ' '
|
||||
wait 8000000 ; 2fc 2fd
|
||||
key_output ' '
|
||||
wait 4000000 ; 2fe
|
||||
key_output ' '
|
||||
wait 4000000 ; 2ff
|
||||
key_output ' '
|
||||
wait 4000000 ; 300
|
||||
key_output ' '
|
||||
wait 4000000 ; 301
|
||||
key_output ' '
|
||||
wait 1000000
|
||||
key_delay 90000
|
||||
key_output ' '
|
||||
key_output ' '
|
||||
wait 1000000 ; menu
|
||||
|
||||
|
||||
; HSYNC CSYNC GATE ARRAY
|
||||
key_output 'H'
|
||||
wait 1000000 ; 306
|
||||
key_output ' '
|
||||
wait 1200000 ; 307
|
||||
key_output ' '
|
||||
wait 1200000 ; 308
|
||||
key_output ' '
|
||||
wait 1200000 ; 309
|
||||
key_output ' '
|
||||
wait 1200000 ; 30A
|
||||
key_output ' '
|
||||
wait 1200000 ; 30B
|
||||
key_output ' '
|
||||
wait 1200000 ; 30C
|
||||
key_output ' '
|
||||
wait 1200000 ; 30D
|
||||
key_output ' '
|
||||
wait 1200000 ; 30E
|
||||
key_output ' '
|
||||
wait 1200000 ; 30F
|
||||
key_output ' '
|
||||
wait 1000000 ; menu
|
||||
|
||||
; CSYNC4 VS 2XCSYNC2
|
||||
;
|
||||
key_output '1'
|
||||
wait 4600000 ; 310
|
||||
wait 4000000 ; 311
|
||||
wait 8000000
|
||||
key_output ' '
|
||||
wait 1000000 ; menu
|
||||
|
||||
; R2JIT >> NO CSYNC UPD
|
||||
;
|
||||
key_output '2'
|
||||
wait 4500000 ; 312
|
||||
wait 4000000 ; 313
|
||||
wait 4000000
|
||||
key_output ' '
|
||||
wait 10000000
|
||||
key_output ' '
|
||||
wait 1000000
|
||||
|
||||
; 2 CSYNC RELATIVE;
|
||||
key_output '3'
|
||||
wait 1000000
|
||||
key_output ' '
|
||||
wait 1000000
|
||||
key_output ' '
|
||||
wait 1000000
|
||||
key_output ' '
|
||||
wait 1000000
|
||||
key_output ' '
|
||||
wait 1000000
|
||||
key_output ' '
|
||||
wait 1000000
|
||||
|
||||
; CSYNC MULTIPLES
|
||||
key_output '4'
|
||||
wait 1000000 ; 37f
|
||||
key_output ' '
|
||||
wait 3000000 ; 380
|
||||
key_output ' '
|
||||
wait 1000000
|
||||
|
||||
; Hardware scroll 1 pixel mode 1/0 (no buffering)
|
||||
key_output '6'
|
||||
wait 10000000 ; 381
|
||||
key_output ' '
|
||||
wait 10000000 ; 382
|
||||
key_output ' '
|
||||
wait 1000000
|
||||
|
||||
;
|
||||
; R2 oscillation story;
|
||||
key_output '7'
|
||||
wait 10000000 ; 383
|
||||
key_output ' '
|
||||
wait 4000000 ; 384
|
||||
key_output ' '
|
||||
wait 4000000 ; 385
|
||||
key_output ' '
|
||||
wait 4000000 ; 386
|
||||
key_output ' '
|
||||
wait 4000000 ; 387
|
||||
key_output ' '
|
||||
wait 4000000 ; 388
|
||||
key_output ' '
|
||||
wait 4000000 ; 389
|
||||
key_output ' '
|
||||
wait 4000000 ; 38a
|
||||
key_output ' '
|
||||
wait 4000000 ; 38b
|
||||
key_output ' '
|
||||
wait 4000000 ; 38c
|
||||
key_output ' '
|
||||
wait 1000000 ; menu
|
||||
;
|
||||
; no hsync for xx line
|
||||
key_output '8'
|
||||
wait 3000000 ; 38d
|
||||
key_output ' '
|
||||
wait 3000000 ; 38e
|
||||
key_output ' '
|
||||
wait 3000000 ; 38f
|
||||
key_output ' '
|
||||
wait 3000000 ; 390
|
||||
key_output ' '
|
||||
wait 3000000 ; 391
|
||||
key_output ' '
|
||||
wait 3000000 ; 392
|
||||
key_output ' '
|
||||
wait 1000000 ; menu
|
||||
|
||||
|
||||
csl_load 'SHAKE26D-1'
|
238
OSBindings/Mac/Clock SignalTests/Shaker/MODULE D/SHAKE26D-1.CSL
Normal file
238
OSBindings/Mac/Clock SignalTests/Shaker/MODULE D/SHAKE26D-1.CSL
Normal file
@ -0,0 +1,238 @@
|
||||
;
|
||||
; Fichier de script CSL
|
||||
; Execution du module SHAKE26D du DSK SHAKER26.DSK en CRTC 1
|
||||
; Le module genere des instructions au format SSM
|
||||
;
|
||||
csl_version 1.0
|
||||
crtc_select 1
|
||||
reset
|
||||
wait 3000000
|
||||
disk_insert 'shaker26.dsk'
|
||||
key_delay 70000 70000 400000
|
||||
key_output 'RUN"SHAKE26D"\(RET)'
|
||||
wait 10000000
|
||||
;
|
||||
; SHAKER KILLER 2
|
||||
key_output 'I'
|
||||
wait 2000000 ; 2e3 ecran bleu
|
||||
key_output ' '
|
||||
wait 2000000 ; 2e4
|
||||
key_output ' '
|
||||
wait 2000000 ; 2e5
|
||||
key_output ' '
|
||||
wait 2000000 ; 2e6
|
||||
key_output ' '
|
||||
wait 2000000 ; 2e7
|
||||
key_output ' '
|
||||
wait 2000000 ; 2e8
|
||||
key_output ' '
|
||||
wait 2000000 ; 2e9
|
||||
key_output ' '
|
||||
wait 1000000 ; menu
|
||||
|
||||
; VSYNC TORTURE (LOCK MECHANISM)
|
||||
; Eventuellement ajouter des SS sur les 3 tests desync crtc 0
|
||||
key_output 'R'
|
||||
wait 22000000 ; 2ea
|
||||
key_output ' '
|
||||
wait 1000000 ; menu
|
||||
|
||||
; VSYNC/CSYNC GATE ARRAY
|
||||
key_output 'T'
|
||||
wait 800000 ; 2eb
|
||||
key_output ' '
|
||||
wait 2000000 ; 2ec
|
||||
key_output ' '
|
||||
wait 2000000 ; 2ed
|
||||
key_output ' '
|
||||
wait 2000000 ; 2ee
|
||||
key_output ' '
|
||||
wait 2000000 ; 2ef
|
||||
key_output ' '
|
||||
wait 2000000 ; 2ef
|
||||
key_output ' '
|
||||
wait 2000000 ; 2f0
|
||||
key_output ' '
|
||||
wait 2000000 ; 2f1
|
||||
key_output ' '
|
||||
wait 2000000 ; 2f2
|
||||
key_output ' '
|
||||
wait 2000000 ; 2f3
|
||||
key_output ' '
|
||||
wait 2000000 ; 2f4
|
||||
key_output ' '
|
||||
wait 2000000 ; 2f5
|
||||
key_output ' '
|
||||
wait 2000000 ; 2fb
|
||||
key_output ' '
|
||||
wait 8000000 ; 2fc 2fd
|
||||
key_output ' '
|
||||
wait 4000000 ; 2fe
|
||||
key_output ' '
|
||||
wait 4000000 ; 2ff
|
||||
key_output ' '
|
||||
wait 4000000 ; 300
|
||||
key_output ' '
|
||||
wait 4000000 ; 301
|
||||
key_output ' '
|
||||
wait 1000000
|
||||
key_delay 90000
|
||||
key_output ' '
|
||||
key_output ' '
|
||||
wait 1000000 ; menu
|
||||
|
||||
; HSYNC CSYNC GATE ARRAY
|
||||
key_output 'H'
|
||||
wait 1000000 ; 306
|
||||
key_output ' '
|
||||
wait 1200000 ; 307
|
||||
key_output ' '
|
||||
wait 1200000 ; 308
|
||||
key_output ' '
|
||||
wait 1200000 ; 309
|
||||
key_output ' '
|
||||
wait 1200000 ; 30A
|
||||
key_output ' '
|
||||
wait 1200000 ; 30B
|
||||
key_output ' '
|
||||
wait 1200000 ; 30C
|
||||
key_output ' '
|
||||
wait 1200000 ; 30D
|
||||
key_output ' '
|
||||
wait 1200000 ; 30E
|
||||
key_output ' '
|
||||
wait 1200000 ; 30F
|
||||
key_output ' '
|
||||
wait 1000000 ; menu
|
||||
|
||||
; CSYNC4 VS 2XCSYNC2
|
||||
;
|
||||
key_output '1'
|
||||
wait 4600000 ; 310
|
||||
wait 4000000 ; 311
|
||||
wait 8000000
|
||||
key_output ' '
|
||||
wait 1000000 ; menu
|
||||
|
||||
; R2JIT >> NO CSYNC UPD
|
||||
;
|
||||
key_output '2'
|
||||
wait 4500000 ; 312
|
||||
wait 4000000 ; 313
|
||||
wait 4000000
|
||||
key_output ' '
|
||||
wait 10000000
|
||||
key_output ' '
|
||||
wait 1000000
|
||||
|
||||
; 2 CSYNC RELATIVE;
|
||||
key_output '3'
|
||||
wait 1000000
|
||||
key_output ' '
|
||||
wait 1000000
|
||||
key_output ' '
|
||||
wait 1000000
|
||||
key_output ' '
|
||||
wait 1000000
|
||||
key_output ' '
|
||||
wait 1000000
|
||||
key_output ' '
|
||||
wait 1000000
|
||||
|
||||
; CSYNC MULTIPLES
|
||||
key_output '4'
|
||||
wait 1000000 ; 37f
|
||||
key_output ' '
|
||||
wait 3000000 ; 380
|
||||
key_output ' '
|
||||
wait 1000000
|
||||
|
||||
; Hardware scroll 1 pixel mode 1/0 (no buffering)
|
||||
key_output '6'
|
||||
wait 10000000 ; 381
|
||||
key_output ' '
|
||||
wait 10000000 ; 382
|
||||
key_output ' '
|
||||
wait 1000000
|
||||
|
||||
;
|
||||
; R2 oscillation story;
|
||||
key_output '7'
|
||||
wait 10000000 ; 383
|
||||
key_output ' '
|
||||
wait 4000000 ; 384
|
||||
key_output ' '
|
||||
wait 4000000 ; 385
|
||||
key_output ' '
|
||||
wait 4000000 ; 386
|
||||
key_output ' '
|
||||
wait 4000000 ; 387
|
||||
key_output ' '
|
||||
wait 4000000 ; 388
|
||||
key_output ' '
|
||||
wait 4000000 ; 389
|
||||
key_output ' '
|
||||
wait 4000000 ; 38a
|
||||
key_output ' '
|
||||
wait 4000000 ; 38b
|
||||
key_output ' '
|
||||
wait 4000000 ; 38c
|
||||
key_output ' '
|
||||
wait 1000000 ; menu
|
||||
;
|
||||
; no hsync for xx line
|
||||
key_output '8'
|
||||
wait 3000000 ; 38d
|
||||
key_output ' '
|
||||
wait 3000000 ; 38e
|
||||
key_output ' '
|
||||
wait 3000000 ; 38f
|
||||
key_output ' '
|
||||
wait 3000000 ; 390
|
||||
key_output ' '
|
||||
wait 3000000 ; 391
|
||||
key_output ' '
|
||||
wait 3000000 ; 392
|
||||
key_output ' '
|
||||
|
||||
; rfd round 2
|
||||
;
|
||||
key_output '9'
|
||||
wait 2000000 ; 393, 3f7
|
||||
key_output ' '
|
||||
wait 2000000 ; 394, 3f8
|
||||
key_output ' '
|
||||
wait 2000000 ; 395, 3f9
|
||||
key_output ' '
|
||||
wait 2000000 ; 396
|
||||
key_output ' '
|
||||
wait 2000000 ; 397
|
||||
key_output ' '
|
||||
wait 2000000 ; 398
|
||||
key_output ' '
|
||||
wait 2000000 ; 399
|
||||
key_output ' '
|
||||
wait 2000000 ; 39a
|
||||
key_output ' '
|
||||
wait 2000000 ; 39b
|
||||
key_output ' '
|
||||
wait 1000000 ; menu
|
||||
|
||||
; ofs upd in add managment
|
||||
;
|
||||
key_output 'E'
|
||||
wait 1000000 ; 3ae
|
||||
key_output ' '
|
||||
wait 1000000 ; 3af
|
||||
key_output ' '
|
||||
wait 1000000 ; 3b4
|
||||
key_output ' '
|
||||
wait 1000000 ; 3b5
|
||||
key_output ' '
|
||||
wait 1000000 ; 3b6
|
||||
key_output ' '
|
||||
wait 1000000 ; 3b7
|
||||
key_output ' '
|
||||
wait 1000000 ; menu
|
||||
|
||||
csl_load 'SHAKE26D-2'
|
199
OSBindings/Mac/Clock SignalTests/Shaker/MODULE D/SHAKE26D-2.CSL
Normal file
199
OSBindings/Mac/Clock SignalTests/Shaker/MODULE D/SHAKE26D-2.CSL
Normal file
@ -0,0 +1,199 @@
|
||||
;
|
||||
; Fichier de script CSL
|
||||
; Execution du module SHAKE26D du DSK SHAKER26.DSK en CRTC 2
|
||||
; Le module genere des instructions au format SSM
|
||||
;
|
||||
csl_version 1.0
|
||||
crtc_select 2
|
||||
reset
|
||||
wait 3000000
|
||||
disk_insert 'shaker26.dsk'
|
||||
key_delay 70000 70000 400000
|
||||
key_output 'RUN"SHAKE26D"\(RET)'
|
||||
wait 10000000
|
||||
;
|
||||
; SHAKER KILLER 2
|
||||
key_output 'I'
|
||||
wait 2000000 ; 2e3 ecran bleu
|
||||
key_output ' '
|
||||
wait 2000000 ; 2e4
|
||||
key_output ' '
|
||||
wait 2000000 ; 2e5
|
||||
key_output ' '
|
||||
wait 2000000 ; 2e6
|
||||
key_output ' '
|
||||
wait 2000000 ; 2e7
|
||||
key_output ' '
|
||||
wait 2000000 ; 2e8
|
||||
key_output ' '
|
||||
wait 2000000 ; 2e9
|
||||
key_output ' '
|
||||
wait 1000000 ; menu
|
||||
|
||||
; VSYNC TORTURE (LOCK MECHANISM)
|
||||
; Eventuellement ajouter des SS sur les 3 tests desync crtc 0
|
||||
key_output 'R'
|
||||
wait 22000000 ; 2ea
|
||||
key_output ' '
|
||||
wait 1000000 ; menu
|
||||
|
||||
; VSYNC/CSYNC GATE ARRAY
|
||||
key_output 'T'
|
||||
wait 800000 ; 2eb
|
||||
key_output ' '
|
||||
wait 2000000 ; 2ec
|
||||
key_output ' '
|
||||
wait 2000000 ; 2ed
|
||||
key_output ' '
|
||||
wait 2000000 ; 2ee
|
||||
key_output ' '
|
||||
wait 2000000 ; 2ef
|
||||
key_output ' '
|
||||
wait 2000000 ; 2ef
|
||||
key_output ' '
|
||||
wait 2000000 ; 2f0
|
||||
key_output ' '
|
||||
wait 2000000 ; 2f1
|
||||
key_output ' '
|
||||
wait 2000000 ; 2f2
|
||||
key_output ' '
|
||||
wait 2000000 ; 2f3
|
||||
key_output ' '
|
||||
wait 2000000 ; 2f4
|
||||
key_output ' '
|
||||
wait 2000000 ; 2f5
|
||||
key_output ' '
|
||||
wait 2000000 ; 2fb
|
||||
key_output ' '
|
||||
wait 8000000 ; 2fc 2fd
|
||||
key_output ' '
|
||||
wait 4000000 ; 2fe
|
||||
key_output ' '
|
||||
wait 4000000 ; 2ff
|
||||
key_output ' '
|
||||
wait 4000000 ; 300
|
||||
key_output ' '
|
||||
wait 4000000 ; 301
|
||||
key_output ' '
|
||||
wait 1000000
|
||||
key_delay 90000
|
||||
key_output ' '
|
||||
key_output ' '
|
||||
wait 1000000 ; menu
|
||||
|
||||
; HSYNC CSYNC GATE ARRAY
|
||||
key_output 'H'
|
||||
wait 1000000 ; 306
|
||||
key_output ' '
|
||||
wait 1200000 ; 307
|
||||
key_output ' '
|
||||
wait 1200000 ; 308
|
||||
key_output ' '
|
||||
wait 1200000 ; 309
|
||||
key_output ' '
|
||||
wait 1200000 ; 30A
|
||||
key_output ' '
|
||||
wait 1200000 ; 30B
|
||||
key_output ' '
|
||||
wait 1200000 ; 30C
|
||||
key_output ' '
|
||||
wait 1200000 ; 30D
|
||||
key_output ' '
|
||||
wait 1200000 ; 30E
|
||||
key_output ' '
|
||||
wait 1200000 ; 30F
|
||||
key_output ' '
|
||||
wait 1000000 ; menu
|
||||
|
||||
; CSYNC4 VS 2XCSYNC2
|
||||
;
|
||||
key_output '1'
|
||||
wait 4600000 ; 310
|
||||
wait 4000000 ; 311
|
||||
wait 8000000
|
||||
key_output ' '
|
||||
wait 1000000 ; menu
|
||||
|
||||
; R2JIT >> NO CSYNC UPD
|
||||
;
|
||||
key_output '2'
|
||||
wait 4500000 ; 312
|
||||
wait 4000000 ; 313
|
||||
wait 4000000
|
||||
key_output ' '
|
||||
wait 10000000
|
||||
key_output ' '
|
||||
wait 1000000
|
||||
|
||||
; 2 CSYNC RELATIVE;
|
||||
key_output '3'
|
||||
wait 1000000
|
||||
key_output ' '
|
||||
wait 1000000
|
||||
key_output ' '
|
||||
wait 1000000
|
||||
key_output ' '
|
||||
wait 1000000
|
||||
key_output ' '
|
||||
wait 1000000
|
||||
key_output ' '
|
||||
wait 1000000
|
||||
|
||||
; CSYNC MULTIPLES
|
||||
key_output '4'
|
||||
wait 1000000 ; 37f
|
||||
key_output ' '
|
||||
wait 3000000 ; 380
|
||||
key_output ' '
|
||||
wait 1000000
|
||||
|
||||
; Hardware scroll 1 pixel mode 1/0 (no buffering)
|
||||
key_output '6'
|
||||
wait 10000000 ; 381
|
||||
key_output ' '
|
||||
wait 10000000 ; 382
|
||||
key_output ' '
|
||||
wait 1000000
|
||||
;
|
||||
; R2 oscillation story;
|
||||
key_output '7'
|
||||
wait 10000000 ; 383
|
||||
key_output ' '
|
||||
wait 4000000 ; 384
|
||||
key_output ' '
|
||||
wait 4000000 ; 385
|
||||
key_output ' '
|
||||
wait 4000000 ; 386
|
||||
key_output ' '
|
||||
wait 4000000 ; 387
|
||||
key_output ' '
|
||||
wait 4000000 ; 388
|
||||
key_output ' '
|
||||
wait 4000000 ; 389
|
||||
key_output ' '
|
||||
wait 4000000 ; 38a
|
||||
key_output ' '
|
||||
wait 4000000 ; 38b
|
||||
key_output ' '
|
||||
wait 4000000 ; 38c
|
||||
key_output ' '
|
||||
wait 1000000 ; menu
|
||||
;
|
||||
; no hsync for xx line
|
||||
key_output '8'
|
||||
wait 3000000 ; 38d
|
||||
key_output ' '
|
||||
wait 3000000 ; 38e
|
||||
key_output ' '
|
||||
wait 3000000 ; 38f
|
||||
key_output ' '
|
||||
wait 3000000 ; 390
|
||||
key_output ' '
|
||||
wait 3000000 ; 391
|
||||
key_output ' '
|
||||
wait 3000000 ; 392
|
||||
key_output ' '
|
||||
wait 1000000 ; menu
|
||||
|
||||
|
||||
csl_load 'SHAKE26D-4'
|
285
OSBindings/Mac/Clock SignalTests/Shaker/MODULE D/SHAKE26D-3.CSL
Normal file
285
OSBindings/Mac/Clock SignalTests/Shaker/MODULE D/SHAKE26D-3.CSL
Normal file
@ -0,0 +1,285 @@
|
||||
;
|
||||
; Fichier de script CSL
|
||||
; Execution du module SHAKE26D du DSK SHAKER26.DSK en CRTC 4
|
||||
; Le module genere des instructions au format SSM
|
||||
;
|
||||
csl_version 1.0
|
||||
crtc_select 3
|
||||
reset
|
||||
wait 3000000
|
||||
disk_insert 'shaker26.dsk'
|
||||
key_delay 70000 70000 400000
|
||||
key_output 'RUN"SHAKE26D"\(RET)'
|
||||
wait 10000000
|
||||
;
|
||||
; SHAKER KILLER 2
|
||||
key_output 'I'
|
||||
wait 2000000 ; 2e3 ecran bleu
|
||||
key_output ' '
|
||||
wait 2000000 ; 2e4
|
||||
key_output ' '
|
||||
wait 2000000 ; 2e5
|
||||
key_output ' '
|
||||
wait 2000000 ; 2e6
|
||||
key_output ' '
|
||||
wait 2000000 ; 2e7
|
||||
key_output ' '
|
||||
wait 2000000 ; 2e8
|
||||
key_output ' '
|
||||
wait 2000000 ; 2e9
|
||||
key_output ' '
|
||||
wait 1000000 ; menu
|
||||
|
||||
; VSYNC TORTURE (LOCK MECHANISM)
|
||||
; Eventuellement ajouter des SS sur les 3 tests desync crtc 0
|
||||
key_output 'R'
|
||||
wait 22000000 ; 2ea
|
||||
key_output ' '
|
||||
wait 1000000 ; menu
|
||||
|
||||
; VSYNC/CSYNC GATE ARRAY
|
||||
key_output 'T'
|
||||
wait 800000 ; 2eb
|
||||
key_output ' '
|
||||
wait 2000000 ; 2ec
|
||||
key_output ' '
|
||||
wait 2000000 ; 2ed
|
||||
key_output ' '
|
||||
wait 2000000 ; 2ee
|
||||
key_output ' '
|
||||
wait 2000000 ; 2ef
|
||||
key_output ' '
|
||||
wait 2000000 ; 2ef
|
||||
key_output ' '
|
||||
wait 2000000 ; 2f0
|
||||
key_output ' '
|
||||
wait 2000000 ; 2f1
|
||||
key_output ' '
|
||||
wait 2000000 ; 2f2
|
||||
key_output ' '
|
||||
wait 2000000 ; 2f3
|
||||
key_output ' '
|
||||
wait 2000000 ; 2f4
|
||||
key_output ' '
|
||||
wait 2000000 ; 2f5
|
||||
key_output ' '
|
||||
wait 2000000 ; 2fb
|
||||
key_output ' '
|
||||
wait 8000000 ; 2fc 2fd
|
||||
key_output ' '
|
||||
wait 4000000 ; 2fe
|
||||
key_output ' '
|
||||
wait 4000000 ; 2ff
|
||||
key_output ' '
|
||||
wait 4000000 ; 300
|
||||
key_output ' '
|
||||
wait 4000000 ; 301
|
||||
key_output ' '
|
||||
wait 1000000
|
||||
key_delay 90000
|
||||
key_output ' '
|
||||
key_output ' '
|
||||
wait 1000000 ; menu
|
||||
|
||||
; HSYNC CSYNC GATE ARRAY
|
||||
key_output 'H'
|
||||
wait 1000000 ; 306
|
||||
key_output ' '
|
||||
wait 1200000 ; 307
|
||||
key_output ' '
|
||||
wait 1200000 ; 308
|
||||
key_output ' '
|
||||
wait 1200000 ; 309
|
||||
key_output ' '
|
||||
wait 1200000 ; 30A
|
||||
key_output ' '
|
||||
wait 1200000 ; 30B
|
||||
key_output ' '
|
||||
wait 1200000 ; 30C
|
||||
key_output ' '
|
||||
wait 1200000 ; 30D
|
||||
key_output ' '
|
||||
wait 1200000 ; 30E
|
||||
key_output ' '
|
||||
wait 1200000 ; 30F
|
||||
key_output ' '
|
||||
wait 1000000 ; menu
|
||||
|
||||
; CSYNC4 VS 2XCSYNC2
|
||||
;
|
||||
key_output '1'
|
||||
wait 4600000 ; 310
|
||||
wait 4000000 ; 311
|
||||
wait 8000000
|
||||
key_output ' '
|
||||
wait 1000000 ; menu
|
||||
|
||||
; R2JIT >> NO CSYNC UPD
|
||||
;
|
||||
key_output '2'
|
||||
wait 4500000 ; 312
|
||||
wait 4000000 ; 313
|
||||
wait 4000000
|
||||
key_output ' '
|
||||
wait 10000000
|
||||
key_output ' '
|
||||
wait 1000000
|
||||
|
||||
; 2 CSYNC RELATIVE;
|
||||
key_output '3'
|
||||
wait 1000000
|
||||
key_output ' '
|
||||
wait 1000000
|
||||
key_output ' '
|
||||
wait 1000000
|
||||
key_output ' '
|
||||
wait 1000000
|
||||
key_output ' '
|
||||
wait 1000000
|
||||
key_output ' '
|
||||
wait 1000000
|
||||
|
||||
; CSYNC MULTIPLES
|
||||
key_output '4'
|
||||
wait 1000000 ; 37f
|
||||
key_output ' '
|
||||
wait 3000000 ; 380
|
||||
key_output ' '
|
||||
wait 1000000
|
||||
|
||||
; Hardware scroll 1 pixel mode 1/0 (no buffering)
|
||||
key_output '6'
|
||||
wait 10000000 ; 381
|
||||
key_output ' '
|
||||
wait 10000000 ; 382
|
||||
key_output ' '
|
||||
wait 1000000
|
||||
|
||||
;
|
||||
; R2 oscillation story;
|
||||
key_output '7'
|
||||
wait 10000000 ; 383
|
||||
key_output ' '
|
||||
wait 4000000 ; 384
|
||||
key_output ' '
|
||||
wait 4000000 ; 385
|
||||
key_output ' '
|
||||
wait 4000000 ; 386
|
||||
key_output ' '
|
||||
wait 4000000 ; 387
|
||||
key_output ' '
|
||||
wait 4000000 ; 388
|
||||
key_output ' '
|
||||
wait 4000000 ; 389
|
||||
key_output ' '
|
||||
wait 4000000 ; 38a
|
||||
key_output ' '
|
||||
wait 4000000 ; 38b
|
||||
key_output ' '
|
||||
wait 4000000 ; 38c
|
||||
key_output ' '
|
||||
wait 1000000 ; menu
|
||||
;
|
||||
; no hsync for xx line
|
||||
key_output '8'
|
||||
wait 3000000 ; 38d
|
||||
key_output ' '
|
||||
wait 3000000 ; 38e
|
||||
key_output ' '
|
||||
wait 3000000 ; 38f
|
||||
key_output ' '
|
||||
wait 3000000 ; 390
|
||||
key_output ' '
|
||||
wait 3000000 ; 391
|
||||
key_output ' '
|
||||
wait 3000000 ; 392
|
||||
key_output ' '
|
||||
wait 1000000 ; menu
|
||||
|
||||
;
|
||||
; CRTC 3/4 STATUS
|
||||
key_output 'U'
|
||||
wait 10000000 ; 3bc
|
||||
key_output ' '
|
||||
wait 10000000 ; 3bd
|
||||
key_output ' '
|
||||
wait 10000000 ; 3be
|
||||
key_output ' '
|
||||
wait 15000000 ; 3bf
|
||||
key_output ' '
|
||||
wait 45000000 ; 3c0
|
||||
key_output ' '
|
||||
wait 10000000 ; 3c1
|
||||
key_output ' '
|
||||
wait 4000000 ; 3c2
|
||||
key_output ' '
|
||||
wait 4000000 ; 3c3
|
||||
key_output ' '
|
||||
wait 4000000 ; 3c4
|
||||
key_output ' '
|
||||
wait 4000000 ; 3c5
|
||||
key_output ' '
|
||||
wait 4000000 ; 3c6
|
||||
key_output ' '
|
||||
wait 4000000 ; 3c7
|
||||
key_output ' '
|
||||
wait 4000000 ; 3c8
|
||||
key_output ' '
|
||||
wait 4000000 ; 3c9
|
||||
key_output ' '
|
||||
wait 4000000 ; 3ca
|
||||
key_output ' '
|
||||
wait 4000000 ; 3cb
|
||||
key_output ' '
|
||||
wait 4000000 ; 3cc
|
||||
key_output ' '
|
||||
wait 4000000 ; 3cd
|
||||
key_output ' '
|
||||
wait 4000000 ; 3ce
|
||||
key_output ' '
|
||||
wait 4000000 ; 3cf
|
||||
key_output ' '
|
||||
wait 4000000 ; 3d0
|
||||
key_output ' '
|
||||
wait 4000000 ; 3d1
|
||||
key_output ' '
|
||||
wait 4000000 ; 3d2
|
||||
key_output ' '
|
||||
wait 4000000 ; 3d3
|
||||
key_output ' '
|
||||
wait 4000000 ; 3d4
|
||||
key_output ' '
|
||||
wait 4000000 ; 3d5
|
||||
key_output ' '
|
||||
wait 4000000 ; 3d6
|
||||
key_output ' '
|
||||
wait 4000000 ; 3d7
|
||||
key_output ' '
|
||||
wait 4000000 ; 3d8
|
||||
key_output ' '
|
||||
wait 4000000 ; 3d9
|
||||
key_output ' '
|
||||
wait 4000000 ; 3da
|
||||
key_output ' '
|
||||
wait 4000000 ; 3db
|
||||
key_output ' '
|
||||
wait 4000000 ; 3dc
|
||||
key_output ' '
|
||||
wait 4000000 ; 3dd
|
||||
key_output ' '
|
||||
wait 4000000 ; 3de
|
||||
key_output ' '
|
||||
wait 4000000 ; 3df
|
||||
key_output ' '
|
||||
wait 4000000 ; 3e0
|
||||
key_output ' '
|
||||
wait 4000000 ; 3e1
|
||||
key_output ' '
|
||||
wait 4000000 ; 3e2
|
||||
key_output ' '
|
||||
wait 4000000 ; 3e3
|
||||
key_output ' '
|
||||
wait 4000000 ; 3e4
|
||||
key_output ' '
|
||||
wait 4000000 ; menu
|
||||
reset
|
286
OSBindings/Mac/Clock SignalTests/Shaker/MODULE D/SHAKE26D-4.CSL
Normal file
286
OSBindings/Mac/Clock SignalTests/Shaker/MODULE D/SHAKE26D-4.CSL
Normal file
@ -0,0 +1,286 @@
|
||||
;
|
||||
; Fichier de script CSL
|
||||
; Execution du module SHAKE26D du DSK SHAKER26.DSK en CRTC 4
|
||||
; Le module genere des instructions au format SSM
|
||||
;
|
||||
csl_version 1.0
|
||||
crtc_select 4
|
||||
reset
|
||||
wait 3000000
|
||||
disk_insert 'shaker26.dsk'
|
||||
key_delay 70000 70000 400000
|
||||
key_output 'RUN"SHAKE26D"\(RET)'
|
||||
wait 10000000
|
||||
;
|
||||
; SHAKER KILLER 2
|
||||
key_output 'I'
|
||||
wait 2000000 ; 2e3 ecran bleu
|
||||
key_output ' '
|
||||
wait 2000000 ; 2e4
|
||||
key_output ' '
|
||||
wait 2000000 ; 2e5
|
||||
key_output ' '
|
||||
wait 2000000 ; 2e6
|
||||
key_output ' '
|
||||
wait 2000000 ; 2e7
|
||||
key_output ' '
|
||||
wait 2000000 ; 2e8
|
||||
key_output ' '
|
||||
wait 2000000 ; 2e9
|
||||
key_output ' '
|
||||
wait 1000000 ; menu
|
||||
|
||||
; VSYNC TORTURE (LOCK MECHANISM)
|
||||
; Eventuellement ajouter des SS sur les 3 tests desync crtc 0
|
||||
key_output 'R'
|
||||
wait 22000000 ; 2ea
|
||||
key_output ' '
|
||||
wait 1000000 ; menu
|
||||
|
||||
; VSYNC/CSYNC GATE ARRAY
|
||||
key_output 'T'
|
||||
wait 800000 ; 2eb
|
||||
key_output ' '
|
||||
wait 2000000 ; 2ec
|
||||
key_output ' '
|
||||
wait 2000000 ; 2ed
|
||||
key_output ' '
|
||||
wait 2000000 ; 2ee
|
||||
key_output ' '
|
||||
wait 2000000 ; 2ef
|
||||
key_output ' '
|
||||
wait 2000000 ; 2ef
|
||||
key_output ' '
|
||||
wait 2000000 ; 2f0
|
||||
key_output ' '
|
||||
wait 2000000 ; 2f1
|
||||
key_output ' '
|
||||
wait 2000000 ; 2f2
|
||||
key_output ' '
|
||||
wait 2000000 ; 2f3
|
||||
key_output ' '
|
||||
wait 2000000 ; 2f4
|
||||
key_output ' '
|
||||
wait 2000000 ; 2f5
|
||||
key_output ' '
|
||||
wait 2000000 ; 2fb
|
||||
key_output ' '
|
||||
wait 8000000 ; 2fc 2fd
|
||||
key_output ' '
|
||||
wait 4000000 ; 2fe
|
||||
key_output ' '
|
||||
wait 4000000 ; 2ff
|
||||
key_output ' '
|
||||
wait 4000000 ; 300
|
||||
key_output ' '
|
||||
wait 4000000 ; 301
|
||||
key_output ' '
|
||||
wait 1000000
|
||||
key_delay 90000
|
||||
key_output ' '
|
||||
key_output ' '
|
||||
wait 1000000 ; menu
|
||||
|
||||
; HSYNC CSYNC GATE ARRAY
|
||||
key_output 'H'
|
||||
wait 1000000 ; 306
|
||||
key_output ' '
|
||||
wait 1200000 ; 307
|
||||
key_output ' '
|
||||
wait 1200000 ; 308
|
||||
key_output ' '
|
||||
wait 1200000 ; 309
|
||||
key_output ' '
|
||||
wait 1200000 ; 30A
|
||||
key_output ' '
|
||||
wait 1200000 ; 30B
|
||||
key_output ' '
|
||||
wait 1200000 ; 30C
|
||||
key_output ' '
|
||||
wait 1200000 ; 30D
|
||||
key_output ' '
|
||||
wait 1200000 ; 30E
|
||||
key_output ' '
|
||||
wait 1200000 ; 30F
|
||||
key_output ' '
|
||||
wait 1000000 ; menu
|
||||
|
||||
; CSYNC4 VS 2XCSYNC2
|
||||
;
|
||||
key_output '1'
|
||||
wait 4600000 ; 310
|
||||
wait 4000000 ; 311
|
||||
wait 8000000
|
||||
key_output ' '
|
||||
wait 1000000 ; menu
|
||||
|
||||
; R2JIT >> NO CSYNC UPD
|
||||
;
|
||||
key_output '2'
|
||||
wait 4500000 ; 312
|
||||
wait 4000000 ; 313
|
||||
wait 4000000
|
||||
key_output ' '
|
||||
wait 10000000
|
||||
key_output ' '
|
||||
wait 1000000
|
||||
|
||||
; 2 CSYNC RELATIVE;
|
||||
key_output '3'
|
||||
wait 1000000
|
||||
key_output ' '
|
||||
wait 1000000
|
||||
key_output ' '
|
||||
wait 1000000
|
||||
key_output ' '
|
||||
wait 1000000
|
||||
key_output ' '
|
||||
wait 1000000
|
||||
key_output ' '
|
||||
wait 1000000
|
||||
|
||||
; CSYNC MULTIPLES
|
||||
key_output '4'
|
||||
wait 1000000 ; 37f
|
||||
key_output ' '
|
||||
wait 3000000 ; 380
|
||||
key_output ' '
|
||||
wait 1000000
|
||||
|
||||
; Hardware scroll 1 pixel mode 1/0 (no buffering)
|
||||
key_output '6'
|
||||
wait 10000000 ; 381
|
||||
key_output ' '
|
||||
wait 10000000 ; 382
|
||||
key_output ' '
|
||||
wait 1000000
|
||||
|
||||
;
|
||||
; R2 oscillation story;
|
||||
key_output '7'
|
||||
wait 10000000 ; 383
|
||||
key_output ' '
|
||||
wait 4000000 ; 384
|
||||
key_output ' '
|
||||
wait 4000000 ; 385
|
||||
key_output ' '
|
||||
wait 4000000 ; 386
|
||||
key_output ' '
|
||||
wait 4000000 ; 387
|
||||
key_output ' '
|
||||
wait 4000000 ; 388
|
||||
key_output ' '
|
||||
wait 4000000 ; 389
|
||||
key_output ' '
|
||||
wait 4000000 ; 38a
|
||||
key_output ' '
|
||||
wait 4000000 ; 38b
|
||||
key_output ' '
|
||||
wait 4000000 ; 38c
|
||||
key_output ' '
|
||||
wait 1000000 ; menu
|
||||
;
|
||||
; no hsync for xx line
|
||||
key_output '8'
|
||||
wait 3000000 ; 38d
|
||||
key_output ' '
|
||||
wait 3000000 ; 38e
|
||||
key_output ' '
|
||||
wait 3000000 ; 38f
|
||||
key_output ' '
|
||||
wait 3000000 ; 390
|
||||
key_output ' '
|
||||
wait 3000000 ; 391
|
||||
key_output ' '
|
||||
wait 3000000 ; 392
|
||||
key_output ' '
|
||||
wait 1000000 ; menu
|
||||
|
||||
;
|
||||
; CRTC 3/4 STATUS
|
||||
key_output 'U'
|
||||
wait 10000000 ; 3bc
|
||||
key_output ' '
|
||||
wait 10000000 ; 3bd
|
||||
key_output ' '
|
||||
wait 10000000 ; 3be
|
||||
key_output ' '
|
||||
wait 15000000 ; 3bf
|
||||
key_output ' '
|
||||
wait 45000000 ; 3c0
|
||||
key_output ' '
|
||||
wait 10000000 ; 3c1
|
||||
key_output ' '
|
||||
wait 4000000 ; 3c2
|
||||
key_output ' '
|
||||
wait 4000000 ; 3c3
|
||||
key_output ' '
|
||||
wait 4000000 ; 3c4
|
||||
key_output ' '
|
||||
wait 4000000 ; 3c5
|
||||
key_output ' '
|
||||
wait 4000000 ; 3c6
|
||||
key_output ' '
|
||||
wait 4000000 ; 3c7
|
||||
key_output ' '
|
||||
wait 4000000 ; 3c8
|
||||
key_output ' '
|
||||
wait 4000000 ; 3c9
|
||||
key_output ' '
|
||||
wait 4000000 ; 3ca
|
||||
key_output ' '
|
||||
wait 4000000 ; 3cb
|
||||
key_output ' '
|
||||
wait 4000000 ; 3cc
|
||||
key_output ' '
|
||||
wait 4000000 ; 3cd
|
||||
key_output ' '
|
||||
wait 4000000 ; 3ce
|
||||
key_output ' '
|
||||
wait 4000000 ; 3cf
|
||||
key_output ' '
|
||||
wait 4000000 ; 3d0
|
||||
key_output ' '
|
||||
wait 4000000 ; 3d1
|
||||
key_output ' '
|
||||
wait 4000000 ; 3d2
|
||||
key_output ' '
|
||||
wait 4000000 ; 3d3
|
||||
key_output ' '
|
||||
wait 4000000 ; 3d4
|
||||
key_output ' '
|
||||
wait 4000000 ; 3d5
|
||||
key_output ' '
|
||||
wait 4000000 ; 3d6
|
||||
key_output ' '
|
||||
wait 4000000 ; 3d7
|
||||
key_output ' '
|
||||
wait 4000000 ; 3d8
|
||||
key_output ' '
|
||||
wait 4000000 ; 3d9
|
||||
key_output ' '
|
||||
wait 4000000 ; 3da
|
||||
key_output ' '
|
||||
wait 4000000 ; 3db
|
||||
key_output ' '
|
||||
wait 4000000 ; 3dc
|
||||
key_output ' '
|
||||
wait 4000000 ; 3dd
|
||||
key_output ' '
|
||||
wait 4000000 ; 3de
|
||||
key_output ' '
|
||||
wait 4000000 ; 3df
|
||||
key_output ' '
|
||||
wait 4000000 ; 3e0
|
||||
key_output ' '
|
||||
wait 4000000 ; 3e1
|
||||
key_output ' '
|
||||
wait 4000000 ; 3e2
|
||||
key_output ' '
|
||||
wait 4000000 ; 3e3
|
||||
key_output ' '
|
||||
wait 4000000 ; 3e4
|
||||
key_output ' '
|
||||
wait 4000000 ; menu
|
||||
|
||||
csl_load 'SHAKE26D-3'
|
@ -0,0 +1,37 @@
|
||||
;
|
||||
; Fichier de script CSL
|
||||
; Execution du module SHAKE26E du DSK SHAKER26.DSK en CRTC 0
|
||||
; Le module genere des instructions au format SSM
|
||||
;
|
||||
csl_version 1.0
|
||||
crtc_select 0
|
||||
reset
|
||||
wait 3000000
|
||||
disk_insert 'shaker26.dsk'
|
||||
key_delay 70000 70000 400000
|
||||
key_output 'RUN"SHAKE26E"\(RET)'
|
||||
wait 10000000
|
||||
;
|
||||
; R5 STORIES 2ND ROUND
|
||||
key_output '1'
|
||||
wait 2000000 ; 3fa
|
||||
key_output ' '
|
||||
wait 2000000 ; 3fb
|
||||
key_output ' '
|
||||
wait 2000000 ; 3fc
|
||||
key_output ' '
|
||||
wait 2000000 ; 3fd
|
||||
key_output ' '
|
||||
;
|
||||
;
|
||||
; CRTC 0 : C4/C9 COUNTER LOGIC
|
||||
key_output '3'
|
||||
wait 2000000 ; 403
|
||||
key_output ' '
|
||||
wait 2000000 ; 404
|
||||
key_output ' '
|
||||
wait 2000000 ; 405
|
||||
key_output ' '
|
||||
;
|
||||
;
|
||||
csl_load 'SHAKE26E-1'
|
@ -0,0 +1,38 @@
|
||||
;
|
||||
; Fichier de script CSL
|
||||
; Execution du module SHAKE26E du DSK SHAKER26.DSK en CRTC 1
|
||||
; Le module genere des instructions au format SSM
|
||||
;
|
||||
csl_version 1.0
|
||||
crtc_select 1
|
||||
reset
|
||||
wait 3000000
|
||||
disk_insert 'shaker26.dsk'
|
||||
key_delay 70000 70000 400000
|
||||
key_output 'RUN"SHAKE26E"\(RET)'
|
||||
wait 10000000
|
||||
;
|
||||
; R5 STORIES 2ND ROUND
|
||||
key_output '1'
|
||||
wait 2000000 ; 3fa
|
||||
key_output ' '
|
||||
wait 2000000 ; 3fb
|
||||
key_output ' '
|
||||
wait 2000000 ; 3fc
|
||||
key_output ' '
|
||||
wait 2000000 ; 3fd
|
||||
key_output ' '
|
||||
;
|
||||
;
|
||||
; CRTC 1 : VMA TRT C4=R4=0 ON ADJ LINE
|
||||
;
|
||||
key_output '2'
|
||||
wait 2000000 ; 400
|
||||
key_output ' '
|
||||
wait 2000000 ; 401
|
||||
key_output ' '
|
||||
wait 2000000 ; 402
|
||||
key_output ' '
|
||||
;
|
||||
;
|
||||
csl_load 'SHAKE26E-2'
|
@ -0,0 +1,28 @@
|
||||
;
|
||||
; Fichier de script CSL
|
||||
; Execution du module SHAKE26E du DSK SHAKER26.DSK en CRTC 2
|
||||
; Le module genere des instructions au format SSM
|
||||
;
|
||||
csl_version 1.0
|
||||
crtc_select 2
|
||||
reset
|
||||
wait 3000000
|
||||
disk_insert 'shaker26.dsk'
|
||||
key_delay 70000 70000 400000
|
||||
key_output 'RUN"SHAKE26E"\(RET)'
|
||||
wait 10000000
|
||||
;
|
||||
; R5 STORIES 2ND ROUND
|
||||
key_output '1'
|
||||
wait 2000000 ; 3fa
|
||||
key_output ' '
|
||||
wait 2000000 ; 3fb
|
||||
key_output ' '
|
||||
wait 2000000 ; 3fc
|
||||
key_output ' '
|
||||
wait 2000000 ; 3fd
|
||||
key_output ' '
|
||||
;
|
||||
;
|
||||
;
|
||||
csl_load 'SHAKE26E-4'
|
@ -0,0 +1,27 @@
|
||||
;
|
||||
; Fichier de script CSL
|
||||
; Execution du module SHAKE26E du DSK SHAKER26.DSK en CRTC 3
|
||||
; Le module genere des instructions au format SSM
|
||||
;
|
||||
csl_version 1.0
|
||||
crtc_select 3
|
||||
reset
|
||||
wait 3000000
|
||||
disk_insert 'shaker26.dsk'
|
||||
key_delay 70000 70000 400000
|
||||
key_output 'RUN"SHAKE26E"\(RET)'
|
||||
wait 10000000
|
||||
;
|
||||
; R5 STORIES 2ND ROUND
|
||||
key_output '1'
|
||||
wait 2000000 ; 3fa
|
||||
key_output ' '
|
||||
wait 2000000 ; 3fb
|
||||
key_output ' '
|
||||
wait 2000000 ; 3fc
|
||||
key_output ' '
|
||||
wait 2000000 ; 3fd
|
||||
key_output ' '
|
||||
;
|
||||
;
|
||||
;
|
@ -0,0 +1,28 @@
|
||||
;
|
||||
; Fichier de script CSL
|
||||
; Execution du module SHAKE26E du DSK SHAKER26.DSK en CRTC 4
|
||||
; Le module genere des instructions au format SSM
|
||||
;
|
||||
csl_version 1.0
|
||||
crtc_select 4
|
||||
reset
|
||||
wait 3000000
|
||||
disk_insert 'shaker26.dsk'
|
||||
key_delay 70000 70000 400000
|
||||
key_output 'RUN"SHAKE26E"\(RET)'
|
||||
wait 10000000
|
||||
;
|
||||
; R5 STORIES 2ND ROUND
|
||||
key_output '1'
|
||||
wait 2000000 ; 3fa
|
||||
key_output ' '
|
||||
wait 2000000 ; 3fb
|
||||
key_output ' '
|
||||
wait 2000000 ; 3fc
|
||||
key_output ' '
|
||||
wait 2000000 ; 3fd
|
||||
key_output ' '
|
||||
;
|
||||
;
|
||||
;
|
||||
csl_load 'SHAKE26E-3'
|
BIN
OSBindings/Mac/Clock SignalTests/Shaker/shaker26.dsk
Normal file
BIN
OSBindings/Mac/Clock SignalTests/Shaker/shaker26.dsk
Normal file
Binary file not shown.
377
Storage/Automation/CSL.cpp
Normal file
377
Storage/Automation/CSL.cpp
Normal file
@ -0,0 +1,377 @@
|
||||
//
|
||||
// CSL.cpp
|
||||
// Clock Signal
|
||||
//
|
||||
// Created by Thomas Harte on 12/06/2024.
|
||||
// Copyright © 2024 Thomas Harte. All rights reserved.
|
||||
//
|
||||
|
||||
#include "CSL.hpp"
|
||||
|
||||
#include <cctype>
|
||||
#include <fstream>
|
||||
#include <sstream>
|
||||
#include <unordered_map>
|
||||
#include <set>
|
||||
|
||||
#include "../../Machines/AmstradCPC/Keyboard.hpp"
|
||||
|
||||
using namespace Storage::Automation;
|
||||
|
||||
namespace {
|
||||
|
||||
bool append_typed(std::vector<Storage::Automation::CSL::KeyEvent> &down, std::vector<Storage::Automation::CSL::KeyEvent> &up, std::istringstream &stream) {
|
||||
const auto press = [&](uint16_t key) {
|
||||
CSL::KeyEvent event;
|
||||
event.key = key;
|
||||
event.down = true;
|
||||
down.push_back(event);
|
||||
event.down = false;
|
||||
up.push_back(event);
|
||||
};
|
||||
|
||||
const auto shift = [&](uint16_t key) {
|
||||
CSL::KeyEvent event;
|
||||
event.key = AmstradCPC::Key::KeyShift;
|
||||
event.down = true;
|
||||
down.push_back(event);
|
||||
press(key);
|
||||
event.down = false;
|
||||
up.push_back(event);
|
||||
};
|
||||
|
||||
const auto next = stream.get();
|
||||
if(stream.eof()) return false;
|
||||
|
||||
switch(next) {
|
||||
default: throw CSL::InvalidArgument;
|
||||
case '\'': return false;
|
||||
case '}': return false;
|
||||
|
||||
case 'A': press(AmstradCPC::Key::KeyA); break;
|
||||
case 'B': press(AmstradCPC::Key::KeyB); break;
|
||||
case 'C': press(AmstradCPC::Key::KeyC); break;
|
||||
case 'D': press(AmstradCPC::Key::KeyD); break;
|
||||
case 'E': press(AmstradCPC::Key::KeyE); break;
|
||||
case 'F': press(AmstradCPC::Key::KeyF); break;
|
||||
case 'G': press(AmstradCPC::Key::KeyG); break;
|
||||
case 'H': press(AmstradCPC::Key::KeyH); break;
|
||||
case 'I': press(AmstradCPC::Key::KeyI); break;
|
||||
case 'J': press(AmstradCPC::Key::KeyJ); break;
|
||||
case 'K': press(AmstradCPC::Key::KeyK); break;
|
||||
case 'L': press(AmstradCPC::Key::KeyL); break;
|
||||
case 'M': press(AmstradCPC::Key::KeyM); break;
|
||||
case 'N': press(AmstradCPC::Key::KeyN); break;
|
||||
case 'O': press(AmstradCPC::Key::KeyO); break;
|
||||
case 'P': press(AmstradCPC::Key::KeyP); break;
|
||||
case 'Q': press(AmstradCPC::Key::KeyQ); break;
|
||||
case 'R': press(AmstradCPC::Key::KeyR); break;
|
||||
case 'S': press(AmstradCPC::Key::KeyS); break;
|
||||
case 'T': press(AmstradCPC::Key::KeyT); break;
|
||||
case 'U': press(AmstradCPC::Key::KeyU); break;
|
||||
case 'V': press(AmstradCPC::Key::KeyV); break;
|
||||
case 'W': press(AmstradCPC::Key::KeyW); break;
|
||||
case 'X': press(AmstradCPC::Key::KeyX); break;
|
||||
case 'Y': press(AmstradCPC::Key::KeyY); break;
|
||||
case 'Z': press(AmstradCPC::Key::KeyZ); break;
|
||||
case ' ': press(AmstradCPC::Key::KeySpace); break;
|
||||
case '0': press(AmstradCPC::Key::Key0); break;
|
||||
case '1': press(AmstradCPC::Key::Key1); break;
|
||||
case '2': press(AmstradCPC::Key::Key2); break;
|
||||
case '3': press(AmstradCPC::Key::Key3); break;
|
||||
case '4': press(AmstradCPC::Key::Key4); break;
|
||||
case '5': press(AmstradCPC::Key::Key5); break;
|
||||
case '6': press(AmstradCPC::Key::Key6); break;
|
||||
case '7': press(AmstradCPC::Key::Key7); break;
|
||||
case '8': press(AmstradCPC::Key::Key8); break;
|
||||
case '9': press(AmstradCPC::Key::Key9); break;
|
||||
|
||||
case '"': shift(AmstradCPC::Key::Key2); break;
|
||||
|
||||
case '\\': {
|
||||
if(stream.peek() != '(') {
|
||||
press(AmstradCPC::Key::KeyBackSlash);
|
||||
break;
|
||||
}
|
||||
stream.get();
|
||||
|
||||
std::string name;
|
||||
while(stream.peek() != ')') {
|
||||
name.push_back(char(stream.get()));
|
||||
}
|
||||
stream.get();
|
||||
|
||||
static const std::unordered_map<std::string, uint16_t> names = {
|
||||
{"ESC", AmstradCPC::Key::KeyEscape},
|
||||
{"TAB", AmstradCPC::Key::KeyTab},
|
||||
{"CAP", AmstradCPC::Key::KeyCapsLock},
|
||||
{"SHI", AmstradCPC::Key::KeyShift},
|
||||
{"CTR", AmstradCPC::Key::KeyControl},
|
||||
{"COP", AmstradCPC::Key::KeyCopy},
|
||||
{"CLR", AmstradCPC::Key::KeyClear},
|
||||
{"DEL", AmstradCPC::Key::KeyDelete},
|
||||
{"RET", AmstradCPC::Key::KeyReturn},
|
||||
{"ENT", AmstradCPC::Key::KeyEnter},
|
||||
{"ARL", AmstradCPC::Key::KeyLeft},
|
||||
{"ARR", AmstradCPC::Key::KeyRight},
|
||||
{"ARU", AmstradCPC::Key::KeyUp},
|
||||
{"ARD", AmstradCPC::Key::KeyDown},
|
||||
{"FN0", AmstradCPC::Key::KeyF0},
|
||||
{"FN1", AmstradCPC::Key::KeyF1},
|
||||
{"FN2", AmstradCPC::Key::KeyF2},
|
||||
{"FN3", AmstradCPC::Key::KeyF3},
|
||||
{"FN4", AmstradCPC::Key::KeyF4},
|
||||
{"FN5", AmstradCPC::Key::KeyF5},
|
||||
{"FN6", AmstradCPC::Key::KeyF6},
|
||||
{"FN7", AmstradCPC::Key::KeyF7},
|
||||
{"FN8", AmstradCPC::Key::KeyF8},
|
||||
{"FN9", AmstradCPC::Key::KeyF9},
|
||||
//TODO: { } \ ' KOF
|
||||
};
|
||||
const auto name_pair = names.find(name);
|
||||
if(name_pair == names.end()) {
|
||||
throw CSL::InvalidArgument;
|
||||
}
|
||||
press(name_pair->second);
|
||||
} break;
|
||||
|
||||
case '{':
|
||||
while(append_typed(down, up, stream));
|
||||
break;
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
std::vector<CSL::Instruction> CSL::parse(const std::string &file_name) {
|
||||
std::vector<Instruction> instructions;
|
||||
std::ifstream file;
|
||||
file.open(file_name);
|
||||
|
||||
using Type = Instruction::Type;
|
||||
static const std::unordered_map<std::string, Type> keywords = {
|
||||
{"csl_version", Type::Version},
|
||||
{"reset", Type::Reset},
|
||||
{"crtc_select", Type::CRTCSelect},
|
||||
{"disk_insert", Type::DiskInsert},
|
||||
{"disk_dir", Type::SetDiskDir},
|
||||
{"tape_insert", Type::TapeInsert},
|
||||
{"tape_dir", Type::SetTapeDir},
|
||||
{"tape_play", Type::TapeInsert},
|
||||
{"tape_stop", Type::TapeStop},
|
||||
{"tape_rewind", Type::TapeRewind},
|
||||
{"snapshot_load", Type::LoadSnapshot},
|
||||
{"snapshot_dir", Type::SetSnapshotDir},
|
||||
{"key_delay", Type::KeyDelay},
|
||||
{"key_output", Type::KeyOutput},
|
||||
{"key_from_file", Type::KeyFromFile},
|
||||
{"wait", Type::Wait},
|
||||
{"wait_driveonoff", Type::WaitDriveOnOff},
|
||||
{"wait_ssm0000", Type::WaitSSM0000},
|
||||
{"screenshot_name", Type::SetScreenshotName},
|
||||
{"screenshot_dir", Type::SetScreenshotDir},
|
||||
{"screenshot", Type::Screenshot},
|
||||
{"snapshot_name", Type::SetSnapshotDir},
|
||||
{"csl_load", Type::LoadCSL},
|
||||
};
|
||||
|
||||
for(std::string line; std::getline(file, line); ) {
|
||||
// Ignore comments and empty lines.
|
||||
if(line.empty() || line[0] == ';') {
|
||||
continue;
|
||||
}
|
||||
|
||||
std::istringstream stream(line);
|
||||
std::string keyword;
|
||||
stream >> keyword;
|
||||
|
||||
// Second way for a line to be empty: purely whitespace.
|
||||
if(keyword.empty()) {
|
||||
continue;
|
||||
}
|
||||
|
||||
const auto key_pair = keywords.find(keyword);
|
||||
if(key_pair == keywords.end()) {
|
||||
throw InvalidKeyword;
|
||||
}
|
||||
|
||||
Instruction instruction;
|
||||
instruction.type = key_pair->second;
|
||||
|
||||
// TODO: strings are encoded specially in order to capture whitespace.
|
||||
// They're surrounded in single quotes with some special keys escaped.
|
||||
const auto require = [&](auto &&target) {
|
||||
stream >> target;
|
||||
if(stream.fail()) {
|
||||
throw InvalidArgument;
|
||||
}
|
||||
};
|
||||
|
||||
switch(instruction.type) {
|
||||
// Keywords with no argument.
|
||||
case Type::TapePlay:
|
||||
case Type::TapeStop:
|
||||
case Type::TapeRewind:
|
||||
case Type::WaitVsyncOnOff:
|
||||
case Type::WaitSSM0000:
|
||||
break;
|
||||
|
||||
// Keywords with a single string mandatory argument
|
||||
// that can be directly captured as a string.
|
||||
case Type::Version: {
|
||||
std::string argument;
|
||||
require(argument);
|
||||
instruction.argument = argument;
|
||||
} break;
|
||||
|
||||
// Keywords with a single string mandatory argument
|
||||
// that is within quotes but otherwise directly usable
|
||||
// as a string.
|
||||
case Type::LoadCSL:
|
||||
case Type::SetScreenshotDir:
|
||||
case Type::SetScreenshotName:
|
||||
case Type::SetSnapshotDir:
|
||||
case Type::SetSnapshotName:
|
||||
case Type::LoadSnapshot:
|
||||
case Type::SetTapeDir:
|
||||
case Type::TapeInsert:
|
||||
case Type::SetDiskDir:
|
||||
case Type::KeyFromFile: {
|
||||
std::string argument;
|
||||
|
||||
char next;
|
||||
stream >> next;
|
||||
if(next != '\'') {
|
||||
throw InvalidArgument;
|
||||
}
|
||||
|
||||
while(true) {
|
||||
next = static_cast<char>(stream.get());
|
||||
if(stream.eof()) break;
|
||||
|
||||
// Take a bit of a random guess about what's escaped
|
||||
// in regular string arguments.
|
||||
if(next == '\\' && stream.peek() == '(') {
|
||||
stream.get();
|
||||
if(stream.peek() != '\'') {
|
||||
argument.push_back('\\');
|
||||
argument.push_back('(');
|
||||
continue;
|
||||
}
|
||||
}
|
||||
|
||||
if(next == '\'') {
|
||||
break;
|
||||
}
|
||||
argument.push_back(next);
|
||||
}
|
||||
instruction.argument = argument;
|
||||
} break;
|
||||
|
||||
// Keywords with a single number mandatory argument.
|
||||
case Type::WaitDriveOnOff:
|
||||
case Type::Wait: {
|
||||
uint64_t argument;
|
||||
require(argument);
|
||||
instruction.argument = argument;
|
||||
} break;
|
||||
|
||||
// Miscellaneous:
|
||||
case Type::Snapshot:
|
||||
case Type::Screenshot: {
|
||||
std::string vsync;
|
||||
stream >> vsync;
|
||||
if(stream.fail()) {
|
||||
instruction.argument = ScreenshotOrSnapshot::Now;
|
||||
break;
|
||||
}
|
||||
if(vsync != "vsync") {
|
||||
throw InvalidArgument;
|
||||
}
|
||||
instruction.argument = ScreenshotOrSnapshot::WaitForVSync;
|
||||
} break;
|
||||
|
||||
case Type::Reset: {
|
||||
std::string type;
|
||||
stream >> type;
|
||||
if(!stream.fail()) {
|
||||
if(type != "soft" && type != "hard") {
|
||||
throw InvalidArgument;
|
||||
}
|
||||
instruction.argument = (type == "soft") ? Reset::Soft : Reset::Hard;
|
||||
}
|
||||
} break;
|
||||
|
||||
case Type::CRTCSelect: {
|
||||
std::string type;
|
||||
require(type);
|
||||
|
||||
static const std::set<std::string> allowed_types = {
|
||||
"0", "1", "1A", "1B", "2", "3", "4",
|
||||
};
|
||||
if(allowed_types.find(type) == allowed_types.end()) {
|
||||
throw InvalidArgument;
|
||||
}
|
||||
|
||||
instruction.argument = static_cast<uint64_t>(std::stoi(type));
|
||||
} break;
|
||||
|
||||
case Type::DiskInsert: {
|
||||
std::string name;
|
||||
require(name);
|
||||
|
||||
// Crop the assumed opening and closing quotes.
|
||||
name.erase(name.end() - 1);
|
||||
name.erase(name.begin());
|
||||
|
||||
DiskInsert argument;
|
||||
if(name.size() == 1) {
|
||||
argument.drive = toupper(name[0]) - 'A';
|
||||
require(name);
|
||||
}
|
||||
|
||||
argument.file = name;
|
||||
instruction.argument = argument;
|
||||
} break;
|
||||
|
||||
case Type::KeyOutput: {
|
||||
std::vector<KeyEvent> argument;
|
||||
|
||||
char next;
|
||||
stream >> next;
|
||||
if(next != '\'') {
|
||||
throw InvalidArgument;
|
||||
}
|
||||
|
||||
std::vector<KeyEvent> down;
|
||||
std::vector<KeyEvent> up;
|
||||
while(append_typed(down, up, stream)) {
|
||||
std::copy(down.begin(), down.end(), std::back_inserter(argument));
|
||||
std::copy(up.begin(), up.end(), std::back_inserter(argument));
|
||||
down.clear();
|
||||
up.clear();
|
||||
}
|
||||
instruction.argument = argument;
|
||||
} break;
|
||||
|
||||
case Type::KeyDelay: {
|
||||
KeyDelay argument;
|
||||
require(argument.press_delay);
|
||||
require(argument.interpress_delay);
|
||||
|
||||
uint64_t carriage_return_delay;
|
||||
stream >> carriage_return_delay;
|
||||
if(!stream.fail()) {
|
||||
argument.carriage_return_delay = carriage_return_delay;
|
||||
}
|
||||
instruction.argument = argument;
|
||||
} break;
|
||||
}
|
||||
|
||||
instructions.push_back(std::move(instruction));
|
||||
}
|
||||
|
||||
return instructions;
|
||||
}
|
93
Storage/Automation/CSL.hpp
Normal file
93
Storage/Automation/CSL.hpp
Normal file
@ -0,0 +1,93 @@
|
||||
//
|
||||
// CSL.hpp
|
||||
// Clock Signal
|
||||
//
|
||||
// Created by Thomas Harte on 12/06/2024.
|
||||
// Copyright © 2024 Thomas Harte. All rights reserved.
|
||||
//
|
||||
|
||||
#pragma once
|
||||
|
||||
#include <cstdint>
|
||||
#include <optional>
|
||||
#include <string>
|
||||
#include <variant>
|
||||
#include <vector>
|
||||
|
||||
namespace Storage::Automation::CSL {
|
||||
|
||||
enum Reset {
|
||||
Hard, Soft
|
||||
};
|
||||
struct DiskInsert {
|
||||
int drive = 0;
|
||||
std::string file;
|
||||
};
|
||||
enum ScreenshotOrSnapshot {
|
||||
WaitForVSync, Now,
|
||||
};
|
||||
struct KeyDelay {
|
||||
uint64_t press_delay;
|
||||
uint64_t interpress_delay;
|
||||
std::optional<uint64_t> carriage_return_delay;
|
||||
};
|
||||
struct KeyEvent {
|
||||
bool down;
|
||||
uint16_t key;
|
||||
};
|
||||
|
||||
struct Instruction {
|
||||
enum class Type {
|
||||
Version,
|
||||
Reset,
|
||||
CRTCSelect,
|
||||
LoadCSL,
|
||||
|
||||
DiskInsert,
|
||||
SetDiskDir,
|
||||
|
||||
TapeInsert,
|
||||
SetTapeDir,
|
||||
TapePlay,
|
||||
TapeStop,
|
||||
TapeRewind,
|
||||
|
||||
SetSnapshotDir,
|
||||
LoadSnapshot,
|
||||
SetSnapshotName,
|
||||
Snapshot,
|
||||
|
||||
KeyDelay,
|
||||
KeyOutput,
|
||||
KeyFromFile,
|
||||
|
||||
Wait,
|
||||
WaitDriveOnOff,
|
||||
WaitVsyncOnOff,
|
||||
WaitSSM0000,
|
||||
|
||||
SetScreenshotName,
|
||||
SetScreenshotDir,
|
||||
Screenshot,
|
||||
} type;
|
||||
|
||||
std::variant<
|
||||
std::monostate,
|
||||
DiskInsert,
|
||||
Reset,
|
||||
ScreenshotOrSnapshot,
|
||||
KeyDelay,
|
||||
std::string,
|
||||
std::vector<KeyEvent>,
|
||||
uint64_t
|
||||
> argument;
|
||||
};
|
||||
|
||||
|
||||
enum Errors {
|
||||
InvalidKeyword,
|
||||
InvalidArgument,
|
||||
};
|
||||
std::vector<Instruction> parse(const std::string &file_name);
|
||||
|
||||
}
|
Loading…
x
Reference in New Issue
Block a user