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] 4 5   Aşağı git
Yazdır
Gönderen Konu: AmigaOS 1.3 Ortam Değişkenleri Problemi  (Okunma Sayısı 41190 defa)
0 Üye ve 1 Ziyaretçi konuyu incelemekte.
Simon (Özay Turay)
Yönetici
*****
Mesaj Sayısı: 7.757


Commodore Forever


Üyelik Bilgileri WWW
« Yanıtla #30 : Kasım 28, 2016, 20:07:49 ÖS »

Ben tuttum bu ikiliyi! Başka konularda da açılımlar, zihin jimnastiği uygulamaları bekliyoruz

Alper'le bizim ikili beyin cimnastiğimiz taaaaa benim forumdaki ilk mesajıma kadar uzanır, lacileri çekmeden çok daha öncesine. Masum

Bu arada emarti'yi de unutmayalım, sesi çıkmasa da o da meraklı Amiga için program yazmaya.
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 #31 : Kasım 28, 2016, 20:25:22 ÖS »

OS1.3'de denedim çalıştı.
Şimdi denedim ve dediğin gibi çalışıyor. Bir tek Assign komutunu debug amaçlı Echo Assign yapmıştım onu düzeltmek için yeniden derlemem lazım. SAS/C'yi buradan indirsek işimizi görür mü?

Hmm. Bu linki bulduğun iyi olmuş. Umarım çalışır.

Ben zamanında çok aramıştım da herbirinde bir sorun olmuştu. En son bir yerlerden bulduğum disketlerden güncellemerini teker teker yapa yapa oluşturmuştum 6.58 sürümünü.

O sürüm de Amithlon CD'lerinde mevcut. Bu linkteki çalışmazsa oradan kopyalayıver (user-startup'ta da gerekli Assign'ler olacak, onları da al).

Alper'le bizim ikili beyin cimnastiğimiz taaaaa benim forumdaki ilk mesajıma kadar uzanır, lacileri çekmeden çok daha öncesine. Masum

O senin forumdaki ilk mesajın mıydı?
Hızır gibi yetişmişsin öyleyse. Foruma gelmeseydin ben o CD'yi sittin sene hazırlayamazdım.
Logged

Alper
emarti
Uzman
*****
Mesaj Sayısı: 2.600


Only Amiga Makes It Possible █


Üyelik Bilgileri WWW
« Yanıtla #32 : Kasım 28, 2016, 20:47:02 ÖS »

Ben tuttum bu ikiliyi! Başka konularda da açılımlar, zihin jimnastiği uygulamaları bekliyoruz

Alper'le bizim ikili beyin cimnastiğimiz taaaaa benim forumdaki ilk mesajıma kadar uzanır, lacileri çekmeden çok daha öncesine. Masum

Bu arada emarti'yi de unutmayalım, sesi çıkmasa da o da meraklı Amiga için program yazmaya.


Takip edemedim haklısın @simon. Kırkından sonra felsefeye merak sarınca açık öğretim sınavından çıktım hafta sonu. İlk etapta biraz takip edebildim. Baştan sona bir okuyayım topiği tekrar...
Logged

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

READY.
SYS(64767): EMARTI
Simon (Özay Turay)
Yönetici
*****
Mesaj Sayısı: 7.757


Commodore Forever


Üyelik Bilgileri WWW
« Yanıtla #33 : Kasım 28, 2016, 21:16:00 ÖS »

Bu vesile ile Oldschool computer sitesini de keşfetmiş olduk. Kahkaha

http://oscomp.hu/?lang/en*details/
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 #34 : Kasım 28, 2016, 22:57:51 ÖS »

Bu kod olmayan bir dosyayı okumaya çalıştığımda o isimde boş bir dosya oluşturuyor. Sebep ne olabilir?

Kod:
void getEnvVar(char *envVar, char* fileName)
{
  char buffer[BUFSIZE] = {0};
  BPTR envFile = Open(fileName, MODE_READWRITE);
  if (envFile)
  {
    Read(envFile, buffer, BUFSIZE);
    Close(envFile);
    removeSpecial(envVar, buffer);
  }
}
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
emarti
Uzman
*****
Mesaj Sayısı: 2.600


