Menù principale
 Notizie
 Grafica
 Forum
 Links
 Retro Trailer
 Recensioni
 Modelli Amiga
 Storia Amiga
 Retro-Gamers
 Lista Utenti
 Contatti
 Policy sito
Ricerca Google

Login

Nick


Password


01 Agosto 2009 Postato da: schiumacal
AROS, MorphOS, ecc, e la compatibilita' delle librerie API...
Domandina semplice, semplice...

Considerato che ho poco tempo per provare sempre nuove cose, e per questo chiedo scusa per la semplicita' della domanda, ma credo sia interessante...

DOMANDA:

Si dice spesso che gli O.S. Amiga-like sono compatibili a livello di API con lo stesso Workbench3.9, oppure con lo stesso AmigaOS4.x.
Allora mi chiedo, se ad esempio carico il CD di PersonalPaint7, oppure altro tipo di prg. sempre da CD, funziona, poi, sul sistema dove lo carico ?

Es.: se carico ParsonalPaint7 su AROS, funziona ?

Porto giusto l'esempio di PersonalPaint7 perche' mi sembra sia uno di quei prg. che sono compatibili a livello di librerie, se poi c'e' qualca altro cosa, meglio ancora.

Buona Domenica a tutti.
Commenti: 12  Aggiungi  - Leggi

Indice: forum / Software Amiga in generale


Il Webmaster

Post inviati: 4736

Visulizza profilo Messaggio Personale
79.40.30.*** Mozilla/5.0 (Windows; U; Windows NT 5.1; it; rv:1.9.1.1) Gecko/20090715 Firefox/3.5.1
Commento 1
Mak73 2 Agosto 2009    00:23:59

No, non funziona, e nemmeno non c'è nessuna compatibilità a livello di API.

PersonalPaint7 su AOS4 come su MOS o su AROS funziona solo in Emulazione, su AOS4 penso possa usare Petunia, l'emulatore 68k di AOS4, mentre su MOS c'è Trance, che è la stessa cosa di Petunia, su AROS c'è un bounty su cui si sta lavorando per integrare UAE a livello tale che basterà cliccare sui programmi 68k per farli partire in una loro finestra in emulazione in modo trasparente all'utente, come accade ora con Petunia e Trance su AOS4 e MOS.


Vado OT, ma se ti piace tanto PersonalPaint7 puoi provare Grafx2 che assomiglia molto a PP7 ed è disponibile per molti OS... ovviamente è Open-source


Pace e bene a tutti.

Post inviati: 1986

Visulizza profilo Messaggio Personale
151.82.19.*** Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1; Trident/4.0; GTB0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; InfoPath.2; OfficeLiveConnector.1.4; OfficeLivePatch.1.3)
Commento 2
schiumacal 2 Agosto 2009    23:13:49

Grazie Mak...

No PPaint7 mi piace poco, diversamente da quanto si puo' pensare.
Era solo un esempio fatto per capire cosa s'intende quando molti dicono la compatibilita' a livello di API.

Ma a quanto pare questa compatibilita' non esiste.
ciao.


Un giorno o l'altro risolverò equazioni di grado superiore a cinque.



http://www.schiumacal.altervista.org/

Pegasus RyuSei Ken

Post inviati: 10185

Visulizza profilo Messaggio Personale
79.50.122.*** Mozilla/5.0 (Windows; U; Windows NT 6.0; it; rv:1.9.1.1) Gecko/20090715 Firefox/3.5.1 (.NET CLR 3.5.30729)
Commento 3
Seiya 2 Agosto 2009    23:51:55


AmigaOS4 e MOS sono partiti dalla stessa sorgente, cioè AmigaOS 3.1
AROS invce ha portato le api AmigaOS su x86

ovvio che che se vuoi PP7 "nativo" su AROS, va ricompilato per AROS
Altrimenti gira tramite UAE integrato, anche se va ancora un poco migliorato.

E dipende ancora dalle rom amiga che sono a parte
Quindi o le hai tu grabbate da un vero amiga o le acquisti tramite amigaforever.

