Merhaba, Ziyaretçi. Lütfen giriş yapın veya üye olun.

Kullanıcı adınızı, parolanızı ve aktif kalma süresini giriniz

  Gelişmiş Arama
insanın içinde varsa, commodore.gen.tr açığa çıkarır bunu.. bir nevi retro olaylarının dolunayıyız.(Arda)
commodore.gen.trAmigaAmiga YazılımAmigaOS 1.3 Ortam Değişkenleri Problemi
Sayfa: [1] 2 3 ... 5   Aşağı git
Yazdır
Gönderen Konu: AmigaOS 1.3 Ortam Değişkenleri Problemi  (Okunma Sayısı 41215 defa)
0 Üye ve 1 Ziyaretçi konuyu incelemekte.
Simon (Özay Turay)
Yönetici
*****
Mesaj Sayısı: 7.757


Commodore Forever


Üyelik Bilgileri WWW
« : Kasım 25, 2016, 19:53:59 ÖS »

Üzerinde çalıştığım AmigaOS MultiBoot projesinde karşılaştığım bir problem var. Şöyle ki konfigürasyonu kolay olsun diye hardcoded değerler yerine script'in en başında ortam değişkenleri kullanıyorum multiboot için hazırladığım Startup-Sequence scriptinde. 2.05, 3.0 ve 3.1 ROM ile boot ettiğimde sorun yok ancak 1.3 ROM ile boot ettiğimde

Unknown command Set

şeklinde bir hata alıyorum. Sorum su: AmigaOS 1.3'de set komutu yok mu?
« Son Düzenleme: Kasım 25, 2016, 20:55:29 ÖS Gönderen: Simon (Özay Turay) » Logged

https://retrodergi.com - https://e-turay.com - https://karizmawow.e-turay.com

Retro: Commodore 64, Amiga 500, Amiga 1200
Retromsu: Wii, XBox360, XBox, PS3 Slim, PS2 FAT, PS1, PS Vita, Nintendo 3DS, Nintendo 2DS
WildLord
Deneyimli
*****
Mesaj Sayısı: 758



Üyelik Bilgileri
« Yanıtla #1 : Kasım 25, 2016, 21:27:53 ÖS »

Amiga Dos 1.3 komutları, içerisinde set yok.


* AmigaDos1.3.png (184.11 KB, 514x511 - Görüntüleme: 1405 kez.)
Logged
Simon (Özay Turay)
Yönetici
*****
Mesaj Sayısı: 7.757


Commodore Forever


Üyelik Bilgileri WWW
« Yanıtla #2 : Kasım 25, 2016, 21:31:01 ÖS »

Set komutu normalde diğer sürümlerde de C: çekmecesinde bulunmuyor ama çalışıyor. Sanırım DOS'taki internal komutlar gibi bir komut.
Logged

https://retrodergi.com - https://e-turay.com - https://karizmawow.e-turay.com

Retro: Commodore 64, Amiga 500, Amiga 1200
Retromsu: Wii, XBox360, XBox, PS3 Slim, PS2 FAT, PS1, PS Vita, Nintendo 3DS, Nintendo 2DS
Alpyre
Uzman
*****
Mesaj Sayısı: 2.237



Üyelik Bilgileri WWW
« Yanıtla #3 : Kasım 25, 2016, 21:31:55 ÖS »

Set ve Get yerel ortam değişkeni (yani sadece mevcut shell'de geçerli) oluşturur. Bu özellik 2.0 ile gelmişti (C:'de bulunmazlar, internal komutlardır).

1.3'te ortam değişkeni oluşturmak için SetEnv/GetEnv ikilisini kullanman gerek. Bu genel ortam değişkeni oluşturur o yüzden özgün değişken adları kullanman da gerekecek tabi.
« Son Düzenleme: Kasım 25, 2016, 21:39:15 ÖS Gönderen: Alpyre » Logged

Alper
Simon (Özay Turay)
Yönetici
*****
Mesaj Sayısı: 7.757


Commodore Forever


Üyelik Bilgileri WWW
« Yanıtla #4 : Kasım 25, 2016, 21:44:44 ÖS »

1.3'te ortam değişkeni oluşturmak için SetEnv/UnsetEnv ikilisini kullanman gerek. Bu genel ortam değişkeni oluşturur o yüzden özgün değişken adları kullanman da gerekecek tabi.