Only Amiga Makes It Possible █


Üyelik Bilgileri WWW
« Yanıtla #35 : Kasım 28, 2016, 23:37:30 ÖS »

Bu kod olmayan bir dosyayı okumaya çalıştığımda o isimde boş bir dosya oluşturuyor. Sebep ne olabilir?

Kod:
void getEnvVar(char *envVar, char* fileName)
{
  char buffer[BUFSIZE] = {0};
  BPTR envFile = Open(fileName, MODE_READWRITE);
  if (envFile)
  {
    Read(envFile, buffer, BUFSIZE);
    Close(envFile);
    removeSpecial(envVar, buffer);
  }
}

Sebebi MODE_READWRITE parametresi. MODE_READ olarak kodlanırsa sadece okuma yapacak ama exist yaptığı dosya için yani dosyayı yaratmayacaktır. MODE_READWRITE modunda dosya sağlanmaz (exist) ise boş bir dosya oluşturur.
Logged

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

READY.
SYS(64767): EMARTI
Simon (Özay Turay)
Yönetici
*****
Mesaj Sayısı: 7.757


Commodore Forever


Üyelik Bilgileri WWW
« Yanıtla #36 : Kasım 29, 2016, 00:02:15 ÖÖ »

Benim de ilk aklıma gelen oydu ama maalesef öyle bir constant tanımlanmamış diyordum ki MODE_OLDFILE, MODE_NEWFILE ve MODE_READWRITE değerlerinin kullanılabildiğini öğrendim.

http://www.pjhutchison.org/tutorial/file_io.html

Yani biz MODE_OLDFILE kullanıcaz. Kahkaha

Öğrenicez bakalım inşallah.
« Son Düzenleme: Kasım 29, 2016, 00:04:53 ÖÖ 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
emarti
Uzman
*****
Mesaj Sayısı: 2.600


Only Amiga Makes It Possible █


Üyelik Bilgileri WWW
« Yanıtla #37 : Kasım 29, 2016, 00:33:40 ÖÖ »

Benim de ilk aklıma gelen oydu ama maalesef öyle bir constant tanımlanmamış diyordum ki MODE_OLDFILE, MODE_NEWFILE ve MODE_READWRITE değerlerinin kullanılabildiğini öğrendim.

http://www.pjhutchison.org/tutorial/file_io.html

Yani biz MODE_OLDFILE kullanıcaz. Kahkaha

Öğrenicez bakalım inşallah.


gcc ile derlerken

Kod:
FILE *dosya;
dosya = fopen("dosyaismi","r");

gibi kullanıyorum. C'de birlik yok
Logged

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

READY.
SYS(64767): EMARTI
Alpyre
Uzman
*****
Mesaj Sayısı: 2.237



Üyelik Bilgileri WWW
« Yanıtla #38 : Kasım 29, 2016, 07:25:19 ÖÖ »

Kod:
FILE *dosya;
dosya = fopen("dosyaismi","r");
gibi kullanıyorum. C'de birlik yok


Amiga'da program yazarken fopen(), malloc() vs. vs. gibi standart kütüphane fonksiyonlarından kaçınmalıyız arkadaşlar.

Bu programımızı ya ixemul.library bağımlı kılar veya derlerken libnix ile linklenmek zorunda bırakır (dosya boyutu büyür).

Mümkün olduğunca (ki pek çok şey mümkün) AmigaOS API'sindeki fonksiyonları kullanmalıyız. Bu fonksiyonlar ve kullanımları için aşağıdaki kitaptan:
Amiga ROM Kernel Reference Manual : Libraries
...ya da çevrimiçi referans tercih ediyorak şu siteden:
http://amigadev.elowar.com/
...faydalanabiliriz.
Logged

Alper
emarti
Uzman
*****
Mesaj Sayısı: 2.600


Only Amiga Makes It Possible █


Üyelik Bilgileri WWW
« Yanıtla #39 : Kasım 29, 2016, 08:27:24 ÖÖ »

Kod:
FILE *dosya;
dosya = fopen("dosyaismi","r");
gibi kullanıyorum. C'de birlik yok


Amiga'da program yazarken fopen(), malloc() vs. vs. gibi standart kütüphane fonksiyonlarından kaçınmalıyız arkadaşlar.

Bu programımızı ya ixemul.library bağımlı kılar veya derlerken libnix ile linklenmek zorunda bırakır (dosya boyutu büyür).

Mümkün olduğunca (ki pek çok şey mümkün) AmigaOS API'sindeki fonksiyonları kullanmalıyız. Bu fonksiyonlar ve kullanımları için aşağıdaki kitaptan:
Amiga ROM Kernel Reference Manual : Libraries
...ya da çevrimiçi referans tercih ediyorak şu siteden:
http://amigadev.elowar.com/
...faydalanabiliriz.


@Alpyre abi ADE kullanarak fopen, fputs gibi fonksiyonları hatta derlemede -noixemul kullanmıştım. Programın çalışmasında bir sıkıntı olmamıştı. Boyutsal büyüklük dışında bir sıkıntı yaratma ihtimali var mıdır?

Logged

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

READY.
SYS(64767): EMARTI
Alpyre
Uzman
*****
Mesaj Sayısı: 2.237



Üyelik Bilgileri WWW
« Yanıtla #40 : Kasım 29, 2016, 09:30:06 ÖÖ »

Kod:
FILE *dosya;
dosya = fopen("dosyaismi","r");
gibi kullanıyorum. C'de birlik yok
Amiga'da program yazarken fopen(), malloc() vs. vs. gibi standart kütüphane fonksiyonlarından kaçınmalıyız arkadaşlar.

Bu programımızı ya ixemul.library bağımlı kılar veya derlerken libnix ile linklenmek zorunda bırakır (dosya boyutu büyür).

Mümkün olduğunca (ki pek çok şey mümkün) AmigaOS API'sindeki fonksiyonları kullanmalıyız. Bu fonksiyonlar ve kullanımları için aşağıdaki kitaptan:
Amiga ROM Kernel Reference Manual : Libraries
...ya da çevrimiçi referans tercih ediyorak şu siteden:
http://amigadev.elowar.com/
...faydalanabiliriz.

@Alpyre abi ADE kullanarak fopen, fputs gibi fonksiyonları hatta derlemede -noixemul kullanmıştım. Programın çalışmasında bir sıkıntı olmamıştı. Boyutsal büyüklük dışında bir sıkıntı yaratma ihtimali var mıdır?


Sıkıntı ihtimallerinden birini Özay yaşadı işte. Os1.3'te çalışmadı. Çünkü ADE'deki libnix daha yüksek dos.library bağımlı.
Logged

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


Commodore Forever


Üyelik Bilgileri WWW
« Yanıtla #41 : Kasım 29, 2016, 11:11:15 ÖÖ »

Son durum:

* indirdiğim SASC paketi çalışıyor ancak makefile'da belirttiğim isim yerine main isimli bir executable oluşturuyor, çok da sorun değil.

* PCH uzantılı Y2K patch'i varmış nasıl uygulayacağımı bulamadım.

* Ufak bir hileyle printf dahil stdlib komutlarından kurtuldum ve executable boyutunu 4K altına indirdim. Şöyle ki printf komutu ile yazdırdığım metinleri Execute() ile Echo komutunu haricen kullanarak hallediyorum. Bir tek "Unable to open dos.library" mesajını iptal ettim, Execute() komutu dos.library'e bağımlı mı bilmiyorum gerçi ama garantiye aldım işi. Kahkaha
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
emarti
Uzman
*****
Mesaj Sayısı: 2.600


Only Amiga Makes It Possible █


Üyelik Bilgileri WWW
« Yanıtla #42 : Kasım 29, 2016, 11:30:12 ÖÖ »

