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ımAmigada installation yaratma programı
Sayfa: [1] 2   Aşağı git
Yazdır
Gönderen Konu: Amigada installation yaratma programı  (Okunma Sayısı 11131 defa)
0 Üye ve 1 Ziyaretçi konuyu incelemekte.
Gökçe Bozkurt
Deneyimli
*****
Mesaj Sayısı: 2.968


Nigripinis


Üyelik Bilgileri WWW
« : Eylül 25, 2017, 16:26:11 ÖS »

Selam

Basit mantıkta
Herhangi bir programı yüklerken karşımıza menü ve seçenekler çıkar
burada seçtiğimiz kriterlere göre program gerekli dosyaları yükler.

İste bu programı "installer" yapacak yardımcı program var mı ?

Amiga911 maker diye bir program var çok güzel
Ama o sadece ,istediğimiz tip bir sistem disketi veya program disketi yaratıyor.

Amacaım elimdeki sisteme özel, "device,library" dosyalarını yükleyen bir program yaratmak.

Seçeceğim sistem özelliklerine göre dosyları kopyalasın
Logged

A4000|FastlaneZ3|RetinaZ3|Tandem Ide|CF
A2000|G-Force 040/33|Cybervision64-3D|
A2000|Mobo|GVP HX-2000-II|Supra 8Mb
A2000|Mobo|8Up!6Mb
A1200|PPC 040/25/200|Mediator Sx|Vodoo4500|256Mb
A1200|Hawk 8Mb|CF
A1200|Mobo|Elbox 4Mb
A600|ACA030|Indivision ECS|A604|CF
A600|Mobo|A
Alpyre
Uzman
*****
Mesaj Sayısı: 2.237



Üyelik Bilgileri WWW
« Yanıtla #1 : Eylül 25, 2017, 17:06:22 ÖS »

AmigaInstaller LISP'e çok benzeyen bir programlama dilidir.

Bu dili ve Installer API'since sağlanan fonksiyonları öğrendikten sonra her türlü installer'ı herhangi bir metin düzenleyicide yazabilirsin.

Yazdıktan sonra tek yapman gereken simgesini seçip sağ fare menüsünden Icons->Info seçtikten sonra "Default Tool" bölümüne "Installer" yazıp kaydetmek.

Fonksiyon dökümantasyonu için aşağıdaki paketin Docs çekmecesine bakabilirsin:
http://www.aminet.net/util/sys/InstallerNG.lha

Bir alternatif yöntem de özel mesajdan dilediğin tüm özellikleri detaylıca yaz, ben sana yazayım. Kahkaha
Logged

Alper
Gökçe Bozkurt
Deneyimli
*****
Mesaj Sayısı: 2.968


Nigripinis


Üyelik Bilgileri WWW
« Yanıtla #2 : Eylül 25, 2017, 17:56:46 ÖS »

Alpyre,

Öğrenebilmem adına basit bir örnek yapıp yayınlarsan,
hem boyumdan büyük bir işe kalkışıp kalkışmadığımı görürüm,
yapabileceğim tarz bir şey ise örneğini baz alarak geliştiririm.

Şöyle kısa bir başlangıç olsun.
Sorulan soru çoğaldıkça kombinayon artacağından programla dilinde
nereye varacağını kafamda kuramıyorum:


Program Amiga modelini sordu, seçenekler çıktı (A500/A600/A1200/A2000)
İşlemci hızını sordu, seçenekler çıktı (68k/020/040/060)
PCmcia olup olmadığını sordu seçenekler çıktı (Evet/Hayır)

Seçilmiş seçeneklere göre, bir kombinasyon oluştu
kombinasyanın karşılığı olan dosyalar boot partitionına kopyalandı.

Startup sequnce e otomatik satır ekleme vs gibi hayallerim yok.
Gerekli device ve library kopyalama programı gibi bir şey

bu arada imza kısmında Alper diye bir cihazın olduğu gözüküyor hiç duymamıştım

« Son Düzenleme: Eylül 25, 2017, 17:58:19 ÖS Gönderen: Gökçe Bozkurt » Logged

