OS4 DepotLogo by mason 
(anonymous IP: 18.118.33.255,2270) 
 HomeRecentStatsSearchSubmitUploadsMirrorsContactInfoDisclaimerConfigAdmin
 Menu

 Features
   Crashlogs
   Bug tracker
   Locale browser
 

 Categories

   o Audio (343)
   o Datatype (51)
   o Demo (204)
   o Development (603)
   o Document (24)
   o Driver (98)
   o Emulation (149)
   o Game (1017)
   o Graphics (502)
   o Library (118)
   o Network (234)
   o Office (67)
   o Utility (932)
   o Video (69)

Total files: 4411

Full index file
Recent index file

 Links

  Amigans.net
  Aminet
  IntuitionBase
  Hyperion Entertainment
  A-Eon
  Amiga Future


Support the site


 Readme for:  Network » Chat » amigagpt.lha

AmigaGPT

Description: App for chatting to ChatGPT
Download: amigagpt.lha       (TIPS: Use the right click menu if your browser takes you back here all the time)
Size: 2Mb
Version: 2.2.0
Date: 04 Jan 2025
Author: Cameron Armstrong (Nightfox)
Submitter: Samir Hawamdeh
Homepage: https://github.com/sacredbanana/AmigaGPT
Requirements: AmigaOS 4.x + MUI + AmiSSL 5.18 or higher
Category: network/chat
Replaces: network/chat/amigagpt.lha
License: Other
Distribute: yes
Min OS Version: 4.1
FileID: 13171
 
Videos:
Comments: 1
Snapshots: 0
Videos: 1
Downloads: 30  (Current version)
1166  (Accumulated)
Votes: 3 (0/0)  (30 days/7 days)

Show comments Show snapshots Show videos Show content Show crashlogs Replace file 
AmigaGPT is a versatile ChatGPT client for AmigaOS 3.x, 4.1 and MorphOS.
This powerful tool brings the capabilities of OpenAI’s GPT to your Amiga
system, enabling text generation, question answering, and creative exploration. 
AmigaGPT can also generate stunning images using DALL-E and includes support for
speech output, making it easier than ever to interact with AI on your Amiga. 
Designed to integrate seamlessly with your system, AmigaGPT delivers modern AI
technology while embracing the timeless Amiga
experience.

Features:
- Generates text based on input prompts
- Generates images based on input prompts
- UI customisation
- Full conversation history
- Text-to-speech

Requirements:
- OCS/ECS/AGA Amiga or a PowerPC machine capable of running MorphOS
- MUI 3 minimum; MUI 5 recommended for all features
- Motorola 68020 or higher CPU or PPC for AmigaOS 4/MorphOS
- For AmigaOS 3.x & 4.x, AmiSSL 5.18 or higher
  (https://aminet.net/package/util/libs/AmiSSL-v5-OS3) for OS3 and

(https://aminet.net/package/util/libs/AmiSSL-v5-OS4) for OS4
- Internet access using a TCP/IP stack such as Roadshow 
(http://roadshow.apc-tcp.de/index-en.php)
- MUI 3 minimum but MUI 5 recommended for all features
  (https://github.com/amiga-mui/muidev/releases)
- MCC_Guigfx MUI custom class for displaying images
  (http://aminet.net/package/dev/mui/MCC_Guigfx)
- MCC_NList MUI custom class for lists
  (http://aminet.net/package/dev/mui/MCC_NList-0.128)
- codesets.library 6.22 or higher

(http://aminet.net/package/util/libs/codesets-6.22)
- An active OpenAI API key
- For speech on AmigaOS 3.x, any version of narrator.device
- For speech on AmigaOS 4.x, Flite Device
 (http://aminet.net/package/mus/misc/flite_device)
 - For OpenAI speech, AHI is required
 (http://aminet.net/package/driver/audio/ahiusr_4.18)

Installation:
1. Install AmiSSL and a TCP/IP stack if not already done so
2. Download and install MUI. Version 5 recommended, version 3 minimum. Reboot.
3. Download and install MCC_Guigfx, MCC_NList and codesets.library.
4. Download the latest release of AmigaGPT.
5. Extract the `amigagpt.lha` archive to your desired location.

Optional steps to enable speech functionality:
AmigaGPT supports reading the output aloud. How AmigaGPT does this depends on
whether you are using AmigaOS 3.x or 4.x. Or for OpenAI voices, this works on
every system.

Installing AHI for OpenAI voices:

If your OS does not come with AHI installed, you can get it from
 https://aminet.net/package/driver/audio/ahiusr_4.18

AmigaOS 3.x:

Speech on AmigaOS 3 requires a file called `narrator.device` which cannot be
included with AmigaGPT because it is still under copyright. 
Therefore, you must copy this file legally from yourWorkbench disks so that
AmigaGPT will be able to synthesise speech. There are 2 versions of
`narrator.device` supported, v34 and v37. 

v34 is the original version that came with Workbench 1.x. 
v37 was an updated version included with Workbench 2.0.x. 
It has more features and sounds more natural, however it does sound quite
different which is why AmigaGPT supports you installing both versions and your
choice of version to be used can be selected in the Speech menu in the app.

Regardless of which version of `narrator.device` you choose to install
(or both), AmigaGPT requires that you install the free third party
`translator.library` v43. This works with both versions of `narrator.device`.

Installing `translator.library` v43:
Since `translator.library` v43 is not available as a standalone install, you
will need to install v42 and then patch it to v43.
* Download http://aminet.net/util/libs/translator42.lha and extract the
archive to any convenient location on your Amiga such as `RAM:`
* Navigate to that directory and double click the `Install` program
* Run the installer using all the default settings
* Download http://aminet.net/util/libs/Tran43pch.lha and once again extract it
 to a location of your choice
* Navigate to that directory and double click the `Install` program
* Run the installer using all the default settings
* Reboot your Amiga - It will not work until the system is restarted

Installing `narrator.device` v34:
* Insert your Workbench 1.x disk and copy `df0:devs/narrator.device` to
 `{AmigaGPTProgramDirectory}/devs/speech/34`

Installing `narrator.device` v37
* Insert your Workbench 2.0.x (you cannot use 2.1 because the speech libraries
 were removed after version 2.0.4) disk and copy `df0:devs/narrator.device` to
`{AmigaGPTProgramDirectory}/devs/speech/37`

AmigaOS 4.x:

Speech on AmigaOS 4.x is done with the help of Flite Device.

- Download Flite Device from http://aminet.net/package/mus/misc/flite_device
- Extract the archive and run the installer

Launching AmigaGPT:
* Launch the application by double-clicking the AmigaGPT icon correspondant to
 the OS you are running
* You may also launch the app in the command line but before you do, run the
 command `STACK 32768` to give the program 32kb of stack since the default
 stack size for apps launched from the shell is 4kb and this is not enough for
 AmigaGPT and will cause random crashes due to stack overflow. This is not
 required when you launch the app by double clicking the icon since the stack
 size is saved in the icon.

Usage:
When launched, AmigaGPT presents you with a choice of opening the app in a new
screen or opening in Workbench. 
If you open in a new screen you have the ability to create a screen for the app
to open in. 
AmigaGPT supports anything from 320x200 all the way up to 4k resolution if using
a video card for RTG.
Bear in mind text will appear very tiny in resolutions above 1080p so you may
want to increase the font size settings from the MUI settings in the View menu
when the app opens.

When launching for the first time you will need to enter your OpenAI API key
before you can start chatting. If you haven't already done so, create an OpenAI
account and navigate to https://platform.openai.com/account/api-keys to generate
an API key for use with AmigaGPT.

*Chat*

When the app has opened, you are presented with a text input box. You can type
any prompt into this box and press "Send" to see the GPT-4 model's response.
The generated text appears in the box above the input. 
You can choose to have this text read aloud using the "Speech" menu option. 
You can also select which model for OpenAI to use in the "OpenAI" menu option.

To the left of the chat box is a conversation list which you can use to go to
another saved conversation. 
New conversations can be created with the "New chat" button and conversations
can be removed with the "Delete chat" button.

There are 2 main modes of operation: Chat and Image Generation. 
You can switch between them via the tabs in the top left corner.

*Image Generation*

To generate images, simply select your desired image generation model from the
"OpenAI" menu then type your prompt in the text box then hit the "Create Image"
button. 
When it has been downloaded to your Amiga, you are then able to open the image
to your desired scale, or save a copy of the file to a new location on your
Amiga. 
Do note however that AmigaGPT will automatically save all your generated images
until you delete them. 
This is just in case you would like to create a copy elsewhere.

*General*

In the "Edit" menu, you'll find basic text editing commands like Cut, Copy,
Paste and Clear. 
The "View" menu allows you to change the font used in the chat and the UI.

The "Project" menu includes an "About" option, which displays information about
the program.

The "Connection" menu allows you to connect via a proxy server. 
It supports both HTTP and HTTPS proxy servers but if you use an unecrypted HTTP
proxy
server you can improve the performance of AmigaGPT by removing the need for the
encryption of the OpenAI traffic to be done on the system running AmigaGPT.
For an easy proxy server you can run on your local network you can try out
https://mitmproxy.org

Developing:
Source code hosted at https://github.com/sacredbanana/AmigaGPT
You can either compile the code natively or with the Docker container.


AmigaGPT - 2025-01-04T141014.515.readme.txt
Choose ThumbnailUpgrade

Static
Animation
 
Trim your video using the handles and Split button. Merge with other videos by
clicking the Add Clip button. 

View help article
 Edit Captions

 Engagement Insights

Video Views
0
Video Downloads
0
Call-to-Action Clicks 
0
Average Completion Rate 
0%
viewers


Someone from Pakistan desktop
Apr 14, 2021

Someone from Pakistan desktop
Apr 14, 2021

Someone from Pakistan desktop
Apr 14, 2021
 Transcription

Engagement Insights

0 Comments

Leave a comment
Short: App for chatting to ChatGPT
Kurz: App zum Chatten mit ChatGPT
Author: Cameron Armstrong (Nightfox) <cameronscottarmstrong()gmail.com>
Uploader: Cameron Armstrong (Nightfox)  <cameronscottarmstrong()gmail.com>
Type: util/misc
Version: 2.2.0
Architecture: m68k-amigaos >= 3.1; ppc-amigaos; ppc-morphos
Requires: AmigaOS 3.1+/68020+ util/libs/AmiSSL-v5-OS3.lha MUI
Replaces: util/misc/AmigaGPT.lha

AmigaGPT is a versatile ChatGPT client for AmigaOS 3.x, 4.1 and MorphOS.
This powerful tool brings the capabilities of OpenAI&#8217;s GPT to your Amiga
system, enabling text generation, question answering, and creative
 exploration. AmigaGPT can also generate stunning images using DALL-E and
includes support for speech output, making it easier than ever to interact
with AI on your Amiga. Designed to integrate seamlessly with your system,
AmigaGPT delivers modern AI technology while embracing the timeless Amiga
experience.

Features:
- Generates text based on input prompts
- Generates images based on input prompts
- UI customisation
- Full conversation history
- Text-to-speech

Requirements:
- OCS/ECS/AGA Amiga or a PowerPC machine capable of running MorphOS
- MUI 3 minimum; MUI 5 recommended for all features
- Motorola 68020 or higher CPU or PPC for AmigaOS 4/MorphOS
- For AmigaOS 3 & 4, AmiSSL 5.18 or higher
  (https://aminet.net/package/util/libs/AmiSSL-v5-OS3) for OS3 and
  (https://aminet.net/package/util/libs/AmiSSL-v5-OS4) for OS4
- Internet access using a TCP/IP stack such as Roadshow 
(http://roadshow.apc-tcp.de/index-en.php)
- MUI 3 minimum but MUI 5 recommended for all features
  (https://github.com/amiga-mui/muidev/releases)
- MCC_Guigfx MUI custom class for displaying images
  (http://aminet.net/package/dev/mui/MCC_Guigfx)
- MCC_NList MUI custom class for lists
  (http://aminet.net/package/dev/mui/MCC_NList-0.128)
- codesets.library 6.22 or higher
 (http://aminet.net/package/util/libs/codesets-6.22)
- An active OpenAI API key
- For speech on AmigaOS 3, any version of narrator.device
- For speech on AmigaOS 4, Flite Device
 (http://aminet.net/package/mus/misc/flite_device)
 - For OpenAI speech, AHI is required
 (http://aminet.net/package/driver/audio/ahiusr_4.18)

Installation:
1. Install AmiSSL and a TCP/IP stack if not already done so
2. Download and install MUI. Version 5 recommended, version 3 minimum. Reboot.
3. Download and install MCC_Guigfx, MCC_NList and codesets.library.
4. Download the latest release of AmigaGPT.
5. Extract the `amigagpt.lha` archive to your desired location.

Optional steps to enable speech functionality:
AmigaGPT supports reading the output aloud. How AmigaGPT does this depends
on whether you are using AmigaOS 3 or 4. Or for OpenAI voices, this works on
every system.

Installing AHI for OpenAI voices:

If your OS does not come with AHI installed, you can get it from
 https://aminet.net/package/driver/audio/ahiusr_4.18

AmigaOS 3:

Speech on AmigaOS 3 requires a file called `narrator.device` which cannot be
included with AmigaGPT because it is still under copyright. Therefore, you
must copy this file legally from yourWorkbench disks so that AmigaGPT will be
able to synthesise speech. There are 2 versions of `narrator.device`
supported, v34 and v37. 

v34 is the original version that came with Workbench 1.x. v37 was an updated
version included with Workbench 2.0.x. It has more features and sounds more
natural, however it does sound quite different which is why AmigaGPT supports
you installing both versions and your choice of version to be used can be
selected in the Speech menu in the app.

Regardless of which version of `narrator.device` you choose to install
(or both), AmigaGPT requires that you install the free third party
`translator.library` v43. This works with both versions of `narrator.device`.

Installing `translator.library` v43:
Since `translator.library` v43 is not available as a standalone install, you
will need to install v42 and then patch it to v43.
* Download http://aminet.net/util/libs/translator42.lha and extract the
archive to any convenient location on your Amiga such as `RAM:`
* Navigate to that directory and double click the `Install` program
* Run the installer using all the default settings
* Download http://aminet.net/util/libs/Tran43pch.lha and once again extract it
 to a location of your choice
* Navigate to that directory and double click the `Install` program
* Run the installer using all the default settings
* Reboot your Amiga - It will not work until the system is restarted

Installing `narrator.device` v34:
* Insert your Workbench 1.x disk and copy `df0:devs/narrator.device` to
 `{AmigaGPTProgramDirectory}/devs/speech/34`

Installing `narrator.device` v37
* Insert your Workbench 2.0.x (you cannot use 2.1 because the speech libraries
 were removed after version 2.0.4) disk and copy `df0:devs/narrator.device` to
`{AmigaGPTProgramDirectory}/devs/speech/37`

AmigaOS 4:

Speech on AmigaOS 4 is done with the help of Flite Device.

- Download Flite Device from http://aminet.net/package/mus/misc/flite_device
- Extract the archive and run the installer

Launching AmigaGPT:
* Launch the application by double-clicking the AmigaGPT icon correspondant to
 the OS you are running
* You may also launch the app in the command line but before you do, run the
 command `STACK 32768` to give the program 32kb of stack since the default
 stack size for apps launched from the shell is 4kb and this is not enough for
 AmigaGPT and will cause random crashes due to stack overflow. This is not
 required when you launch the app by double clicking the icon since the stack
 size is saved in the icon.

Usage:
When launched, AmigaGPT presents you with a choice of opening the app in a new
screen or opening in Workbench. If you open in a new screen you have the
ability to create a screen for the app to open in. AmigaGPT supports anything
from 320x200 all the way up to 4k resolution if using a video card for RTG.
Bear in mind text will appear very tiny in resolutions above 1080p so you may
want to increase the font size settings from the MUI settings in the View menu
when the app opens.

When launching for the first time you will need to enter your OpenAI API key
before you can start chatting. If you haven't already done so, create an
OpenAI account and navigate to https://platform.openai.com/account/api-keys to
generate an API key for use with AmigaGPT.

*Chat*

When the app has opened, you are presented with a text input box. You can type
any prompt into this box and press "Send" to see the GPT-4 model's response.
The generated text appears in the box above the input. You can choose to have
this text read aloud using the "Speech" menu option. You can also select which
model for OpenAI to use in the "OpenAI" menu option.

To the left of the chat box is a conversation list which you can use to go to
another saved conversation. New conversations can be created with the "New
chat" button and conversations can be removed with the "Delete chat" button.

There are 2 main modes of operation: Chat and Image Generation. You can switch
between them via the tabs in the top left corner.

*Image Generation*

To generate images, simply select your desired image generation model from the
"OpenAI" menu then type your prompt in the text box then hit the "Create Image"
button. When it has been downloaded to your Amiga, you are then able to open
the image to your desired scale, or save a copy of the file to a new location
on your Amiga. Do note however that AmigaGPT will automatially save all your
generated images until you delete them. This is just in case you would like to
create a copy elsewhere.

*General*

In the "Edit" menu, you'll find basic text editing commands like Cut, Copy,
Paste and Clear. The "View" menu allows you to change the font used in the
chat and the UI.

The "Project" menu includes an "About" option, which displays information
about the program.

The "Connection" menu allows you to connect via a proxy server. It supports
both HTTP and HTTPS proxy servers but if you use an unecrypted HTTP proxy
server you can improve the performance of AmigaGPT by removing the need for
the encryption of the OpenAI traffic to be done on the system running AmigaGPT.
For an easy proxy server you can run on your local network you can try out
https://mitmproxy.org

Developing:
Source code hosted at https://github.com/sacredbanana/AmigaGPT
You can either compile the code natively or with the Docker container.

------
Native
------

*Building the AmigaOS 3.x app*

If you would like to build this project from source you will need Bebbo's
amiga-gcc toolchain here https://github.com/bebbo/amiga-gcc

Once installed, get the required other SDK's  (AmiSSL, Translator, json-c)
from https://github.com/sacredbanana/AmigaSDK-gcc and put these in your Amiga
dev environment created in the above step.

*Building the AmigaOS 4.x app*
Get this toolchain set up https://github.com/sba1/adtools

Once installed, get the required other SDK's  (AmiSSL, Translator, json-c)
from https://github.com/sacredbanana/AmigaSDK-gcc and put these in your Amiga
dev environment created in the above step.

------
Docker
------

You may use an all-in-one Docker image that is able to compile both the AmigaOS
3.x and AmigaOS 4.x versions of the app.

Just install Docker on your machine and run the `build_os3.sh`,
`build_os4.sh` or `build_morphos.sh` scripts depending on which version of the
app you want to build. If you want to perform a clean build, you can set the
environment variable `CLEAN=1` for example you can run
`CLEAN=1 ./build_os3.sh`.

The build app will be saved to the `/out` directory.

Contributing:

We welcome contributions to AmigaGPT! If you have a bug to report, a feature to
suggest, or a change you'd like to make to the code, please open a new issue or
submit a pull request.

Contributors:
Code:
- Cameron Armstrong (sacredbanana/Nightfox)
 https://github.com/sacredbanana/

Art:
- Mauricio Sandoval - Icon design

Special Thanks:
- Bebbo for creating the Amiga GCC toolchain https://github.com/bebbo
- OpenAI for making this all possible https://openai.com
- EAB and everyone in it for answering my questions https://eab.abime.net/
- Ján Zahuran&#269;ík for all the thorough testing, bundling AmigaGPT into 
  AmiKit and for all the moral support https://www.amikit.amiga.sk
- CoffinOS for bundling AmigaGPT into CoffinOS https://getcoffin.net
- Amiga Future Magazine for reviewing AmigaGPT and publishing several of
  its updates in the News from Aminet section https://www.amigafuture.de/
- WhatIFF? Magaine for reviewing AmigaGPT and interviewing me in issue 14
  https://www.whatiff.info
- Dan Wood for reviewing AmigaGPT on his YouTube channel
  https://www.youtube.com/watch?v=-OA28r8Up5U
- Proteque-CBN for reviewing AmigaGPT on his YouTube channel
  https://www.youtube.com/watch?v=t3q8HQ6wrnw
- AmigaBill for covering AmigaGPT in the Amiga News section on his Twitch
  streams and allowing me to join his stream to promote it
	https://www.twitch.tv/amigabill
- Les Docs for making a video review and giving a tutorial on how to add
  support for the French accent https://www.youtube.com/watch?v=BV5Fq1PresE

------------------
2.2.0 (2025-01-04)
------------------
- Support for ApolloOS
- Image preview now works in MorphOS and in MUI 3 (AmigaGPT now has 
 MCC_Guigfx as a prerequisite)
- Replace the chat output sections from MCC_TextEditor class to
  MCC_NFloattext for improved memory usage and compatibility with ApolloOS
- Improved encoding to and from UTF-8 with enhanced character lookalike
  remapping (AmigaGPT now has codesets.library as a prerequisite)
- Fix crash when the first data chunk received from OpenAI is smaller than
 the HTTP header
- Fix crash when OpenAI sends a blank content string

------------------
2.1.2 (2024-12-31)
------------------
- Fix bug where not all messages were being saved in a new conversation
- Fix menu items not being selectable

------------------
2.1.1 (2024-12-30)
------------------
- Add more clear error message when the user's installed AmiSSL version is too
old

------------------
2.1.0 (2024-12-28)
------------------
- Add support for proxy servers

------------------
2.0.2 (2024-12-24)
------------------
- Fix memory leaks
- Make more resilient to connection errors or disconnections

------------------
2.0.1 (2024-12-23)
------------------
- Fix a bug preventing you being able to create a new image after making one
- Fix crash when receiving an error generating an image

------------------
2.0.0 (2024-12-22)
------------------
- Completely replace ReAction with MUI 5 with backwards compatibility with MUI 3
- Now fully compatible with AmigaOS 3.1
- New native version for MorphOS
- Enhanced "About AmigaGPT" panel (MUI 5 only)
- New "About MUI" panel
- Fix memory leak when receiving messages
- View instant preview of generated images (MUI 5 only and not supported in
MorphOS)
- Updated to the latest OpenAI models including the o1 family

------------------
1.6.3 (2024-09-18)
------------------
- Fixed error receiving chat messages

------------------
1.6.2 (2024-09-01)
------------------
- Increase max OpenAI API key size to 256 characters

------------------
1.6.1 (2024-08-31)
------------------
- Default to speech disabled
- Fix crash when trying to close speech system when it failed to initialise


AmigaGPT - 2025-01-04T141014.515.readme.txt
Choose ThumbnailUpgrade

Static
Animation
 
Trim your video using the handles and Split button. Merge with other videos by
clicking the Add Clip button. 

View help article
 Edit Captions

 Engagement Insights

Video Views
0
Video Downloads
0
Call-to-Action Clicks 
0
Average Completion Rate 
0%
viewers


Someone from Pakistan desktop
Apr 14, 2021

Someone from Pakistan desktop
Apr 14, 2021

Someone from Pakistan desktop
Apr 14, 2021
 Transcription

Engagement Insights

0 Comments

Leave a comment
Short: App for chatting to ChatGPT
Kurz: App zum Chatten mit ChatGPT
Author: Cameron Armstrong (Nightfox) <cameronscottarmstrong()gmail.com>
Uploader: Cameron Armstrong (Nightfox)  <cameronscottarmstrong()gmail.com>
Type: util/misc
Version: 2.2.0
Architecture: m68k-amigaos >= 3.1; ppc-amigaos; ppc-morphos
Requires: AmigaOS 3.1+/68020+ util/libs/AmiSSL-v5-OS3.lha MUI
Replaces: util/misc/AmigaGPT.lha

AmigaGPT is a versatile ChatGPT client for AmigaOS 3.x, 4.1 and MorphOS.
This powerful tool brings the capabilities of OpenAI&#8217;s GPT to your Amiga
system, enabling text generation, question answering, and creative
 exploration. AmigaGPT can also generate stunning images using DALL-E and
includes support for speech output, making it easier than ever to interact
with AI on your Amiga. Designed to integrate seamlessly with your system,
AmigaGPT delivers modern AI technology while embracing the timeless Amiga
experience.

Features:
- Generates text based on input prompts
- Generates images based on input prompts
- UI customisation
- Full conversation history
- Text-to-speech

Requirements:
- OCS/ECS/AGA Amiga or a PowerPC machine capable of running MorphOS
- MUI 3 minimum; MUI 5 recommended for all features
- Motorola 68020 or higher CPU or PPC for AmigaOS 4/MorphOS
- For AmigaOS 3 & 4, AmiSSL 5.18 or higher
  (https://aminet.net/package/util/libs/AmiSSL-v5-OS3) for OS3 and
  (https://aminet.net/package/util/libs/AmiSSL-v5-OS4) for OS4
- Internet access using a TCP/IP stack such as Roadshow 
(http://roadshow.apc-tcp.de/index-en.php)
- MUI 3 minimum but MUI 5 recommended for all features
  (https://github.com/amiga-mui/muidev/releases)
- MCC_Guigfx MUI custom class for displaying images
  (http://aminet.net/package/dev/mui/MCC_Guigfx)
- MCC_NList MUI custom class for lists
  (http://aminet.net/package/dev/mui/MCC_NList-0.128)
- codesets.library 6.22 or higher
 (http://aminet.net/package/util/libs/codesets-6.22)
- An active OpenAI API key
- For speech on AmigaOS 3, any version of narrator.device
- For speech on AmigaOS 4, Flite Device
 (http://aminet.net/package/mus/misc/flite_device)
 - For OpenAI speech, AHI is required
 (http://aminet.net/package/driver/audio/ahiusr_4.18)

Installation:
1. Install AmiSSL and a TCP/IP stack if not already done so
2. Download and install MUI. Version 5 recommended, version 3 minimum. Reboot.
3. Download and install MCC_Guigfx, MCC_NList and codesets.library.
4. Download the latest release of AmigaGPT.
5. Extract the `amigagpt.lha` archive to your desired location.

Optional steps to enable speech functionality:
AmigaGPT supports reading the output aloud. How AmigaGPT does this depends
on whether you are using AmigaOS 3 or 4. Or for OpenAI voices, this works on
every system.

Installing AHI for OpenAI voices:

If your OS does not come with AHI installed, you can get it from
 https://aminet.net/package/driver/audio/ahiusr_4.18

AmigaOS 3:

Speech on AmigaOS 3 requires a file called `narrator.device` which cannot be
included with AmigaGPT because it is still under copyright. Therefore, you
must copy this file legally from yourWorkbench disks so that AmigaGPT will be
able to synthesise speech. There are 2 versions of `narrator.device`
supported, v34 and v37. 

v34 is the original version that came with Workbench 1.x. v37 was an updated
version included with Workbench 2.0.x. It has more features and sounds more
natural, however it does sound quite different which is why AmigaGPT supports
you installing both versions and your choice of version to be used can be
selected in the Speech menu in the app.

Regardless of which version of `narrator.device` you choose to install
(or both), AmigaGPT requires that you install the free third party
`translator.library` v43. This works with both versions of `narrator.device`.

Installing `translator.library` v43:
Since `translator.library` v43 is not available as a standalone install, you
will need to install v42 and then patch it to v43.
* Download http://aminet.net/util/libs/translator42.lha and extract the
archive to any convenient location on your Amiga such as `RAM:`
* Navigate to that directory and double click the `Install` program
* Run the installer using all the default settings
* Download http://aminet.net/util/libs/Tran43pch.lha and once again extract it
 to a location of your choice
* Navigate to that directory and double click the `Install` program
* Run the installer using all the default settings
* Reboot your Amiga - It will not work until the system is restarted

Installing `narrator.device` v34:
* Insert your Workbench 1.x disk and copy `df0:devs/narrator.device` to
 `{AmigaGPTProgramDirectory}/devs/speech/34`

Installing `narrator.device` v37
* Insert your Workbench 2.0.x (you cannot use 2.1 because the speech libraries
 were removed after version 2.0.4) disk and copy `df0:devs/narrator.device` to
`{AmigaGPTProgramDirectory}/devs/speech/37`

AmigaOS 4:

Speech on AmigaOS 4 is done with the help of Flite Device.

- Download Flite Device from http://aminet.net/package/mus/misc/flite_device
- Extract the archive and run the installer

Launching AmigaGPT:
* Launch the application by double-clicking the AmigaGPT icon correspondant to
 the OS you are running
* You may also launch the app in the command line but before you do, run the
 command `STACK 32768` to give the program 32kb of stack since the default
 stack size for apps launched from the shell is 4kb and this is not enough for
 AmigaGPT and will cause random crashes due to stack overflow. This is not
 required when you launch the app by double clicking the icon since the stack
 size is saved in the icon.

Usage:
When launched, AmigaGPT presents you with a choice of opening the app in a new
screen or opening in Workbench. If you open in a new screen you have the
ability to create a screen for the app to open in. AmigaGPT supports anything
from 320x200 all the way up to 4k resolution if using a video card for RTG.
Bear in mind text will appear very tiny in resolutions above 1080p so you may
want to increase the font size settings from the MUI settings in the View menu
when the app opens.

When launching for the first time you will need to enter your OpenAI API key
before you can start chatting. If you haven't already done so, create an
OpenAI account and navigate to https://platform.openai.com/account/api-keys to
generate an API key for use with AmigaGPT.

*Chat*

When the app has opened, you are presented with a text input box. You can type
any prompt into this box and press "Send" to see the GPT-4 model's response.
The generated text appears in the box above the input. You can choose to have
this text read aloud using the "Speech" menu option. You can also select which
model for OpenAI to use in the "OpenAI" menu option.

To the left of the chat box is a conversation list which you can use to go to
another saved conversation. New conversations can be created with the "New
chat" button and conversations can be removed with the "Delete chat" button.

There are 2 main modes of operation: Chat and Image Generation. You can switch
between them via the tabs in the top left corner.

*Image Generation*

To generate images, simply select your desired image generation model from the
"OpenAI" menu then type your prompt in the text box then hit the "Create Image"
button. When it has been downloaded to your Amiga, you are then able to open
the image to your desired scale, or save a copy of the file to a new location
on your Amiga. Do note however that AmigaGPT will automatially save all your
generated images until you delete them. This is just in case you would like to
create a copy elsewhere.

*General*

In the "Edit" menu, you'll find basic text editing commands like Cut, Copy,
Paste and Clear. The "View" menu allows you to change the font used in the
chat and the UI.

The "Project" menu includes an "About" option, which displays information
about the program.

The "Connection" menu allows you to connect via a proxy server. It supports
both HTTP and HTTPS proxy servers but if you use an unecrypted HTTP proxy
server you can improve the performance of AmigaGPT by removing the need for
the encryption of the OpenAI traffic to be done on the system running AmigaGPT.
For an easy proxy server you can run on your local network you can try out
https://mitmproxy.org

Developing:
Source code hosted at https://github.com/sacredbanana/AmigaGPT
You can either compile the code natively or with the Docker container.

------
Native
------

*Building the AmigaOS 3 app*

If you would like to build this project from source you will need Bebbo's
amiga-gcc toolchain here https://github.com/bebbo/amiga-gcc

Once installed, get the required other SDK's  (AmiSSL, Translator, json-c)
from https://github.com/sacredbanana/AmigaSDK-gcc and put these in your Amiga
dev environment created in the above step.

*Building the AmigaOS 4 app*
Get this toolchain set up https://github.com/sba1/adtools

Once installed, get the required other SDK's  (AmiSSL, Translator, json-c)
from https://github.com/sacredbanana/AmigaSDK-gcc and put these in your Amiga
dev environment created in the above step.

------
Docker
------

You may use an all-in-one Docker image that is able to compile both the
AmigaOS 3 and AmigaOS 4 versions of the app.

Just install Docker on your machine and run the `build_os3.sh`,
`build_os4.sh` or `build_morphos.sh` scripts depending on which version of
the app you want to build. If you want to perform a clean build, you can set
the environment variable `CLEAN=1` for example you can run
`CLEAN=1 ./build_os3.sh`.

The build app will be saved to the `/out` directory.

Contributing:

We welcome contributions to AmigaGPT! If you have a bug to report, a
feature to suggest, or a change you'd like to make to the code, please open
a new issue or submit a pull request.

Contributors:
Code:
- Cameron Armstrong (sacredbanana/Nightfox)
 https://github.com/sacredbanana/

Art:
- Mauricio Sandoval - Icon design

Special Thanks:
- Bebbo for creating the Amiga GCC toolchain https://github.com/bebbo
- OpenAI for making this all possible https://openai.com
- EAB and everyone in it for answering my questions https://eab.abime.net/
- Ján Zahuran&#269;ík for all the thorough testing, bundling AmigaGPT into 
  AmiKit and for all the moral support https://www.amikit.amiga.sk
- CoffinOS for bundling AmigaGPT into CoffinOS https://getcoffin.net
- Amiga Future Magazine for reviewing AmigaGPT and publishing several of
  its updates in the News from Aminet section https://www.amigafuture.de/
- WhatIFF? Magaine for reviewing AmigaGPT and interviewing me in issue 14
  https://www.whatiff.info
- Dan Wood for reviewing AmigaGPT on his YouTube channel
  https://www.youtube.com/watch?v=-OA28r8Up5U
- Proteque-CBN for reviewing AmigaGPT on his YouTube channel
  https://www.youtube.com/watch?v=t3q8HQ6wrnw
- AmigaBill for covering AmigaGPT in the Amiga News section on his Twitch
  streams and allowing me to join his stream to promote it
	https://www.twitch.tv/amigabill
- Les Docs for making a video review and giving a tutorial on how to add
  support for the French accent https://www.youtube.com/watch?v=BV5Fq1PresE

Changelog:

------------------
2.2.0 (2025-01-04)
------------------
- Support for ApolloOS
- Image preview now works in MorphOS and in MUI 3 (AmigaGPT now has 
 MCC_Guigfx as a prerequisite)
- Replace the chat output sections from MCC_TextEditor class to
  MCC_NFloattext for improved memory usage and compatibility with ApolloOS
- Improved encoding to and from UTF-8 with enhanced character lookalike
  remapping (AmigaGPT now has codesets.library as a prerequisite)
- Fix crash when the first data chunk received from OpenAI is smaller than
 the HTTP header
- Fix crash when OpenAI sends a blank content string

------------------
2.1.2 (2024-12-31)
------------------
- Fix bug where not all messages were being saved in a new conversation
- Fix menu items not being selectable

------------------
2.1.1 (2024-12-30)
------------------
- Add more clear error message when the user's installed AmiSSL version is too
old

------------------
2.1.0 (2024-12-28)
------------------
- Add proxy server support

------------------
2.0.2 (2024-12-24)
------------------
- Fix memory leaks
- Make more resiliant to connection errors or disconnections

------------------
2.0.1 (2024-12-23)
------------------
- Fix a bug preventing you being able to create a new image after making one
- Fix crash when receiving an error generating an image

------------------
2.0.0 (2024-12-22)
------------------
- Completely replace ReAction with MUI 5 with backwards compatibility with
  MUI 3
- Now fully compatible with AmigaOS 3.1
- New native version for MorphOS
- Enhanced "About AmigaGPT" panel
- New "About MUI" panel
- Fix memory leak when receiving messages
- View instant preview of generated images (MUI 5 only and not supported in
  MorphOS)
- Updated to the latest OpenAI models

------------------
1.6.3 (2024-09-18)
------------------
- Fixed error receiving chat messages

------------------
1.6.2 (2024-09-01)
------------------
- Increase max OpenAI API key size to 256 characters

------------------
1.6.1 (2024-08-31)
------------------
- Default to speech disabled
- Fix crash when trying to close speech system when it failed to initialise

------------------
1.6.0 (2024-08-10)
------------------
- Add the GPT4o Mini model
- Remove the unused Accent menu item from OS4 version
- Fix bug where some voice menu items in the OS4 version fail to display a
checkmark after you select it

------------------
1.5.1 (2024-06-26)
------------------
- Send button no longer appears after image creation
- Create image button stays disabled after image creation. Select new image to
create a new one
- Updated to latest json-c

------------------
1.5.0 (2024-05-18)
------------------
- Support for OpenAI's 16-bit text to speech voices. Fast internet connection
recommended
- Updated to latest OpenAI chat models (including GPT-4o which will only work
for ChatGPT Plus subscribers for now)
- Removed debug symbols for faster and smaller executable

------------------
1.4.6 (2024-04-13)
------------------
- Send button no longer appears in top left corner after closing a generated
image for Amiga 3.X

------------------
1.4.5 (2024-04-06)
------------------

- Fixes the stack size calculation so it will no longer warn you that the
  stack size is too small if it really isn't

------------------
1.4.4 (2024-03-23)
------------------
- Fixes a bug in chat mode in AmigaOS 3.X where the send button stays disabled
after an error occurs
- Change the stack size in the program .info file to the recommended 32768 bytes
- Fix bug where accents were not loaded properly resulting in the speech to fail

------------------
1.4.4 (2024-03-23)
------------------
- Fixes a bug in chat mode in AmigaOS 3.x where the send button stays disabled
after an error occurs
- Change the stack size in the program .info file to the recommended 32768 bytes
- Fix bug where accents were not loaded properly resulting in the speech to
fail. If you get an error when generating speech, go to the menu and set the
accent again

------------------
1.4.3 (2024-03-07)
------------------
- Updated to the latest OpenAI chat models
- Fix crash when config.json doesn't exist
- Fix crash when selecting the root menu items
- Adjust screen colours to enhance visibility
- Improved error handling for connection errors
- Use a stack cookie to set minimum stack size to 32768 bytes (AmigaOS 3.1.4 or
higher required)
- Shows a warning if the stack size is smaller than 32768 bytes (AmigaOS 3.x
only)
- Send button no longer appears in corner of screen on image mode in AmigaOS 3.x
after an error message is dismissed

------------------
1.4.2 (2024-01-31)
------------------
- Replaced clicktabs for AmigaOS 3.x since the version is too old and will
crash. AmigaOS 3.x users can select the mode at startup.

------------------
1.4.1 (2024-01-20)
------------------
- Fixed bug where the prompt textbox remains in a readonly state when switching
from image mode to chat mode

------------------
1.4.0 (2024-01-20)
------------------
- AI image generation! Switch between chat and image generation mode by clicking
the tabs at the top of the screen
- Colour tweaks
- Status bar shows more information and colours
- About screen can now be dismissed with any key press or mouse click
- The OpenAI API key requester now populates with the existing key if it exists
so you can more easily find and fix typos in the key
- Added the ability to set the chat system (new "Chat System" menu item)
- Fix crash when having a conversation

------------------
1.3.1 (2023-12-02)
------------------
- Fix pasting into chat input textbox (AmigaOS 3.2 and AmigaOS 4.1 only for now)
- Remove trailing newline from user messages
- Enclose all user lines in asterisks to make bold
- Fix memory leak that was present in downloading responses from OpenAI

------------------
1.3.0 (2023-11-12)
------------------
- Native PPC version for AmigaOS 4.1
- Scrollbar works again
- Improve response handling from OpenAI preventing a crash
- Latest OpenAI models added

------------------
1.2.1 (2023-11-04)
------------------
- Now fully backwards compatible with Cloanto's AmigaOS 3.x (included in Amiga
Forever)

------------------
1.2.0 (2023-10-04)
------------------
- Now fully backwards compatible with AmigaOS 3.9

------------------
1.1.0 (2023-07-22)
------------------
- Now supports characters from Western languages other than English
- Blank responses from OpenAI no longer cause a crash

------------------
1.0.1 (2023-06-24)
------------------
- After setting UI font, the font is now applied fully without needing to
restart the app

----------------
1.0 (2023-06-17)
----------------
- Initial release


License:

--------
AmigaGPT
--------

MIT License

Copyright (c) 2023-2025 Cameron Armstrong

Permission is hereby granted, free of charge, to any person obtaining a copy of
this software and associated documentation files (the "Software"), to deal in
the Software without restriction, including without limitation the rights to
use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
the Software, and to permit persons to whom the Software is furnished to do so,
subject to the following conditions:

The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

--------------------
THIRD PARTY LICENSES
--------------------

------
json-c
------

Copyright (c) 2009-2012 Eric Haszlakiewicz

Permission is hereby granted, free of charge, to any person obtaining a copy of
this software and associated documentation files (the "Software"), to deal in
the Software without restriction, including without limitation the rights to
use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
the Software, and to permit persons to whom the Software is furnished to do so,
subject to the following conditions:

The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.

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

Copyright (c) 2004, 2005 Metaparadigm Pte Ltd

Permission is hereby granted, free of charge, to any person obtaining a copy of
this software and associated documentation files (the "Software"), to deal in
the Software without restriction, including without limitation the rights to
use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
the Software, and to permit persons to whom the Software is furnished to do so,
subject to the following conditions:

The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

-----
Flite
-----

Flite is free software.

We have kept the core code to BSD-like copyright, thus the system is free to use
in commercial products, with commercial extensions.  
GPLvcode is only included as part of the build process and does not taint any of
the run-time code.  

Note the PalmOS code uses BSD code that requires acknowledgements in any
distribution documentation.

As a collection it is distributed under the following license.  
Note a few files in this distribution have a different but equally free
non-conflicting licence, see below.

                  Language Technologies Institute                      
                     Carnegie Mellon University                        
                      Copyright (c) 1999-2008                          
                        All Rights Reserved.

/*  Permission is hereby granted, free of charge, to use and         */
/*  distribute this software and its documentation without           */
/*  restriction, including without limitation the rights to use,     */
/*  copy, modify, merge, publish, distribute, sublicense, and/or     */
/*  sell copies of this work, and to permit persons to whom this     */
/*  work is furnished to do so, subject to the following conditions: */
/*                                                                   */
/*    1. The code must retain the above copyright notice, this list  */
/*       of conditions and the following disclaimer.                 */
/*    2. Any modifications must be clearly marked as such.           */
/*    3. Original authors' names are not deleted.                    */
/*                                                                   */    
/*  NAGOYA INSTITUTE OF TECHNOLOGY, NARA INSTITUTE OF SCIENCE AND    */
/*  TECHNOLOGY, CARNEGIE MELLON UNIVERSITY, AND THE CONTRIBUTORS TO  */
/*  THIS WORK DISCLAIM ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,  */
/*  INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, */
/*  IN NO EVENT SHALL NAGOYA INSTITUTE OF TECHNOLOGY, NARA           */
/*  INSTITUTE OF SCIENCE AND TECHNOLOGY, CARNEGIE MELLON UNIVERSITY, */
/*  NOR THE CONTRIBUTORS BE LIABLE FOR ANY SPECIAL, INDIRECT OR      */
/*  CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM   */
/*  LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT,  */
/*  NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN        */
/*  CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.         */
/*                                                                   */
/*********************************************************************/

These functions are derived from the versions in festvox/src/vc/ as modified by
Tomoki Toda which in turn contain code derived from NITECH's HTS system.  
Their copyright has the same freedoms as Flite's but under NAIST, NITECH and/or
CMU.

src/audio/au_wince.c
src/utils/cst_file_stdio.c
src/utils/cst_mmap_posix.c
src/utils/cst_mmap_win32.c
src/utils/cst_mmap_none.c
src/utils/cst_file_wince.c
sapi/
      are copyright Cepstral, LLC rather than CMU but fall under the same
      free licence as the above, except for the owner.

doc/alice
   Is the first two chapters of Alice in Wonderland as distributed by the
   Gutenburg project and is now in the public domain

src/regex/regexp.c
src/regex/regsub.c

 *      Copyright (c) 1986 by University of Toronto.
 *      Written by Henry Spencer.  Not derived from licensed software.
 *
 *      Permission is granted to anyone to use this software for any
 *      purpose on any computer system, and to redistribute it freely,
 *      subject to the following restrictions:
 *
 *      1. The author is not responsible for the consequences of use of
 *              this software, no matter how awful, even if they arise
 *              from defects in it.
 *
 *      2. The origin of this software must not be misrepresented, either
 *              by explicit claim or by omission.
 *
 *      3. Altered versions must be plainly marked as such, and must not
 *              be misrepresented as being the original software.

src/speech/rateconv.c

*	Copyright (c) 1992, 1995 by Markus Mummert
 *
 *	Redistribution and use of this software, modifcation and inclusion
 *	into other forms of software are permitted provided that the following
 *	conditions are met:
 *
 *	1. Redistributions of this software must retain the above copyright
 *	   notice, this list of conditions and the following disclaimer.
 *	2. If this software is redistributed in a modified condition
 *	   it must reveal clearly that it has been modified.

lang/usenglish/us_durz_cart.c
lang/usenglish/us_durz_cart.h
lang/usenglish/us_int_accent_cart.c
lang/usenglish/us_int_accent_cart.h
lang/usenglish/us_int_tone_cart.c
lang/usenglish/us_int_tone_cart.h
lang/usenglish/us_phoneset.c
lang/usenglish/us_f0lr.c
   These are directly (or indirectly) compiled/derived from files that are
   part of the Festival Speech Synthesis System (1.4.1).  Hence they have
   a joint copyright CMU/Edinburgh but with the same free licence

configure
   # Copyright (C) 1992, 93, 94, 95, 96 Free Software Foundation, Inc.
   #
   # This configure script is free software; the Free Software Foundation
   # gives unlimited permission to copy, distribute and modify it.

configure.sub
config.guess
missing
install-sh
mkinstalldirs
   Copyright FSF, and under the GPL, these files are only used for
   convenient configuration and are not part of the generated binary,
   and therefore do not impose any GPL restrctions on the rest of the
   system.  But as they are standard methods for configuration they 
   are included.

palm/include/peal.h
palm/include/pealstub.h
palm/arm_flite/pealstub.c
palm/m68k_flite/peal.c

/**********
 * Copyright (c) 2004 Greg Parker.  All rights reserved.
 *
 * Redistribution and use in source and binary forms, with or without
 * modification, are permitted provided that the following conditions
 * are met:
 * 1. Redistributions of source code must retain the above copyright
 *    notice, this list of conditions and the following disclaimer.
 * 2. Redistributions in binary form must reproduce the above copyright
 *    notice, this list of conditions and the following disclaimer in the
 *    documentation and/or other materials provided with the distribution.
 *
 * THIS SOFTWARE IS PROVIDED BY GREG PARKER ``AS IS'' AND ANY EXPRESS OR
 * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
 * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
 * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
 * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
 * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
 * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
 * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
 * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 **********/

The whole Sun Microsystems math library was ported to Palm for this but its not
actually needed, though the include file is to allow bits of the system to
compile that currently linked in to the system, so we just have the include file
here

palm/include/fdlibm.h

 * ====================================================
 * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved.
 *
 * Developed at SunSoft, a Sun Microsystems, Inc. business.
 * Permission to use, copy, modify, and distribute this
 * software is freely granted, provided that this notice 
 * is preserved.
 * ====================================================

------------
Flite Device
------------

/* Copyright (c) 2013 Fredrik Wikstrom. All rights reserved.
**
** Redistribution and use in source and binary forms, with or without
** modification, are permitted provided that the following conditions
** are met:
**
** 1. Redistributions of source code must retain the above copyright
**    notice, this list of conditions and the following disclaimer.
**
** 2. Redistributions in binary form must reproduce the above copyright
**    notice, this list of conditions and the following disclaimer in the
**    documentation and/or other materials provided with the distribution.
**
** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS `AS IS'
** AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
** IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
** ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
** LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
** CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
** SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
** INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
** CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
** ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
** POSSIBILITY OF SUCH DAMAGE.
*/


Copyright © 2004-2025 by Björn Hagström All Rights Reserved