@@ -72,83 +72,76 @@ int lst_open = FALSE;
72
72
#endif
73
73
74
74
void setup (void ) {
75
- pinMode (LED, OUTPUT);
76
- digitalWrite (LED, LOW);
77
- Serial.begin (SERIALSPD);
78
- while (!Serial) { // Wait until serial is connected
79
- digitalWrite (LED, HIGH^LEDinv);
80
- delay (sDELAY );
81
- digitalWrite (LED, LOW^LEDinv);
82
- delay (sDELAY );
83
- }
75
+ pinMode (LED, OUTPUT);
76
+ digitalWrite (LED, LOW);
77
+ Serial.begin (SERIALSPD);
78
+ while (!Serial) { // Wait until serial is connected
79
+ digitalWrite (LED, HIGH^LEDinv);
80
+ delay (sDELAY );
81
+ digitalWrite (LED, LOW^LEDinv);
82
+ delay (sDELAY );
83
+ }
84
84
85
85
#ifdef DEBUGLOG
86
- _sys_deletefile ((uint8 *)LogName);
86
+ _sys_deletefile ((uint8 *)LogName);
87
87
#endif
88
88
89
- _clrscr ();
90
- _puts (" CP/M 2.2 Emulator v" VERSION " by Marcelo Dantas\r\n " );
91
- _puts (" Arduino read/write support by Krzysztof Klis\r\n " );
92
- _puts (" Build " __DATE__ " - " __TIME__ " \r\n " );
93
- _puts (" --------------------------------------------\r\n " );
94
- _puts (" CCP: " CCPname " CCP Address: 0x" );
95
- _puthex16 (CCPaddr);
96
- _puts (" \r\n BOARD: " );
89
+ _clrscr ();
90
+ _puts (" CP/M 2.2 Emulator v" VERSION " by Marcelo Dantas\r\n " );
91
+ _puts (" Arduino read/write support by Krzysztof Klis\r\n " );
92
+ _puts (" Build " __DATE__ " - " __TIME__ " \r\n " );
93
+ _puts (" --------------------------------------------\r\n " );
94
+ _puts (" CCP: " CCPname " CCP Address: 0x" );
95
+ _puthex16 (CCPaddr);
96
+ _puts (" \r\n BOARD: " );
97
97
_puts (BOARD);
98
98
_puts (" \r\n " );
99
99
100
100
_puts (" Initializing SD card.\r\n " );
101
101
if (SD.begin (SDINIT)) {
102
- #ifdef CCP_INTERNAL
103
- while (true )
104
- {
105
- _PatchCPM ();
106
- Status = 0 ;
107
- _ccp ();
108
- if (Status == 1 )
109
- break ;
110
- }
102
+ if (VersionCCP >= 0x10 || SD.exists (CCPname)) {
103
+ while (true ) {
104
+ _puts (CCPHEAD);
105
+ _PatchCPM ();
106
+ Status = 0 ;
107
+ #ifndef CCP_INTERNAL
108
+ if (!_RamLoad ((char *)CCPname, CCPaddr)) {
109
+ _puts (" Unable to load the CCP.\r\n CPU halted.\r\n " );
110
+ break ;
111
+ }
112
+ Z80reset ();
113
+ SET_LOW_REGISTER (BC, _RamRead (0x0004 ));
114
+ PC = CCPaddr;
115
+ Z80run ();
111
116
#else
112
- if (SD.exists (CCPname)) {
113
- while (true ) {
114
- _puts (CCPHEAD);
115
- if (_RamLoad ((char *)CCPname, CCPaddr)) {
116
- _PatchCPM ();
117
- Z80reset ();
118
- SET_LOW_REGISTER (BC, _RamRead (0x0004 ));
119
- PC = CCPaddr;
120
- Z80run ();
121
- if (Status == 1 )
122
- break ;
123
- } else {
124
- _puts (" Unable to load the CCP. CPU halted.\r\n " );
125
- break ;
126
- }
117
+ _ccp ();
118
+ #endif
119
+ if (Status == 1 )
120
+ break ;
127
121
#ifdef USE_PUN
128
- if (pun_dev)
129
- _sys_fflush (pun_dev);
122
+ if (pun_dev)
123
+ _sys_fflush (pun_dev);
130
124
#endif
131
125
#ifdef USE_LST
132
- if (lst_dev)
133
- _sys_fflush (lst_dev);
134
- #endif
135
- }
136
- } else {
137
- _puts (" Unable to load CP/M CCP. CPU halted.\r\n " );
138
- }
126
+ if (lst_dev)
127
+ _sys_fflush (lst_dev);
139
128
#endif
140
- } else {
141
- _puts (" Unable to initialize SD card. CPU halted.\r\n " );
142
- }
129
+ }
130
+ } else {
131
+ _puts (" Unable to load CP/M CCP.\r\n CPU halted.\r\n " );
132
+ }
133
+ } else {
134
+ _puts (" Unable to initialize SD card.\r\n CPU halted.\r\n " );
135
+ }
143
136
}
144
137
145
138
void loop (void ) {
146
- digitalWrite (LED, HIGH^LEDinv);
147
- delay (DELAY);
148
- digitalWrite (LED, LOW^LEDinv);
149
- delay (DELAY);
150
- digitalWrite (LED, HIGH^LEDinv);
151
- delay (DELAY);
152
- digitalWrite (LED, LOW^LEDinv);
153
- delay (DELAY * 4 );
139
+ digitalWrite (LED, HIGH^LEDinv);
140
+ delay (DELAY);
141
+ digitalWrite (LED, LOW^LEDinv);
142
+ delay (DELAY);
143
+ digitalWrite (LED, HIGH^LEDinv);
144
+ delay (DELAY);
145
+ digitalWrite (LED, LOW^LEDinv);
146
+ delay (DELAY * 4 );
154
147
}
0 commit comments