A4000|FastlaneZ3|RetinaZ3|Tandem Ide|CF
A2000|G-Force 040/33|Cybervision64-3D|
A2000|Mobo|GVP HX-2000-II|Supra 8Mb
A2000|Mobo|8Up!6Mb
A1200|PPC 040/25/200|Mediator Sx|Vodoo4500|256Mb
A1200|Hawk 8Mb|CF
A1200|Mobo|Elbox 4Mb
A600|ACA030|Indivision ECS|A604|CF
A600|Mobo|A
Alpyre
Uzman
*****
Mesaj Sayısı: 2.237



Üyelik Bilgileri WWW
« Yanıtla #3 : Eylül 25, 2017, 18:30:17 ÖS »

Alpyre,

Program Amiga modelini sordu, seçenekler çıktı (A500/A600/A1200/A2000)
İşlemci hızını sordu, seçenekler çıktı (68k/020/040/060)
PCmcia olup olmadığını sordu seçenekler çıktı (Evet/Hayır)

Şimdi aklımda ilk çağrışan şey bunların doğrudan sistemden okunabileceği. Yani kullanıcıya sormaya gerek kalmaksızın öğrenebiliriz hangi Amiga'dayız, işlemcimiz ne ve PCMCIA var mı diye.

bu arada imza kısmında Alper diye bir cihazın olduğu gözüküyor hiç duymamıştım
Ya zamanında hava atmak gibi olur diye yazmamıştım cihaz falan. O gün bugün kaldı işte öyle...
Logged

Alper
Gökçe Bozkurt
Deneyimli
*****
Mesaj Sayısı: 2.968


Nigripinis


Üyelik Bilgileri WWW
« Yanıtla #4 : Eylül 25, 2017, 18:40:14 ÖS »

Alper profesyönel düşünme yaw
gwbasic bilgisi olan biriyim
onu da unutmuşumdur..
anca kullandığımız en komplike komut "if" dir

sonuçta her bilgisayarıma göre klasörü yaparım
winuade atarım bu kadar basit
ben sadece oyalanacak bir şey aradım ..

Logged

A4000|FastlaneZ3|RetinaZ3|Tandem Ide|CF
A2000|G-Force 040/33|Cybervision64-3D|
A2000|Mobo|GVP HX-2000-II|Supra 8Mb
A2000|Mobo|8Up!6Mb
A1200|PPC 040/25/200|Mediator Sx|Vodoo4500|256Mb
A1200|Hawk 8Mb|CF
A1200|Mobo|Elbox 4Mb
A600|ACA030|Indivision ECS|A604|CF
A600|Mobo|A
Alpyre
Uzman
*****
Mesaj Sayısı: 2.237



Üyelik Bilgileri WWW
« Yanıtla #5 : Eylül 25, 2017, 20:42:01 ÖS »

Madem öyle başlayalım o halde...

İlk önce script başlığımızı yazalım:
Kod:
;Automatic installer for library and devices
;Ver 0.1 25/09/2017
;Gökçe Bozkurt

Şimdi de karşılama iletimizi yazalım:
Kod:
(MESSAGE "This installer will copy some required library and devices according to your choices.")

İlk kullanıcı sorgulamamız. Hangi Amiga modeli için kuruyoruz:
Kod:
(SET #AmigaModel
    (ASKCHOICE
        (PROMPT "Please choose Amiga model:")
        (HELP "...")
        (DEFAULT 0)
        (CHOICES "A500" "A600" "A1200" "A2000")
    )
)

İkinci sorgulamamız. İşlemci hızı:
Kod:
(SET #CpuModel
    (ASKCHOICE
        (PROMPT "Please choose CPU model:")
        (HELP "...")
        (DEFAULT 0)
        (CHOICES "68k" "020" "040" "060")
    )
)

Son sorgulamamız. PCMCIA varlığı:
Kod:
(SET #PCMCIA
    (ASKCHOICE
        (PROMPT "Is a PCMCIA device available on your system:")
        (HELP "...")
        (DEFAULT 0)
        (CHOICES "Yes" "No")
    )
)

Kullanıcıdan gerekli tüm bilgiyi aldık. Şimdi kuruluma geçmeden önce kullanıcıya yaptığı seçimleri hatırlatan bir son ikaz sayfası hazırlamalıyız. O da bir sonraki mesajda olsun.

