Page 1 of 1

Execute() and internal commands on newer 68k AmigaOS versions

Posted: Wed Jun 09, 2021 5:43 pm
by jPV
I'm not sure if this is a Hollywood's bug, but let's see how it turns up :)

I found out that if I try to Execute() shell commands that are internal commands in the Kickstart ROM on AmigaOS 3.2, they fail with an "Unknown command" error. These do work fine with a plain AmigaOS 3.1 (and KS 3.1) installation and other Amiga compatible platforms, so the problem seems to be with newer 68k operating systems. Users reported that this would also happen on 3.1.4 and maybe even on 3.9, but I can't test myself now.

I also tried to make a work-around by creating an external script file, which I would then launch with the Execute() from Hollywood... and that indeed worked with 3.2, but unfortunately it then fails on 3.1... so, it makes two issues which would be nice to know if there's anything that can be done :)

Here's a test script:

Code: Select all

@DISPLAY {Hidden=True}
Execute("failat") ; "Unknown command / failed returncode 10" on OS3.2, but works on OS3.1
Execute("alias")  ; "Unknown command / failed returncode 10" on OS3.2, but works on OS3.1
Execute("cd")     ; "Unknown command / failed returncode 10" on OS3.2, but works on OS3.1
Execute("info")   ; Works on both
Execute("dir t:") ; Works on both

; A work-around try changes the situation other way around :(
ConsolePrint("doing with a script")
StringToFile("failat\ncd", "T:script")
SetFileAttributes("T:script", {Flags=#FILEATTR_READ_USR | #FILEATTR_WRITE_USR | #FILEATTR_DELETE_USR | #FILEATTR_EXECUTE_USR | #FILEATTR_SCRIPT})
Execute("T:script") ; "EXECUTE: Can't open T:script / object not found / failed returncode 10" on OS3.1, but works on OS3.2

ConsolePrint("end")

Re: Execute() and internal commands on newer 68k AmigaOS versions

Posted: Sat Jun 12, 2021 11:51 pm
by airsoftsoftwair
Could be a bug in those newer OS 3.x versions. Does it work on MorphOS and OS4?

Re: Execute() and internal commands on newer 68k AmigaOS versions

Posted: Sun Jun 13, 2021 10:00 am
by jPV
Everything works perfectly (all separate Execute lines and the script) on MorphOS and OS4.

I tested this now on my own OS3.9 (BB2) setup, and it fails there in the similar way to OS3.2. Also fails with Amiga Forever's pre-defined 3.X system...

So, executing the ROM based commands seem to fail on anything newer than the very original 3.1 on 68k.

Re: Execute() and internal commands on newer 68k AmigaOS versions

Posted: Sun Jun 13, 2021 8:31 pm
by airsoftsoftwair
Ok, so this is actually caused by a new feature of the > 3.1 releases but that new feature breaks compatibility with 3.1. Still, the easiest way is to fix Hollywood to be compatible with it.

Re: Execute() and internal commands on newer 68k AmigaOS versions

Posted: Fri Jun 18, 2021 6:24 pm
by airsoftsoftwair

Code: Select all

- Fix [Amiga]: ROM or resident commands couldn't be executed using Execute()