initial work towards burst IEC protocol support

This commit is contained in:
FeralChild64 committed 2019-12-30 20:28:52 +01:00
1 parent 99afae45c6
commit f05ddef5fd
20 files changed
+280 -68

No files matched your search

+48 -6
View File
@@ -112,10 +112,15 @@
}
// Check that I/O configuration is correct
// Check that IEC configuration is correct
{
#if CONFIG_RS232_UP9600 && (CONFIG_TAPE_NORMAL || CONFIG_TAPE_TURBO)
.error "CONFIG_RS232_UP9600 is not compatible with CONFIG_TAPE_*"
#if CONFIG_IEC_JIFFYDOS && !CONFIG_IEC
.error "CONFIG_IEC_JIFFYDOS requires CONFIG_IEC"
#endif
#if CONFIG_IEC_JIFFYDOS_BLANK && !CONFIG_IEC_JIFFYDOS
.error "CONFIG_IEC_JIFFYDOS_BLANK requires CONFIG_IEC_JIFFYDOS"
#endif
#if CONFIG_IEC_DOLPHINDOS && !CONFIG_IEC
@@ -126,8 +131,35 @@
.error "CONFIG_IEC_DOLPHINDOS_FAST requires CONFIG_IEC_DOLPHINDOS"
#endif
#if CONFIG_IEC_JIFFYDOS && !CONFIG_IEC
.error "CONFIG_IEC_JIFFYDOS requires CONFIG_IEC"
#if (CONFIG_IEC_BURST_CIA1 || CONFIG_IEC_BURST_CIA1 || CONFIG_IEC_BURST_SOFT) && !CONFIG_IEC
.error "CONFIG_IEC_BURST_* requires CONFIG_IEC"
#endif
#if CONFIG_IEC_BURST_SOFT && !CONFIG_MB_MEGA_65
.error "CONFIG_IEC_BURST_SOFT requires CONFIG_MB_MEGA_65"
#endif
.var selected_iec_burst = 0;
#if CONFIG_IEC_BURST_CIA1
.eval selected_iec_burst++
#endif
#if CONFIG_IEC_BURST_CIA2
.eval selected_iec_burst++
#endif
#if CONFIG_IEC_BURST_SOFT
.eval selected_iec_burst++
#endif
.if (selected_iec_burst > 1) .error "Please select at most one CONFIG_IEC_BURST_* option"
}
// Check that RS-232 configuration is correct
{
#if CONFIG_RS232_UP9600 && (CONFIG_TAPE_NORMAL || CONFIG_TAPE_TURBO)
.error "CONFIG_RS232_UP9600 is not compatible with CONFIG_TAPE_*"
#endif
.var selected_rs232 = 0;
@@ -143,6 +175,7 @@
}
// Check that startup banner configuration is correct
{
.var selected = 0;
@@ -322,13 +355,22 @@
#if CONFIG_IEC
.var iec_features_str = "IEC"
#if CONFIG_IEC_BURST_CIA1
.eval iec_features_str = iec_features_str + " BURST1"
#endif
#if CONFIG_IEC_BURST_CIA2
.eval iec_features_str = iec_features_str + " BURST2"
#endif
#if CONFIG_IEC_BURST_SOFT
.eval iec_features_str = iec_features_str + " BURST"
#endif
#if CONFIG_IEC_DOLPHINDOS
.eval iec_features_str = iec_features_str + " DOLPHIN"
#endif
#if CONFIG_IEC_JIFFYDOS
.eval iec_features_str = iec_features_str + " JIFFY"
#endif
#if !CONFIG_IEC_DOLPHINDOS && !CONFIG_IEC_JIFFYDOS
#if !CONFIG_IEC_BURST_CIA1 && !CONFIG_IEC_BURST_CIA2 && !CONFIG_IEC_BURST_SOFT && !CONFIG_IEC_DOLPHINDOS && !CONFIG_IEC_JIFFYDOS
.eval iec_features_str = iec_features_str + " NORMAL"
#endif
.eval features_str = ADD_FEATURE(features_str, iec_features_str)
+1 -1
View File
@@ -103,7 +103,7 @@
.label PTR1 = $9E // -- NOT IMPLEMENTED --
.label PTR2 = $9F // -- NOT IMPLEMENTED --
.label TIME = $A0 // $A0-$A2 jiffy clock
#if !CONFIG_IEC_JIFFYDOS && !CONFIG_IEC_DOLPHINDOS
#if !CONFIG_IEC_JIFFYDOS && !CONFIG_IEC_DOLPHINDOS && !CONFIG_IEC_BURST_CIA1 && !CONFIG_IEC_BURST_CIA2 && !CONFIG_IEC_BURST_SOFT
.label TSFCNT = $A3 // temporary variable for tape and IEC, [!] our usage differs
#else
.label IECPROTO = $A3 // -- WIP -- [!] 0 = normal, 1 = JiffyDOS, >= $80 for unknown