Not: İleti metinlerini dilediğin gibi değiştir ve eğer istersen HELP metinlerini de doldur.
Logged

Alper
Gökçe Bozkurt
Deneyimli
*****
Mesaj Sayısı: 2.968


Nigripinis


Üyelik Bilgileri WWW
« Yanıtla #6 : Eylül 25, 2017, 21:03:23 ÖS »

Choice leri nasıl aklında tutuyor.
Bir değişkene tanımlamadık ki ?
Logged

A4000|FastlaneZ3|RetinaZ3|Tandem Ide|CF
A2000|G-Force 040/33|Cybervision64-3D|
A2000|Mobo|GVP HX-2000-II|Supra 8Mb
A2000|Mobo|8Up!6Mb
A1200|PPC 040/25/200|Mediator Sx|Vodoo4500|256Mb
A1200|Hawk 8Mb|CF
A1200|Mobo|Elbox 4Mb
A600|ACA030|Indivision ECS|A604|CF
A600|Mobo|A
Alpyre
Uzman
*****
Mesaj Sayısı: 2.237



Üyelik Bilgileri WWW
« Yanıtla #7 : Eylül 25, 2017, 21:07:57 ÖS »

Choice leri nasıl aklında tutuyor.
Bir değişkene tanımlamadık ki ?

Hayır tanımladık. Değişkenlerimiz:
#AmigaModel, #CpuModel ve #PCMCIA

Installer'da # ile başlayan her şey birer değişkendir.
Logged

Alper
Alpyre
Uzman
*****
Mesaj Sayısı: 2.237



Üyelik Bilgileri WWW
« Yanıtla #8 : Eylül 25, 2017, 21:16:19 ÖS »

Aaa en önemli şeyi unuttuk bu arada. Hedef dizini sormayı.
Dizin sorguları hafifçe daha farklı yapılıyor şöyle ki:

Kod:
(SET #InstallPath
       (ASKDIR
            (PROMPT "Please choose the device to make the installation into:")
            (HELP "...")
            (DEFAULT "SYS:")
            (DISK)
        )
)

Bu kodla #InstallPath adı verdiğimiz değişkenimiz seçilen hedef dizinini bir sıralı (string) olarak tutacak.
Varsayılan olarak SYS: seçili olacak (dilersen bunu kaldırabilirsin).
(DISK) ile sorgu listesi ilk önce sistemdeki bağlı sürücülerin listesini gösterecek şekilde açılacak.
Logged

Alper
Alpyre
Uzman
*****
Mesaj Sayısı: 2.237



Üyelik Bilgileri WWW
« Yanıtla #9 : Eylül 25, 2017, 21:22:44 ÖS »

Buraya kadar anlaşılmayan bir konu yoksa son ikaz sayfamızı kodlayalım.
Bu bir miktar daha karmaşık gözükebilir ama dikkatle incelerseniz çok da zor değil.
Burada CAT (concatenate) fonksiyonuyla uzun bir metin oluşturacağız. CAT verilen sıralıları birbine ekleyerek uzun bir metin oluşturur. MESSAGE da bu metni kullanıcıya görüntüleyecek.
Her satır başı yapmak istediğimizde sıralımıza bir "\n" ekliyoruz.

