PDA

View Full Version : Startup-Sequence problems...


Casublett
03 September 2007, 02:34
Ok, I'm trying trying to do some "assign" magic in the startup-sequence and I'm having problems. BTW, I got the idea from http://www.amigau.com/amigarealm/thisoldworkbench/html/towb20.html

I'm trying to make "user" mirrors of each of the System default (C, S, LIBS etc) paths that all installed files get copied into instead of the official path.. And it's not working. Workbench isn't finding what it needs now... Maybe someone here can help, below is my startup-sequence...

--------------------------------------------------

; $VER: Startup-Sequence_HardDrive 40.2 (25.2.93)
; Startup-Sequence for hard drive systems

C:SetPatch QUIET

C:Version >NIL:
C:AddBuffers >NIL: DF0: 15
FailAt 21

C:MakeDir RAM:T RAM:Clipboards RAM:ENV RAM:ENV/Sys
C:Copy >NIL: ENVARC: RAM:ENV ALL NOREQ

Resident >NIL: C:Assign PURE
Resident >NIL: C:Execute PURE

; ---------- EDITS START HERE

Assign >NIL: ENV: RAM:ENV
Assign >NIL: T: RAM:T
Assign >NIL: CLIPS: RAM:Clipboards
Assign >NIL: PRINTERS: DEVS:Printers
Assign >NIL: KEYMAPS: DEVS:Keymaps

Assign >NIL: C: Sys:User/C-User
Assign >NIL: C: Sys:C ADD

Assign >NIL: DEVS: Sys:User/Devs-User
Assign >NIL: DEVS: Sys:Devs ADD

Assign >NIL: FONTS: Sys:User/Fonts-User
Assign >NIL: FONTS: Sys:Fonts ADD

Assign >NIL: HELP: Sys:User/Help-User
Assign >NIL: HELP: Sys:Locale:Help DEFER

Assign >NIL: L: Sys:User/L-User
Assign >NIL: L: Sys:L ADD

Assign >NIL: LIBS: Sys:User/Libs-User
Assign >NIL: LIBS: Sys:Libs ADD

Assign >NIL: LIBS: Sys:User/Classes-User
Assign >NIL: LIBS: Sys:Classes ADD

Assign >NIL: LOCALE: Sys:User/Locale-User
Assign >NIL: LOCALE: Sys:Locale ADD

Assign >NIL: REXX: Sys:User/Rexx-User
Assign >NIL: REXX: S: ADD

Assign >NIL: S: Sys:User/S-User
Assign >NIL: S: Sys:S ADD

; ---------- EDITS END HERE