Post inviati: 1986

Visulizza profilo Messaggio Personale
151.82.19.*** Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1; Trident/4.0; GTB0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; InfoPath.2; OfficeLiveConnector.1.4; OfficeLivePatch.1.3)
Commento 4
schiumacal 3 Agosto 2009    00:48:27

O.K.

L'esempio di PPaint7, ripeto, era solo un esempio...
... a me interessava sapere cosa s'intedesse realmente per compatibilita' a livello di API.
Pensavo che significasse, molto semplicemente, che se un programma come PPaint7, ma potevo fare l'esempio con qualche altro tipo di prg...,
che funziona facendo chiamate esclusivamente alle librerie originali di Amiga, potesse funzionare anche su altri OS Amiga-like che erano compatibili API.

Allora non capisco per quale motivo se si ricompilasse PPaint7 su AROS tutto funziona a meraviglia, o su AmigaOS4.x, o su MorphOS, dicevo, perche' la Cloanto non l'ha fatto???

Avrebbe avuto maggiore probabilita' di continuita' del suo software. O no???


Un giorno o l'altro risolverò equazioni di grado superiore a cinque.



http://www.schiumacal.altervista.org/

Gabriele

Post inviati: 1608

Visulizza profilo Messaggio Personale
151.48.52.*** Mozilla/5.0 (Windows; U; Windows NT 6.0; it; rv:1.9.1.1) Gecko/20090715 Firefox/3.5.1
Commento 5
Gabriele 3 Agosto 2009    04:39:52

API significa Application Program Interface.
In breve io posso fare un programma che si interfaccia con una o piu' librerie usando un insieme di chiamate a funzioni denominato appunto API. L'eventuale compatibilita' a livello di API di AROS, OS4 e MOS rispetto a OS3.1 significherebbe (*) che un programma potrebbe essere compilato per girare su tutti e tre con poche modifiche.
La compatibilita' API non implica invece la compatibilita' binaria.

(*) onestamente non so quale sia il grado di compatibilita' delle API di questi OS e l'ora mi demotiva dal cercarlo, scusa
Shinky e gli altri programmatori su OS4 sapranno risponderti meglio.

Spero comunque d'esserti stato utile.

Post inviati: 1986

Visulizza profilo Messaggio Personale
151.33.40.*** Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.1; Trident/4.0; GTB6; InfoPath.2; .NET CLR 2.0.50727)
Commento 6
schiumacal 3 Agosto 2009    12:05:44

YESSSS !!!


Un giorno o l'altro risolverò equazioni di grado superiore a cinque.



http://www.schiumacal.altervista.org/

Post inviati: 406

Visulizza profilo Messaggio Personale
74.212.136.*** Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9.0.12) Gecko/2009070611 Firefox/3.0.12
Commento 7
saimon69 3 Agosto 2009    19:51:29

Compatibilita' a livello di API significa proprio che un programma, se scritto rispettando le API del sistema operativo, una volta ricompilato su AROS dovrebbe funzionare normalmente.

Quindi si, se Cloanto ricompilasse i suoi programmi sotto AROS questi sicuramente funzionerebbero regolarmente, tranne alcune modifichine necessarie per ad esempio funzioni non supportate ancora o alcune gestite in maniera diversa; parti in assembler devono invece essere riscritte in C.

Se finora Cloanto non ha ricompilato le sue applicazioni in AROS penso sia perche' AROS al momento della migrazione (1997/98) non aveva ancora raggiunto una maturita' tale da poter essere definito piattaforma viabile, e ultimamente cloanto pare aver cambiato il suo core business da sviluppatore di applicativi a fornitore di ambienti di emulazione, quindi probabilmante considera lo sviluppo degli applicativi Amiga su AROS senza adeguato ritorno economico, almeno per ora; inoltre Morphos e Amiga OS 4 sono compatibili con software Amiga OS quindi non e' necessario ricomplilare; tutto ritorna sempre al fattore ROI.

Diverso il discorso per AROS 68k: nel suo concept era prevista anche la compatibilita' a livello binario con applicazioni Amiga OS ma, essendo AROS 68k nel limbo finora tranne una reimplementazione hosted (AfAos) non so come le cose stiano andando.

Magari se la scrivi tu una applicazioncina fatta bene per il superenalotto e simili - non so se ci sono equivalenti in win - e la rilasci solo per gli amiga os compatibili - potresti far riguadagnare un po' di share ad AROS (nativo ed in macchina virtuale) e agli amiga os.

Simone "saimon69" Bernacchia

Ultima modifica avvenuta il 03/08/2009 alle ore 20:21:30


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

https://www.youtube.com/c/jmdamigamusic/ - youtube

https://jmdamigamusic.bandcamp.com/ - bandcamp store

http://scarabocchibinari.ilcannocchiale.it - mio blog online

http://binarydoodles.wordpress.com - blog in inglese

Post inviati: 406

Visulizza profilo Messaggio Personale
74.212.136.*** Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9.0.12) Gecko/2009070611 Firefox/3.0.12
Commento 8
saimon69 3 Agosto 2009    20:03:58

e lasciami aggiungere:

al momento il programma di riferimento per superenalotto pare (dico pare essendo io all'estero da diverso tempo) essere questo qui:
http://www.softwarelotto.com/

magari se fai qualcosa di paragonabile come prestazioni e lo rilasci come shareware a un costo ridotto (questo viene sui 50 eurozzi) penso ti guadagnerai un discreto numero di aficionados

La guida di ShInkUrO la trovi qui:
http://code.google.com/p/guidetoamigacompatiblepro gramming/

sia in italiano che in inglese.

Simone "saimon69" Bernacchia

Ultima modifica avvenuta il 03/08/2009 alle ore 20:10:47


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

https://www.youtube.com/c/jmdamigamusic/ - youtube

https://jmdamigamusic.bandcamp.com/ - bandcamp store

http://scarabocchibinari.ilcannocchiale.it - mio blog online

http://binarydoodles.wordpress.com - blog in inglese

Corri veloce Regina delle corse!!

Post inviati: 243

Visulizza profilo Messaggio Personale
151.60.172.*** Mozilla/5.0 (compatible; Origyn Web Browser; AmigaOS 4.1; U; en) AppleWebKit/531.0+ (KHTML, like Gecko, Safari/531.0+)
Commento 9
ShInKurO 4 Agosto 2009    10:16:10

Citazione

(*) onestamente non so quale sia il grado di compatibilita' delle API di questi OS e l'ora mi demotiva dal cercarlo, scusa
Shinky e gli altri programmatori su OS4 sapranno risponderti meglio.


Se uno programma seguendo quello che ho scritto io non ha molti problemi di compatibilità... ovvio che ci saranno piccole differenze da un OS all'altro, e più si scende a basso livello più queste differenze diventano enormi. Se per esempio si usa GadTools al posto di MUI ho visto che i risultati di rendering del testo su una finestra possono cambiare da OS a OS. Per non parlare delle incompatibilità che ci sono tra le diverse revisioni di Reaction, roba che non ci sta nemmeno tra le diverse versioni di MUI.
L'unica vera incompatibilità che non ho potuto aggirare fin'ora è stato il d&d con contextmenu attivi e lunghe catene di notifiche su MUI3.9 su MorphOS1.4, ma questo dipende dal fatto che MUI3.9 di MOS è mooolto vecchia e buggata quindi immagino che abbia problemi di sincronizzazione e relativi puntatori nulli. Per le cose normali comunque funziona anche quella.

La compatibilità di OS4 con le API del 3.1 viene sempre meno, per esempio tutte le vecchie funzioni per l'analisi dei file di AmigaDOS che si usavano con il 3.1 sono adesso deprecate in favore di nuove funzioni che supportano i 64bit.
Inoltre si sconsiglia l'uso di alcuni metodi per l'allocazione di strutture di sistema (liste, nodi, porte, messaggi, strutture dos) sebbene si possano ancora utilizzare su OS4 (non sono ancora deprecate ufficialmente), questo perchè ci sono nuovi metodi più pratici che permettono inoltre di avere il tracciamento delle risorse (ed è ovvio che uno li usa proprio per questo). Usando i nuovi metodi e settando un tag particolare, ExecSG tiene traccia di tutte le allocazioni in relazione ai task, AmigaDOS tiene traccia delle parentele tra i processi (se si utilizzano i nuovi tag di CreateNewProc()).
AmigaDOS di OS4 è un ottimo lavoro e continua a evolversi, come del resto Intuition del nostro max.
ExecSG del 4.1 implementa la memoria virtuale attraverso paginazione, e tutte le vecchie funzioni di allocazione fanno capo alle nuove, questo significa che un AllocMem()/FreeMem() fatto male non porta a nessun crash, mentre su OS3.1/MorphOS/AROS si ha subito un danneggiamento della memoria altrui.
Questo significa che anche delle allocazioni/deallocazioni sbagliate su OS4 vengono "corrette" a livello di kernel, mentre provocano problemi sugli altri Amiga OS, e questo è un problema quando si scrive un'applicazione multiplatform partendo da un sorgente OS4.


Il resource tracking di MorphOS invece è limitato, al momento permette solamente di avere un tracciamento della memoria allocata a livello di processo, dunque il kernel di MorphOS se qualcosa crasha e la relativa memoria è stata allocata agganciandola precedentemente al processo che è andato in crash è possibile che venga rilasciata. Tuttavia tutte le strutture condivise (liste, nodi, porte, messaggi, strutture dos) non possono venire allocate in questo modo, dunque questa soluzione lascia il tempo che trova...
La cosa carina che c'è su MorphOS è sicuramente quella di lasciare gestire al sistema stesso la porta di risposta di un processo, è una cosa comodissima. Chissà perchè non l'hanno implementata su AmigaDOS di OS4...
Per il resto la compatibilità con le API del 3.1 è mantenuta... ma questo anche perchè non ci sono grosse migliorie a livello di AmigaDOS e Intuition, le parti dell'UI sono demandate a MUI (il che col senno di poi non è nemmeno una cattiva idea...).
Certo, c'è sempre da dire che il MOS team non documenta per nulla le API nuove, quindi magari esistono chissà quali migliorie che però sono rimaste in loco.

AROS è un buco...ehm, vabbè, ci siamo capiti
AROS mantiene IN TEORIA la compatibilità migliore con le API del 3.1, ma questo semplicemente perchè non hanno avuto nemmeno il tempo di finire AROS, figuriamoci a migliorare cose com Intuition, AmigaDOS ed Exec. Nella pratica ogni funzione ha un buco inimmaginabile pronto per essere scoperto dal programmatore di turno. Del resto è una cosa normalissima, se 10 anni fa tutti gli amighisti fossero passati ad AROS questo lento processo d'identificazione dei bug ed eventuale fix sarebbe già stato affrontato.


In sostanza ribadisco che se uno segue la mia guida i problemi che si possono incontrare non sono moltissimi. Da sottolineare anche il modo di programmare di una persona, se uno scrive male è ovvio che poi sarà complicato mantenere un software. Scrivere software portabile a priori prevede l'utilizzo di una programmazione ponderata.
Non è facile prendere un programma nato per OS3 e renderlo portabile (i programmi Cloanto per esempio).
Ne sa qualcosa Andrea Palmatè con NewsCoaster, che non è proprio scritto bene (ed è scritto in C++ con MUI, quindi un linguaggio OOP con delle API OOP, ma se uno scrive male si ottengono sempre delle porcherie, e chi ci sta rimettendo siamo noi "novelli programmatori Amiga")... ma anche Yam, ad esempio, ha subito numerosissimi cambiamenti prima di renderlo portabile, adesso anche su AROS.

Su OS3 si usavano molte chiamate in assembly, e tutti gli hook e dispatcher avevano dichiarazioni in assembly, inoltre se un programma è stato mantenuto per molto tempo su OS3 è inevitabile che si facciano assunzioni su come lavorino al loro interno le funzioni di sistema, distruggendo il concetto di information hiding e rendendo tutto dipendente da OS3. Già c'erano incompatibilità ai tempi del passaggio 3.1 -> 3.5+ per questi motivi. Era normale a quei tempi programmare in questo modo perchè così si rendevano i programmi più veloci. Chi non seguiva questa prassi veniva bollato come programma cattivo, lento e consuma risorse (vedi MUI), mentre la programmazione più corretta è proprio quella che segue le documentazioni delle API senza fare particolari assunzioni.

Più che compatibilità verso il basso io parlerei di programmazione intelligente e pulita. Se uno scrive in modo pulito e seguendo le regole allora si ottiene un programma portabile, altrimenti.... e non erano molti i programmatori OS3 che seguivano le regole ai tempi del 3.1...

Ultima modifica avvenuta il 04/08/2009 alle ore 10:38:31


Ciao da ShInKurO!



http://shinkuro.amiga.it

Post inviati: 1986

Visulizza profilo Messaggio Personale
151.33.44.*** Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.1; Trident/4.0; GTB6; InfoPath.2; .NET CLR 2.0.50727)
Commento 10
schiumacal 4 Agosto 2009    11:01:36

Beh! Devo dire che le cose sono abbastanza complesse quando si parla di portabilita' di un programma da un OS ad un altro... anche quando parliamo di OS che, in teoria, dovrebbero risultare compatibili a livello di librerie.

In effetti la mia domanda voleva essere mirata su un argomento particolare, e cioe':

DOMANDA
----------
Dovendo, io, riprendere a programmare, considerando che ormai sono circa 11/12 anni che non lavoro piu' in questo settore, sarei interessato a lavorare con un linguaggio di programmazione che mi dia la facilita' massima per poter, eventualmente, rendere portabile il software che produco, non solo da un OS ad un altro, ma principalmente vorrei poter realizzare dei progetti che, una volta terminati, mi funzionassero, senza complicazioni varie, su: AmigaOS 4.x, MorphOS, AROS, OS dei melafonini Apple IPhone 3GS, Linux, ed altri sistemi alternativi di questo tipo.

Ora, con una valutazione fatta da un po' di tempo, mi rendo conto che l'unico linguaggio su cui ci si dovrebbe dedicare, sarebbe il C++, e da qui sono arrivato alla conclusione che con il GCC le cose si facilitano non poco, direi.
Tranne che per IPhone 3GS che utilizza un suo linguaggio interno, ma che comunque, risulta mooolto simile al C++.