Kod:
(MESSAGE (CAT "\nThe choices you've made so far are:\n\n"
              "AmigaModel: " (SELECT #AmigaModel ("A500") ("A600") ("A1200") ("A2000")) "\n"
              "CPUModel  : " (SELECT #CPUModel ("68k") ("020") ("040") ("060")) "\n"
              "PCMCIA    : " (SELECT #PCMCIA ("Yes") ("No")) "\n\n"
              "Installation Path: " #InstallPath "\n\n"
              "Clicking proceed will begin the installation with these choices."
         )
)
Logged

Alper
Alpyre
Uzman
*****
Mesaj Sayısı: 2.237



Üyelik Bilgileri WWW
« Yanıtla #10 : Eylül 25, 2017, 21:34:19 ÖS »

Bu aşamada şu SELECT fonksiyonunu da tanıyalım.

ASKCHOICE ile yaptığımız sorguların sonuçları ilgili değişkenlerde hep tamsayı olarak saklandı (sıralı olarak değil dikkat!).
Örneğin ilk seçenek A500 seçildiğinde #AmigaModel 0 oldu. İkinci seçenek olan A600 seçildiğinde ise #AmigaModel 1 olacak, A1200 seçilirse 2 olacak vs. vs.

SELECT bize bu tamsayı seçim sonuçlarından dallanma yapmamızı sağlıyor. Şöyle ki:
Kod:
(SELECT #Choice ("Sıfır") ("Bir") ("İki"))
...gibi bir kodda #Choice değişkeni 0 ise "Sıfır", 1 ise "Bir" yazan bir sıralı döndürür.

Tabi o parantezlerin içine ille de sıralı yazmak zorunda değiliz. Başka kod da yazabiliriz. Bu tamamen LISP dilinin esnekliği.
Logged

Alper
Gökçe Bozkurt
Deneyimli
*****
Mesaj Sayısı: 2.968


Nigripinis


Üyelik Bilgileri WWW
« Yanıtla #11 : Eylül 25, 2017, 21:43:07 ÖS »

Ben daha programı yüklemedim
sen programlamayı bitirdin
Logged

A4000|FastlaneZ3|RetinaZ3|Tandem Ide|CF
A2000|G-Force 040/33|Cybervision64-3D|
A2000|Mobo|GVP HX-2000-II|Supra 8Mb
A2000|Mobo|8Up!6Mb
A1200|PPC 040/25/200|Mediator Sx|Vodoo4500|256Mb
A1200|Hawk 8Mb|CF
A1200|Mobo|Elbox 4Mb
A600|ACA030|Indivision ECS|A604|CF
A600|Mobo|A
Alpyre
Uzman
*****
Mesaj Sayısı: 2.237



Üyelik Bilgileri WWW
« Yanıtla #12 : Eylül 25, 2017, 21:49:31 ÖS »

Ben daha programı yüklemedim
sen programlamayı bitirdin

Ahaha. Daha çok iş var. Öncelikle bu aşmada kodunu test etmelisin. Çünkü ilk testinde bir sorunla karşılaşacaksın. Merak etme çözümü var.

Şimdi test etmek için bu yukardakileri içeren bir metin dosyası oluştur Amiga'nda (ya da WinUAE'de fark etmez). Bu dosyanın bir simgesi olsun (EditPad ile oluşturursan varsayılan olarak oluşturacaktır, aksi takdirde senin oluşturman gerekiyor).

Icons->Info menüsünden Default Tool'u "Installer" yap. Ve kaydet. Çift tıkladığında yazdığımız kodun bu aşamaya kadar çalışması gerek.
Logged

Alper
Gökçe Bozkurt
Deneyimli
*****
Mesaj Sayısı: 2.968


Nigripinis


Üyelik Bilgileri WWW
« Yanıtla #13 : Eylül 25, 2017, 21:50:30 ÖS »

gece 12:00 de hanım ve çocuktan kurtulabilirsem deneyeceğim
Logged

A4000|FastlaneZ3|RetinaZ3|Tandem Ide|CF
A2000|G-Force 040/33|Cybervision64-3D|
A2000|Mobo|GVP HX-2000-II|Supra 8Mb
A2000|Mobo|8Up!6Mb
A1200|PPC 040/25/200|Mediator Sx|Vodoo4500|256Mb
A1200|Hawk 8Mb|CF
A1200|Mobo|Elbox 4Mb
A600|ACA030|Indivision ECS|A604|CF
A600|Mobo|A
emarti
Uzman
*****
Mesaj Sayısı: 2.624


Only Amiga Makes It Possible █


Üyelik Bilgileri WWW
« Yanıtla #14 : Eylül 25, 2017, 21:54:05 ÖS »

AmigaDos'ta script olarak daha basit olmaz mıydı?
Logged

https://github.com/emartisoft My GitHUB | http://csdb.dk/scener/?id=26786 My CSDB | https://c64kernal.com Genesis

READY.
SYS(64767): EMARTI
Sayfa: [1] 2   Yukarı git
Yazdır
Gitmek istediğiniz yer: