Made the program-chaining exec() handle the X16 emulator's file-system.
This commit is contained in:
parent
3fa253d31f
commit
f067c4530f
1 changed files with 9 additions and 6 deletions
|
@ -1,7 +1,7 @@
|
|||
/*
|
||||
** Program-chaining function for Commodore platforms.
|
||||
**
|
||||
** 2019-11-08, Greg King
|
||||
** 2019-12-25, Greg King
|
||||
**
|
||||
** This function exploits the program-chaining feature in Commander X16 BASIC's ROM.
|
||||
**
|
||||
|
@ -82,12 +82,15 @@ int __fastcall__ exec (const char* progname, const char* cmdline)
|
|||
}
|
||||
utoa (dv, basic.unit, 10);
|
||||
|
||||
/* Don't try to run a program that doesn't exist. */
|
||||
fd = open (progname, O_RDONLY);
|
||||
if (fd < 0) {
|
||||
return _mappederrno (4); /* file not found */
|
||||
/* The emulator supports only loading and saving on its file-system. */
|
||||
if (dv != 1) {
|
||||
/* Don't try to run a program that doesn't exist. */
|
||||
fd = open (progname, O_RDONLY);
|
||||
if (fd < 0) {
|
||||
return _mappederrno (4); /* file not found */
|
||||
}
|
||||
close (fd);
|
||||
}
|
||||
close (fd);
|
||||
|
||||
n = 0;
|
||||
do {
|
||||
|
|
Loading…
Add table
Reference in a new issue