Ed ecco il perche' della domanda.
--------------------------------
Sarei, seriamente, interessato all' apertura di una piccola software house specializzata nella realizzazione di programmi per OS alternativi, per OS alternativi intendo tutti quegli OS che non siano Windows o MacOSX, senza che vengano chiuse le porte anche a questi ultimi due, comunque.

Da qui, trovare per me una soluzione di quale linguaggio di programmazione utilizzare, diventa importante.

Un' ultima cosa:
---------------
Diciamo che per il momento ho disponibilita' immediata di WinUAE ed AmigaOS3.9.
Posso iniziare su un sistema del genere con il GCC ?
E se la risposta e' affermativa, come iniziare ? Cioe' dove trovo l' ultima versione di GCC, comprensiva di compilatore ed editor per lavorare proficuamente, considerando che tutto quello che realizzo dovrebbe poi essere portabile su AmigaOS4.x nel momento in cui passero' a tale sistema ?
Qualche manuale, o libro in lingua italiana, che sia facile da capire e che mi permetta di poter lavorare su AmigaOS, esiste ?

Questo e' quanto. Grazie.


Un giorno o l'altro risolverò equazioni di grado superiore a cinque.



http://www.schiumacal.altervista.org/

Corri veloce Regina delle corse!!

Post inviati: 243

Visulizza profilo Messaggio Personale
151.60.172.*** Mozilla/5.0 (compatible; Origyn Web Browser; AmigaOS 4.1; U; en) AppleWebKit/531.0+ (KHTML, like Gecko, Safari/531.0+)
Commento 11
ShInKurO 4 Agosto 2009    12:08:45

Citazione

Ora, con una valutazione fatta da un po' di tempo, mi rendo conto che l'unico linguaggio su cui ci si dovrebbe dedicare, sarebbe il C++, e da qui sono arrivato alla conclusione che con il GCC le cose si facilitano non poco, direi.
Tranne che per IPhone 3GS che utilizza un suo linguaggio interno, ma che comunque, risulta mooolto simile al C++.


Il C/C++ non ti dà alcuna API per le interfacce utente, quelle cambiano da sistema a sistema. Su OSX si usa Cocoa, sugli AmigaOS si usa MUI o Reaction, su Windows si usa MFC, su Linux le GTK o QT, e cosivvia... sistema che vai, API che trovi.

Citazione

Diciamo che per il momento ho disponibilita' immediata di WinUAE ed AmigaOS3.9.
Posso iniziare su un sistema del genere con il GCC ?


Si

Citazione

E se la risposta e' affermativa, come iniziare ? Cioe' dove trovo l' ultima versione di GCC


Ti conviene crosscompilare su Windows con AmiDevCPP:

http://amidevcpp.amiga-world.de/aboutamidevcpp.php ?HR_LANG=english

Puoi anche usare una mia distro di GCC, ma non supporta il C++.

Citazione

, comprensiva di compilatore ed editor per lavorare proficuamente,


L'unico editor serio su AmigaOS è CubicIDE:

http://devplex.awardspace.biz/

Ed è a pagamento, quindi per iniziare è meglio che usi AmiDevCPP o accontentarti di un editor tra quelli che consiglio io nella mia guida.

Citazione

considerando che tutto quello che realizzo dovrebbe poi essere portabile su AmigaOS4.x nel momento in cui passero' a tale sistema ?


Si, se segui la mia guida...

Citazione

Qualche manuale, o libro in lingua italiana, che sia facile da capire e che mi permetta di poter lavorare su AmigaOS, esiste ?


La mia guida e gli articoli di amigamagazine insieme alla guida di Carolfi. Prima inizia con la mia guida, poi se vuoi approfondire passa alla guida di Carolfi, poi cerca tra gli articoli di AmigaMagazine e infine vai a consultare i Rom Kernel Manuals. Ovviamente la documentazione delle API è in inglese...

Ultima modifica avvenuta il 04/08/2009 alle ore 12:09:47


Ciao da ShInKurO!



http://shinkuro.amiga.it

Post inviati: 1986

Visulizza profilo Messaggio Personale
151.82.11.*** Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1; Trident/4.0; GTB0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; InfoPath.2; OfficeLiveConnector.1.4; OfficeLivePatch.1.3)
Commento 12
schiumacal 5 Agosto 2009    00:37:56

Prima ringrazio tutti.

Poi un grazie a shinkuro, non sapevo di AmiDevCPP, che sto studiando proprio ora.
Se dovessi aver bisogno di un qualche aiuto... e' tutto molto interessante.


Un giorno o l'altro risolverò equazioni di grado superiore a cinque.



http://www.schiumacal.altervista.org/


Utenti Online
Utenti registrati: 1206 dal 1 Gennaio 2006
di cui online: 1 registrati - amiga1200 -
111 non registrati

Benvenuto all'ultimo utente registrato: zulu

Buon Compleanno a Yuppis Revange - jpp - pocketclouds - 

© Amigapage 1998 - 2007 - Sito italiano dedicato alla piattaforma Amiga ed evoluzioni varie.
Struttura del sito interamente ideata e realizzata da Marco Lovera e Alessandra Lovera - Tutto il materiale inserito all'interno del sito è dei rispettivi autori/creatori.
E' assolutamente vietata la riproduzione o la manipolazione di tutti i contenuti o parte di essi senza l'esplicito consenso degli amministratori e degli autori/creatori.

Eseguito in 0.10435199737549 secondi