Onu da denedim ama örneğin:

Set BootDrv DH0
Set KS13OS "Workbench1.3"
Set KS20OS "Workbench2.1"
Set KS30OS "Workbench3.0"
Set KS31OS "Workbench3.1"


ile atadığım değişkenleri

Echo "** Preparing $KS13OS"
Assign >NIL: SYS: $BootDrv:$KS13OS


şeklinde kolayca kullanamıyorum. Tabi bir de minimum sayıda dosya ve kodla yapmak istediğim iş için C: altına SetEnv ve GetEnv komutlarını L: altına Ram-Handler dosyasını kopyalamak ve RAM: altında ENV: assign'ı oluşturmak gerektirmesi de cabası.

Bana GetEnv'in Echo ve Assign ile nasıl kullanıldığına dair bir örnek gösterebilir misin?
Logged

https://retrodergi.com - https://e-turay.com - https://karizmawow.e-turay.com

Retro: Commodore 64, Amiga 500, Amiga 1200
Retromsu: Wii, XBox360, XBox, PS3 Slim, PS2 FAT, PS1, PS Vita, Nintendo 3DS, Nintendo 2DS
Simon (Özay Turay)
Yönetici
*****
Mesaj Sayısı: 7.757


Commodore Forever


Üyelik Bilgileri WWW
« Yanıtla #5 : Kasım 25, 2016, 22:41:50 ÖS »

Bana GetEnv'in Echo ve Assign ile nasıl kullanıldığına dair bir örnek gösterebilir misin?

Kendi sorumu kendim cevaplayayım yukarıdaki örnekte Set komutlarını SetEnv ile değiştirince sorunsuz çalışıyormuş $ ile bağlayan değişken ismini ister yazdırabiliyormuşuz istersek de herhangi bir komuta parametre yapabiliyormuşuz. Masum

Coming Soon: Amiga MultiBoot (for kickstart switchers)
Logged

https://retrodergi.com - https://e-turay.com - https://karizmawow.e-turay.com

Retro: Commodore 64, Amiga 500, Amiga 1200
Retromsu: Wii, XBox360, XBox, PS3 Slim, PS2 FAT, PS1, PS Vita, Nintendo 3DS, Nintendo 2DS
Alpyre
Uzman
*****
Mesaj Sayısı: 2.237



Üyelik Bilgileri WWW
« Yanıtla #6 : Kasım 25, 2016, 22:51:58 ÖS »

Bana GetEnv'in Echo ve Assign ile nasıl kullanıldığına dair bir örnek gösterebilir misin?

Kendi sorumu kendim cevaplayayım yukarıdaki örnekte Set komutlarını SetEnv ile değiştirince sorunsuz çalışıyormuş $ ile bağlayan değişken ismini ister yazdırabiliyormuşuz istersek de herhangi bir komuta parametre yapabiliyormuşuz. Masum

Coming Soon: Amiga MultiBoot (for kickstart switchers)

Tebrikler.

NOT: SetENV ile oluşturduğun ortam değişkenlerini, script'ten çıkmadan önce (varsa UnSetENV ile, yoksa) Delete ile silmeyi unutma.
Logged

Alper
WildLord
Deneyimli
*****
Mesaj Sayısı: 758



Üyelik Bilgileri
« Yanıtla #7 : Kasım 25, 2016, 23:06:29 ÖS »

Echo ile olmuyor, degiskenin kendi adi donuyor denedin mi simon?
Logged
Simon (Özay Turay)
Yönetici
*****
Mesaj Sayısı: 7.757


Commodore Forever


Üyelik Bilgileri WWW
« Yanıtla #8 : Kasım 25, 2016, 23:08:42 ÖS »

Echo ile olmuyor, degiskenin kendi adi donuyor denedin mi simon?
Evet 1.3'de yine olmuyor. Erken konuşmuşum.
Logged

https://retrodergi.com - https://e-turay.com - https://karizmawow.e-turay.com

Retro: Commodore 64, Amiga 500, Amiga 1200
Retromsu: Wii, XBox360, XBox, PS3 Slim, PS2 FAT, PS1, PS Vita, Nintendo 3DS, Nintendo 2DS
WildLord
Deneyimli
*****
Mesaj Sayısı: 758



Üyelik Bilgileri
« Yanıtla #9 : Kasım 25, 2016, 23:16:58 ÖS »

Anladığım kadarıyla SETENV ile belirlenen değişken IF komutuyla okutarak istediğimiz işi gerçekleştirebiliyoruz.
Örn:

Setenv nick "wildlord"

IF $nick EQ "wildlord"
echo "isim wildlord"
...
...
ENDIF

IF $nick EQ "simon"
echo "isim simon"
...
...
ENDIF
Logged
Simon (Özay Turay)
Yönetici
*****
Mesaj Sayısı: 7.757


Commodore Forever


Üyelik Bilgileri WWW
« Yanıtla #10 : Kasım 25, 2016, 23:23:16 ÖS »

Benim Assign komutuna parametre yapmam gerekiyor değişkenin içerdiği değeri ve 1.3'te $'lı notasyon çalışmıyor maalesef.
Logged

https://retrodergi.com - https://e-turay.com - https://karizmawow.e-turay.com

Retro: Commodore 64, Amiga 500, Amiga 1200
Retromsu: Wii, XBox360, XBox, PS3 Slim, PS2 FAT, PS1, PS Vita, Nintendo 3DS, Nintendo 2DS
Alpyre
Uzman
*****
Mesaj Sayısı: 2.237



Üyelik Bilgileri WWW
« Yanıtla #11 : Kasım 25, 2016, 23:39:43 ÖS »

` ile zincirleme çalışıyor mu?
Çalışıyorsa:
Assign >NIL: SYS: `GetENV KS13OS_DIR`
...şeklinde deneyebilirsin belki.
Logged

Alper
WildLord
Deneyimli
*****
Mesaj Sayısı: 758



Üyelik Bilgileri
« Yanıtla #12 : Kasım 25, 2016, 23:45:05 ÖS »

Assign komutuna parametreyi bir değişkene atamak yerine ilgili if içerisinde direk değer girerek yapılsa olmaz mı?

Logged
Simon (Özay Turay)
Yönetici
*****
Mesaj Sayısı: 7.757


Commodore Forever


Üyelik Bilgileri WWW
« Yanıtla #13 : Kasım 25, 2016, 23:53:48 ÖS »

` ile zincirleme çalışıyor mu?
Çalışıyorsa:
Assign >NIL: SYS: `GetENV KS13OS_DIR`
...şeklinde deneyebilirsin belki.

Please insert volume `GetEnv BootDrive` in any drive. Kahkaha

Assign komutuna parametreyi bir değişkene atamak yerine ilgili if içerisinde direk değer girerek yapılsa olmaz mı?
Kulağı tersten göstermiş oluruz. Onu yapacağımıza değerleri hardcoded olarak kullanmamız daha basit olur. Burada amaç scriptin en başında işletim sistemlerinin tutulacağı çekmeceleri tanımlayıp gerektiğinde kolayca değiştirebilmek, misal 3.1 ROM ile boot ettiğimde ClassicWB-LITE açılırken tek bir değişken içeriğini değiştirerek bir süre ClassicWB-ADVSP ile takılmak gibi.
Logged

https://retrodergi.com - https://e-turay.com - https://karizmawow.e-turay.com

Retro: Commodore 64, Amiga 500, Amiga 1200
Retromsu: Wii, XBox360, XBox, PS3 Slim, PS2 FAT, PS1, PS Vita, Nintendo 3DS, Nintendo 2DS
Alpyre
Uzman
*****
Mesaj Sayısı: 2.237



Üyelik Bilgileri WWW
« Yanıtla #14 : Kasım 26, 2016, 08:05:22 ÖÖ »

Hmm. Biraz manual karıştırdım. ` (BackTick) kullanımı da 2.0 ile gelmiş.

WinUAE'ye OS1.3 kurup biraz deneme de yaptım. WildLord'un dediği gibi $ ibaresi sadece IF ile çalışıyor.

...ya kısaca onun önerdiği gibi uygulayacaksın...
...ya da C ile ENV:'den ilgili ortam değişkenlerini okuyup gerekli Assign'ı oluşturacak yeni bir komut geliştirip onu kullanacaksın.

Gördüğüm kadarıyla başka çare yok gibi.
Logged

Alper
Sayfa: [1] 2 3 ... 5   Yukarı git
Yazdır
Gitmek istediğiniz yer: