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

Report any Hollywood bugs here
Post Reply
User avatar
jPV
Posts: 600
Joined: Sat Mar 26, 2016 10:44 am
Location: RNO
Contact:

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

Post 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")
User avatar
airsoftsoftwair
Posts: 5425
Joined: Fri Feb 12, 2010 2:33 pm
Location: Germany
Contact:

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

Post by airsoftsoftwair »

Could be a bug in those newer OS 3.x versions. Does it work on MorphOS and OS4?
User avatar
jPV
Posts: 600
Joined: Sat Mar 26, 2016 10:44 am
Location: RNO
Contact:

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

Post 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.
User avatar
airsoftsoftwair
Posts: 5425
Joined: Fri Feb 12, 2010 2:33 pm
Location: Germany
Contact:

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

Post 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.
User avatar
airsoftsoftwair
Posts: 5425
Joined: Fri Feb 12, 2010 2:33 pm
Location: Germany
Contact:

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

Post by airsoftsoftwair »

Code: Select all

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