BindDrivers
C:Mount >NIL: DEVS:DOSDrivers/~(#?.info)

IF EXISTS DEVS:Monitors
IF EXISTS DEVS:Monitors/VGAOnly
DEVS:Monitors/VGAOnly
EndIF

C:List >NIL: DEVS:Monitors/~(#?.info|VGAOnly) TO T:M LFORMAT "DEVS:Monitors/%s"
Execute T:M
C:Delete >NIL: T:M
EndIF

SetEnv Language "english"
SetEnv Workbench $Workbench
SetEnv Kickstart $Kickstart
UnSet Workbench
UnSet Kickstart

C:AddDataTypes REFRESH QUIET
C:IPrefs
C:ConClip

Path >NIL: RAM: C: SYS:Utilities SYS:Rexxc SYS:System S: SYS:Prefs SYS:WBStartup SYS:Tools SYS:Tools/Commodities

PATH >NIL: SYS:C ADD

IF EXISTS S:User-Startup
Execute S:User-Startup
EndIF

Resident Execute REMOVE
Resident Assign REMOVE

C:LoadWB
EndCLI >NIL:

--------------------------------------------------

What am I doing wrong?

Graham Humphrey
03 September 2007, 09:00
Do you need to Assign the default path for C, Fonts etc? I'm not sure you do. Not sure how much difference that will make but it's worth a go anyway.

thomas
03 September 2007, 09:15
Assign >NIL: LIBS: Sys:User/Classes-User

This must have "ADD" at the end, too. It adds classes to libs. Without the "add", the other libs assign is deleted.

BTW, all these Sys:User/xxx-User, why do you have the word "user" twice in there ? Wouldn't Sys:User/xxx be sufficient ?

And especially the Sys:User/Classes-User will probably not work as expected. Datatypes and BOOPSI classes are usually copied to Sys:Classes and not to LIBS:.

Casublett
03 September 2007, 12:25
Do you need to Assign the default path for C, Fonts etc? I'm not sure you do. Not sure how much difference that will make but it's worth a go anyway.

Actually, I'm not sure :)

The article I read said I could do it for ALL the paths, so that's what I'm trying.

Looks to me that, according to the article, I did it right, but it's not working.

Casublett
03 September 2007, 12:25
Do you need to Assign the default path for C, Fonts etc? I'm not sure you do. Not sure how much difference that will make but it's worth a go anyway.

This must have "ADD" at the end, too. It adds classes to libs. Without the "add", the other libs assign is deleted.

BTW, all these Sys:User/xxx-User, why do you have the word "user" twice in there ? Wouldn't Sys:User/xxx be sufficient ?

And especially the Sys:User/Classes-User will probably not work as expected. Datatypes and BOOPSI classes are usually copied to Sys:Classes and not to LIBS:.

Ok, I'll try adding that and see what happens. Thx!

(About the naming scheme... I can tweak it after I get it working)

Casublett
03 September 2007, 13:25
This must have "ADD" at the end, too. It adds classes to libs. Without the "add", the other libs assign is deleted.

BTW, all these Sys:User/xxx-User, why do you have the word "user" twice in there ? Wouldn't Sys:User/xxx be sufficient ?

And especially the Sys:User/Classes-User will probably not work as expected. Datatypes and BOOPSI classes are usually copied to Sys:Classes and not to LIBS:.

That seems to have fixed it... It's not perfect, but I can start the bug fixing now, THX SOOO MUCH!

Casublett
03 September 2007, 14:04
For any interested, here is the new startup that seems work fine and protect (copies to the user mirrors instead with full access from the operating system) you system directories when you install anything.

------------------------------------------------------------------

; $VER: Startup-Sequence_HardDrive 40.2 (25.2.93)
; Startup-Sequence for hard drive systems

C:SetPatch QUIET

C:Version >NIL:
C:AddBuffers >NIL: DF0: 15
FailAt 21

C:MakeDir RAM:T RAM:Clipboards RAM:ENV RAM:ENV/Sys
C:Copy >NIL: ENVARC: RAM:ENV ALL NOREQ

Resident >NIL: C:Assign PURE
Resident >NIL: C:Execute PURE

; ---------- User-System Edits START

Assign >NIL: ENV: RAM:ENV
Assign >NIL: T: RAM:T
Assign >NIL: CLIPS: RAM:Clipboards
Assign >NIL: PRINTERS: DEVS:Printers
Assign >NIL: KEYMAPS: DEVS:Keymaps

Assign >NIL: SYS: Workbench:User
Assign >NIL: SYS: Workbench: ADD

Assign >NIL: LOCALE: Sys:User/Locale-User
Assign >NIL: LOCALE: Sys:Locale ADD

Assign >NIL: C: Sys:User/C-User
Assign >NIL: C: Sys:C ADD

Assign >NIL: DEVS: Sys:User/Devs-User
Assign >NIL: DEVS: Sys:Devs ADD

Assign >NIL: FONTS: Sys:User/Fonts-User
Assign >NIL: FONTS: Sys:Fonts ADD

Assign >NIL: HELP: Sys:User/Help-User DEFER
Assign >NIL: HELP: Sys:Locale:Help ADD

Assign >NIL: L: Sys:User/L-User
Assign >NIL: L: Sys:L ADD

Assign >NIL: LIBS: Sys:User/Libs-User
Assign >NIL: LIBS: Sys:Libs ADD

Assign >NIL: LIBS: Sys:User/Classes-User ADD
Assign >NIL: LIBS: Sys:Classes ADD

Assign >NIL: REXX: Sys:User/Rexx-User
Assign >NIL: REXX: S: ADD

Assign >NIL: S: Sys:User/S-User
Assign >NIL: S: Sys:S ADD

; ---------- User-System Edits END

BindDrivers
C:Mount >NIL: DEVS:DOSDrivers/~(#?.info)

IF EXISTS DEVS:Monitors
IF EXISTS DEVS:Monitors/VGAOnly
DEVS:Monitors/VGAOnly
EndIF

C:List >NIL: DEVS:Monitors/~(#?.info|VGAOnly) TO T:M LFORMAT "DEVS:Monitors/%s"
Execute T:M
C:Delete >NIL: T:M
EndIF

SetEnv Language "english"
SetEnv Workbench $Workbench
SetEnv Kickstart $Kickstart
UnSet Workbench
UnSet Kickstart

C:AddDataTypes REFRESH QUIET
C:IPrefs
C:ConClip

Path >NIL: RAM: C: SYS:Utilities SYS:Rexxc SYS:System S: SYS:Prefs SYS:WBStartup SYS:Tools SYS:Tools/Commodities

PATH >NIL: SYS:C ADD

IF EXISTS S:User-Startup
Execute S:User-Startup
EndIF

Resident Execute REMOVE
Resident Assign REMOVE

C:LoadWB
EndCLI >NIL:

Casublett
03 September 2007, 14:31
Actually, it doesn't seem to work yet... Back to the drawing board. :(

Casublett
03 September 2007, 14:49
I don't get it... When I'm in a shell window and I change directory from any place to an assigned path (sys:, c:, libs:) it goes to the user directory, but the Picasso installer isn't picking it up... It still install to the official dirs... What am I doing wrong?

Casublett
03 September 2007, 15:05
If this helps...

From a shell..

sys:

goes to the user dir

libs:

goes to the user dir

sys:libs

doesn't... It goes to the official path

Help?

ppill
03 September 2007, 20:33
Sys: is automatically assigned at startup (no need for a startup-sequence entry) to the drive the system was booted from. This might explain the 'sys:libs' path "problem".

thomas
03 September 2007, 20:46
If this helps...

From a shell..

sys:

goes to the user dir

libs:

goes to the user dir

sys:libs

doesn't... It goes to the official path

Help?


That's obvious, just think about it.

You Libs: assign constists of

Workbench:User/Libs-User
Workbench:Libs

And your SYS: assign is

Workbench:User
Workbench:

Now, the program tries to access SYS:Libs. It tries to resolve SYS:. The first part of SYS: is Workbench:User. So SYS:Libs resolves to Workbench:User/Libs. That does not exist. So it tries the second part of SYS: which is Workbench:. Now SYS:Libs resolves to Workbench:Libs which does exist.

If you use Workbench:User/Libs instead of Workbench:User/Libs-User, then it should work.

Casublett
04 September 2007, 00:52
Ok, tried renaming the user folders from "C-User" to "C" etc. and it just confuses the OS more... I don't think the OS knows how handle the same drawer in 2 different places.

Although if I just rename the libs folder, it does fix the other problem... I'm not sure how to approach this... :(

thomas
04 September 2007, 08:42
I don't think the OS knows how handle the same drawer in 2 different places.

???

There is no magic in AmigaOS. Everything works as expected. Probably you did something wrong.