Kod:
FILE *dosya;
dosya = fopen("dosyaismi","r");
gibi kullanıyorum. C'de birlik yok
Amiga'da program yazarken fopen(), malloc() vs. vs. gibi standart kütüphane fonksiyonlarından kaçınmalıyız arkadaşlar.

Bu programımızı ya ixemul.library bağımlı kılar veya derlerken libnix ile linklenmek zorunda bırakır (dosya boyutu büyür).

Mümkün olduğunca (ki pek çok şey mümkün) AmigaOS API'sindeki fonksiyonları kullanmalıyız. Bu fonksiyonlar ve kullanımları için aşağıdaki kitaptan:
Amiga ROM Kernel Reference Manual : Libraries
...ya da çevrimiçi referans tercih ediyorak şu siteden:
http://amigadev.elowar.com/
...faydalanabiliriz.

@Alpyre abi ADE kullanarak fopen, fputs gibi fonksiyonları hatta derlemede -noixemul kullanmıştım. Programın çalışmasında bir sıkıntı olmamıştı. Boyutsal büyüklük dışında bir sıkıntı yaratma ihtimali var mıdır?


Sıkıntı ihtimallerinden birini Özay yaşadı işte. Os1.3'te çalışmadı. Çünkü ADE'deki libnix daha yüksek dos.library bağımlı.


ADE mimari olarak 3.1 ve yukarısını istiyor haklısın
Logged

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

READY.
SYS(64767): EMARTI
Simon (Özay Turay)
Yönetici
*****
Mesaj Sayısı: 7.757


Commodore Forever


Üyelik Bilgileri WWW
« Yanıtla #43 : Kasım 29, 2016, 11:54:15 ÖÖ »

OS1.3'de denedim çalıştı.

Şimdi denedim ve dediğin gibi çalışıyor. Bir tek Assign komutunu debug amaçlı Echo Assign yapmıştım onu düzeltmek için yeniden derlemem lazım. SAS/C'yi buradan indirsek işimizi görür mü?

Edit: Şimdi farkettim MultiBoot Assign SYS: KS13OSDrawer komutu 1.3 ROM'da ekrana Assign SYS: DH0:Workbench1.3 (Assign yerine Echo Assign yüzünden) yazdırması gerekirken hiçbir şey yazdırmıyor. Diğer ROM'lar ile beklendiği gibi çalışıyor.

Bu konuda yorum alabilir miyim? Execute komutunda sorun yok çünkü
Kod:
MultiBoot Echo "** Preparing" KS13OSLabel ""
sorunsuz çalışıyor. En sonunda hardcoded scripte döneceğim galiba.
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 #44 : Kasım 29, 2016, 12:03:35 ÖS »

* indirdiğim SASC paketi çalışıyor ancak makefile'da belirttiğim isim yerine main isimli bir executable oluşturuyor, çok da sorun değil.

ADE'de kullandığın makefile'ı kullanırsan öyle olur tabi.
Gönderdiğim arşivde SAS/C için uygun makefile vardı oysa ki.

* PCH uzantılı Y2K patch'i varmış nasıl uygulayacağımı bulamadım.

Yanlış hatırlamıyorsam SAS/C yamaları için (sc/c içinde) spatch diye bir komut olacak.
Y2K yamasını şu satırla yapabilirsin diye umut ediyorum:
Kod:
spatch -o sc:libs/sc1.library -p sc1.library.pch

* Ufak bir hileyle printf dahil stdlib komutlarından kurtuldum ve executable boyutunu 4K altına indirdim. Şöyle ki printf komutu ile yazdırdığım metinleri Execute() ile Echo komutunu haricen kullanarak hallediyorum. Bir tek "Unable to open dos.library" mesajını iptal ettim, Execute() komutu dos.library'e bağımlı mı bilmiyorum gerçi ama garantiye aldım işi. Kahkaha
Execute() fonksiyonu tabii ki de dos.library'ye bağımlı.
Logged

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