SORTDIR: Added code to disconnect /RAM on startup
This commit is contained in:
parent
60a72bd5de
commit
72804aab9c
27
sortdir.c
27
sortdir.c
|
@ -2417,6 +2417,31 @@ void parseargs() {
|
|||
|
||||
#endif
|
||||
|
||||
/*
|
||||
* Disconnect RAM disk /RAM
|
||||
*/
|
||||
void disconnect_ramdisk(void) {
|
||||
uchar i, j;
|
||||
uchar *devcnt = (uchar*)0xbf31; // Number of devices
|
||||
uchar *devlst = (uchar*)0xbf32; // Disk device numbers
|
||||
uint *s0d1 = (uint*)0xbf10; // s0d1 driver vector
|
||||
uint *s3d2 = (uint*)0xbf26; // s3d2 driver vector
|
||||
if (*s0d1 == *s3d2)
|
||||
return; // No /RAM connected
|
||||
for (i = *devcnt; i > 0; --i) {
|
||||
if ((devlst[i] == 0xbf) || (devlst[i] == 0xbb) ||
|
||||
(devlst[i] == 0xb7) || (devlst[i] == 0xb3))
|
||||
break;
|
||||
}
|
||||
if (i > 0) {
|
||||
for (j = i; j < *devcnt; ++j) {
|
||||
devlst[j] = devlst[j + 1];
|
||||
}
|
||||
}
|
||||
*s3d2 = *s0d1;
|
||||
--(*devcnt);
|
||||
}
|
||||
|
||||
//int main(int argc, char *argv[]) {
|
||||
int main() {
|
||||
#ifdef CMDLINE
|
||||
|
@ -2434,6 +2459,8 @@ int main() {
|
|||
err(FATAL, err_128K);
|
||||
#endif
|
||||
|
||||
disconnect_ramdisk();
|
||||
|
||||
// Clear system bit map
|
||||
for (pp = (uchar*)0xbf58; pp <= (uchar*)0xbf6f; ++pp)
|
||||
*pp = 0;
|
||||
|
|
BIN
sortdir.po
BIN
sortdir.po
Binary file not shown.
Loading…
Reference in New Issue