New beta of PortablE (r6, the beginner-friendly release)
  • Order of the Butterfly
    Order of the Butterfly
    ChrisH
    Posts: 167 from 2009/11/26
    I have uploaded a new PortablE beta of my modernised AmigaE programming language. There have been a HUGE amount of changes since the last beta in April, but biggest changes are:

    * Fully tested on AROS & MorphOS (in addition to AmigaOS4), so all the examples now run smoothly & stably. Please download some of the already compiled examples & try them out :-)

    * Programs now compile on Icaros v.1.3.x, although an AROS bug in Icaros v1.3.0 to v1.3.2 means that the graphical examples won't look good. Icaros v1.3.3 should fix that.

    * The GUI module (std/cGui) now supports basic scrollable lists & pictures in buttons (see here for an example), plus many bug fixes.

    * The graphics module (std/cGfx) now supports resizable windows, can draw circles, and has been heavily fixed & speeded-up for AROS & MorphOS.

    * Added basic networking support for AmigaOS4, which is compatible with AmigaE.

    * Added the "Debug" switch to PEGCC, which makes debugging on OS4 much easier. PEGCC also behaves better.

    * The sound & music modules (std/cSnd & std/cMusic) now gracefully handle the lack of AHI sound, instead of crashing!

    * OPT MULTITHREADED should now be properly thread-safe, especially FastNew/NEW/etc.

    * A large number of fixes & tweaks to various things, plus added a couple more Amiga modules, and some missing OS4 functions.


    You can download the latest beta of PortablE here.

    Some screenshots to show what PortablE is capable of in a relatively small amount of code:

    ShootEmUp_pic1.png
    SimpleCalculator_pic.png
    SOTBeastScroll_pic1.png
    PictureAlbum_1.png
    AmiSystemRestore_1.png
    StarsDemo_pic.png
    amigaos4b.jpg

    As a reminder, in February I released a "full preview" of the next version of the PortablE programming language. It is now aimed at beginners & those new to the E language. Previous releases of PortablE were aimed at existing AmigaE users, and those familiar with AmigaOS programming. But after more than a year of development, PortablE became much easier for beginners to pick-up & play with:

    * It now comes with some nice modules for graphics, sound, music & GUIs. These require no knowledge of AmigaOS programming, and were inspired by the simplicity of BASIC languages like AMOS.

    * It comes with full documentation for all of these modules, along with smaller & bigger examples. There is also an official PortablE forum.

    * The documentation has been revamped to be more beginner friendly, and the PortablE installer has been made easier to use. If you still get stuck, then let me know, and I will see what I can do :-)


    * In addition to that, I have made available a large collection of my own useful modules (in the CSH folder), which you can use if you want. These are not properly documented yet, but I will look at documenting them where there is interest.

    * As usual it supports Amiga OS4, OS3, AROS, MorphOS & Windows. However (1) the new modules do not yet work on Windows, and (2) the new graphics module does not yet work on Amiga OS3.
    Author of the PortablE programming language.
    It is pitch black. You are likely to be eaten by a grue...
  • »28.10.11 - 11:14
    Profile Visit Website
  • TGR
  • Butterfly
    Butterfly
    TGR
    Posts: 100 from 2009/10/27
    From: Scotland
    Looks very interesting ChrisH, i'm a completely newbie to any sort of programming and over the last few days, I've been thinking about trying to learn something and i think i might have found where to start.
    :-)
    Mini Mac G4 1.25, 1gb ram, 40 gig hdd, Registered Morphos 2.6.
  • »29.10.11 - 00:45
    Profile
  • Order of the Butterfly
    Order of the Butterfly
    ChrisH
    Posts: 167 from 2009/11/26
    @TGR
    Learning programming from scratch is certainly a challenge, but hopefully an interesting one :-)
    Author of the PortablE programming language.
    It is pitch black. You are likely to be eaten by a grue...
  • »30.10.11 - 12:17
    Profile Visit Website
  • TGR
  • Butterfly
    Butterfly
    TGR
    Posts: 100 from 2009/10/27
    From: Scotland
    Well just a little feedback, as you stated aimed at newbies. I can state this is very true, i dont know what day it is half the time and i managed to compile the little program in the guide.

    also compiled afew of your source codes for the spaceship game. So i think the next step is just to read the guides on your site and see what i can pickup and hopefully something will sink in .

    I'm pretty sure i have afew AmigaE books kicking around in my Amiga collection so need to see if i can dig them out .
    Mini Mac G4 1.25, 1gb ram, 40 gig hdd, Registered Morphos 2.6.
  • »30.10.11 - 19:52
    Profile
  • Order of the Butterfly
    Order of the Butterfly
    ChrisH
    Posts: 167 from 2009/11/26
    TGR,
    Quote:

    Well just a little feedback, as you stated aimed at newbies. I can state this is very true, i dont know what day it is half the time and i managed to compile the little program in the guide.

    Thats good to hear :-)

    Quote:

    I'm pretty sure i have afew AmigaE books kicking around in my Amiga collection so need to see if i can dig them out .

    Don't forget these on-line resources:

    Jason Hulance's good AmigaE beginners guide: (beware this is not aimed specifically at PortablE, but you could try using PortablE's AmigaE compatibility mode)
    and
    What should I read?

    P.S. Why on earth doesn't MorphZone send me Email Notifications of new replies, even when I enable that option?!? :-(
    Author of the PortablE programming language.
    It is pitch black. You are likely to be eaten by a grue...
  • »05.11.11 - 13:11
    Profile Visit Website
  • Paladin of the Pegasos
    Paladin of the Pegasos
    TheMagicM
    Posts: 1218 from 2003/6/17
    just downloaded the latest update... thanks!
  • »05.11.11 - 21:43
    Profile Visit Website
  • Paladin of the Pegasos
    Paladin of the Pegasos
    TheMagicM
    Posts: 1218 from 2003/6/17
    where is the source for Amisystemrestore and the Photo Album?
  • »06.11.11 - 20:35
    Profile Visit Website
  • Order of the Butterfly
    Order of the Butterfly
    ChrisH
    Posts: 167 from 2009/11/26
    @TheMagicM
    There is no public source! (yet anyway)

    PhotoAlbum's code will *probably* get released soon after the final (non-beta) r6 PortablE is released.

    The AmiSystemRestore program is not even publically released yet (it's still under development), and I had not even thought about open sourcing it (I don't automatically make something open source).
    Author of the PortablE programming language.
    It is pitch black. You are likely to be eaten by a grue...
  • »06.11.11 - 22:23
    Profile Visit Website
  • Paladin of the Pegasos
    Paladin of the Pegasos
    TheMagicM
    Posts: 1218 from 2003/6/17
    Any more source code to release? :)
  • »14.01.12 - 13:55
    Profile Visit Website
  • TGR
  • Butterfly
    Butterfly
    TGR
    Posts: 100 from 2009/10/27
    From: Scotland
    Great stuff again Chris. hopefully after i get my house move sorted, I'll be able to get back into playing around with PortabIe.
    Mini Mac G4 1.25, 1gb ram, 40 gig hdd, Registered Morphos 2.6.
  • »14.01.12 - 14:12
    Profile
  • Order of the Butterfly
    Order of the Butterfly
    Samurai_Crow
    Posts: 153 from 2009/12/10
    From: Minnesota, USA
    TheMagicM,
    Quote:

    Any more source code to release? :)


    I've got a short tutorial on a bitset data structure on ArosWorld.org in the PortablE forum. Also, the official forum for PortablE is on Aros-Exec.org which ChrisH checks more often.
  • »14.01.12 - 17:35
    Profile
  • Paladin of the Pegasos
    Paladin of the Pegasos
    TheMagicM
    Posts: 1218 from 2003/6/17
    Wooohooooo! I'll read it.
  • »15.01.12 - 00:12
    Profile Visit Website
  • Order of the Butterfly
    Order of the Butterfly
    ChrisH
    Posts: 167 from 2009/11/26
    @TheMagicM,
    Quote:

    Any more source code to release? :)

    Not at the moment, but eventually I would like to.
    Author of the PortablE programming language.
    It is pitch black. You are likely to be eaten by a grue...
  • »16.01.12 - 17:11
    Profile Visit Website
  • Order of the Butterfly
    Order of the Butterfly
    ChrisH
    Posts: 167 from 2009/11/26
    Today (5th March 2012) I have uploaded a new PortablE beta of my modernised AmigaE programming language. While development has moved slower, I have still made a lot of bug fixes, plus added some new features:

    * The Amiga installer has been greatly improved. It uses choice requesters, it has a Simple Installation mode, you can finally change the PEmodules assignment, and more. Thanks to Hypex for suggestions!

    * Added some new functions to the cGfx & cGfxSprites modules.

    * cGui windows now receive a close request when Exchange tries to remove the app.

    * cSnd has been heavily rewritten, and should be rock-solid (not that I noticed a problem before).

    * cPath now properly supports soft & hard links.

    * Added support for AmigaOS4's application.library .

    * Greatly improved memory handling; no-longer becomes very slow in certain situations, won't crash when allocation requests fail (ouch), and also handles low-memory situations better.

    * On AmigaOS4 executable sizes have been reduced by up to 60-120KB, thanks to an OS4 SDK discovery made by Kas1e.

    * cGfx's drawCircle() now works correctly.

    * Fixed various small bugs.


    I have also replaced the "Shadow Of The Beast like" demo with one that is much closer to the original game.
    SOTBeastScroll_pic1.png
    Author of the PortablE programming language.
    It is pitch black. You are likely to be eaten by a grue...
  • »05.03.12 - 17:16
    Profile Visit Website
  • Yokemate of Keyboards
    Yokemate of Keyboards
    amigadave
    Posts: 2795 from 2006/3/21
    From: Northern Calif...
    An already good thing just keeps getting better.

    It is good to see that more cross platform software is coming to the "Amiga" (all flavors)

    With PortablE and Hollywood being the two most publicly talked about recently, but they are just additions to many other cross platform tools on the "Amiga".

    Great work ChrisH. I will download the latest version today.
    MorphOS - The best Next Gen Amiga choice.
  • »06.03.12 - 18:36
    Profile
  • Order of the Butterfly
    Order of the Butterfly
    ChrisH
    Posts: 167 from 2009/11/26
    Today (20th March 2012) I have uploaded a new PortablE beta of my modernised AmigaE programming language. Fixes a couple of serious problems:

    * Fixed a video memory leak caused by bitmaps not being auto-deallocated when the program quits (nor when the window is destroyed), for the 'std/cGfx' module.

    * Worked-around the installer failing on Icaros v1.4.0, because it comes with an incorrect config file.


    There are also a couple of smaller improvements:

    * If you let the installer move the PEmodules folder on Icaros, then you would get a harmless error message every time Icaros booted. Now fixed.

    * You can now use CreateGfxWindow() & DestroyGfxWindow() with the 'std/cGfxSpritesSimple' module
    Author of the PortablE programming language.
    It is pitch black. You are likely to be eaten by a grue...
  • »20.03.12 - 18:29
    Profile Visit Website
  • Order of the Butterfly
    Order of the Butterfly
    ChrisH
    Posts: 167 from 2009/11/26
    Today (9th April 2012) I have uploaded a new PortablE beta of my modernised AmigaE programming language. This brings the 'std/cGfx' module close to being finished:

    * The 'std/cGfx' module now uses Compositing/Alpha-blending (where supported) for h/w accelerated drawing of masked bitmaps. This means the new SOTB demo is now fast & smooth on AmigaOS4 & MorphOS.

    * The 'std/cGfx' module now supports screens <= 256 colours.

    * For 'std/cGfx', added tentative AmigaOS3 support, and compiled almost all the examples for AmigaOS3. (I would be interested to know if they work on Natami.)


    * For 'std/cGfx', added missing stuff like reading pixel colours, rotating bitmaps, and generating masks using pictures with more than 256 colours.

    * For 'std/cGfx', scaling bitmaps is now much faster on AmigaOS4 (probably uses AltiVec acceleration).

    * For 'std/cGfx', scaling masked bitmaps is MUCH faster on AROS. So the SOTB demo now starts quickly.

    * For 'std/cGfx', fixed various bugs.

    * For 'std/cPath', added the create() method as an (often nicer) alternative to open().


    * Added Picasso96 & Cybergraphics modules.

    * Added the missing CompositeTagList() for OS4.

    * PEGCC's DEBUG switch now creates executables with debug info on OSes other than AmigaOS4 (likely to be useful on AROS).

    * Updated the examples StarsXY_ToySpaceshipSprite1.e & StarsZYX_ToySpaceshipSprite1.e to use the now-required addToGfx() method, and corrected the documention about creating a sub-class of cGfxDrawable.
    Author of the PortablE programming language.
    It is pitch black. You are likely to be eaten by a grue...
  • »09.04.12 - 12:35
    Profile Visit Website
  • Order of the Butterfly
    Order of the Butterfly
    ChrisH
    Posts: 167 from 2009/11/26
    Fixed a stupid error, which crept into the new PortablE release, which especially effected compiling on AmigaOS4. Please re-download!
    Author of the PortablE programming language.
    It is pitch black. You are likely to be eaten by a grue...
  • »09.04.12 - 17:07
    Profile Visit Website
  • Order of the Butterfly
    Order of the Butterfly
    ChrisH
    Posts: 167 from 2009/11/26
    Today (8th October 2012) I have released a new PortablE beta of my modernised AmigaE programming language. The changes include:

    * For the 'std/cPath' module, finally added 64-bit file support for AmigaOS4, and improved handling of files over 2GB for AROS, MorphOS & AmigaOS3.
    * For the 'std/cGfx' module, it now uses real double-buffering for Full Screen (except on AROS). This can make animation smoother, and on AmigaOS3 it looks much much better.
    * For the 'std/cGfx' module, added the ability to change window position & hide the mouse pointer.
    * For the 'std/cGfx' module, fixed a couple of corrupted graphics bugs.
    * For the 'std/cGfxSprites' module, made setData() & getData() easier to use, and added setDataPtr() & getDataPtr() for the old behaviour.
    * For the 'std/cGui' module, windows can now be vertically resizable, and greatly improved the GUI layout code.
    * For the 'std/cGui' module, added cGuiText, and changed how cGuiTextBox behaves. (The new cGuiText behaves similar to how cGuiTextBox used to, so switch to that if you only need to display one line of text.)
    * For the 'std/cGui' module, the window's size & position can now be read & changed, just like cGfx.
    * For the 'std/cGui' module, added some useful methods, and replaced cGuiWindow's setGhosted() with setBusy() & getBusy(). Also iconified windows now use the program's icon.
    * For the 'std/cGui' module, fixed a performance issue, and also a crash which could occur when a window closed.
    * For the 'std/cPath' module, split it into several smaller modules, which should allow simple programs to have smaller executables & slightly faster compilation times.
    * For the 'std/cPath' module, replaced makePath() with getPath() & setPath().
    * For the 'dos/dos' module, made BPTR a real pointer type, so that such variables are now auto-initialised to NIL like you would expect.
    * For the 'devices/ahi' module, recreated this module for all targets, using the latest AHI header files. This helped fix various minor issues.
    * For the 'dos' & 'icon' modules, BOOL return values (0,-1) were actually C boolean values (0,1). Fixed.
    * Removed *Tags() procedures from the modules 'Picasso96API', 'dos', 'exec', 'graphics', 'icon' & 'identify'.
    * Duplicate RAISE statements would cause a compilation crash instead of an error message. Also RAISE were incorrectly being inherited between modules in certain situations.
    * Fixed many AmigaE code generation bugs & a few module problems, such that all the "std" examples can now be compiled using AmigaE rather than GCC.
    * Fixed a few other bugs.

    For the full list of changes & additional details, please see the documentation's History chapter.


    Also note that I have updated & recompiled all the examples.
    Author of the PortablE programming language.
    It is pitch black. You are likely to be eaten by a grue...
  • »08.10.12 - 10:05
    Profile Visit Website
  • MorphOS Developer
    itix
    Posts: 1520 from 2003/2/24
    From: Finland
    Quote:


    * For the 'std/cPath' module, finally added 64-bit file support for AmigaOS4, and improved handling of files over 2GB for AROS, MorphOS & AmigaOS3.



    Btw there are 64-bit variants for file access functions in MorphOS. Namely Examine64(), ExamineFH64(), Seek64() and ED_SIZE64 option for ExAll().
    1 + 1 = 3 with very large values of 1
  • »08.10.12 - 11:04
    Profile
  • Order of the Butterfly
    Order of the Butterfly
    ChrisH
    Posts: 167 from 2009/11/26
    I have uploaded a new PortablE beta archive with a very small fix (almost cosmetic):

    * When the installer deletes obsolete modules, it will no-longer fail to delete a couple of folders (which was harmless but might have worried some people).
    * A small 'bonus' is that the installer will now delete a few obsolete modules that I had previously overlooked.

    Users who have already installed the latest release of PortablE do NOT need to download it again!
    Author of the PortablE programming language.
    It is pitch black. You are likely to be eaten by a grue...
  • »10.10.12 - 19:38
    Profile Visit Website
  • Order of the Butterfly
    Order of the Butterfly
    ChrisH
    Posts: 167 from 2009/11/26
    Today (14th July 2013) I have released a new PortablE beta of my modernised AmigaE programming language. The highlights are:
    * Added dynamic lists to the GUI module.
    * Added three programs demonstrating dynamic lists: Stacker, SimpleGameLauncher, and DirList.
    * Added support for embedding native GUI elements (e.g. MUI objects), so people can work-around any cases where PortablE's GUI system is lacking something they need.
    * Added support for dropping files on GUI windows.
    * Added support for GUI windows saving/loading their size & position.
    * The GUI now auto-activates the first text input item, so you can start typing straight away.
    * It now tells the user when the NList or TextEditor MUI classes are required but missing.
    * Windows: Fixed installation failing to create the required Assignments.txt file.
    * Removed source<>destination restriction for StrCopy(), RightStr() & MidStr(). (I think Chris Y once requested this!)
    * Fixed stereo sounds being silent for their second half.
    * Fixed various other bugs.

    Also note that I have updated & recompiled all the examples.

    The full list of changes:
    * Added the parameter "startPos=0" to the procedure Val(). This removes the need for pointer arithmetic.
    * Added the 'std/pBox' module, to provide a simple but very flexible way of storing various types of data, without needing separate getter/setter methods for all of them.
    * In 'std/cPath', added the RenamePath() procedure, so you don't need to open a file anymore to just rename it.
    * In 'std/cPath', added the ReadLink() procedure, so it is now possible to get the target of a soft link when the target doesn't exist.
    * In 'std/cGui', added support for dynamic lists (see cGuiWindow.beginList(), cGuiList, etc), plus three example programs.
    * In 'std/cGui', added support for embedding native GUI elements (e.g. MUI objects), so people can work-around any cases where PortablE's GUI system is lacking something they need.
    * In 'std/cGui', added initAllowDropFiles()/etc & getFileDropped()/etc methods to the cGuiWindow class, so GUIs now allow files to be dropped on them.
    * In 'std/cGui', added initSaveID()/etc methods to the cGuiWindow class, so GUIs can now automatically save/load their position & size.
    * In 'std/cGui', cGuiButton now listens to initUseLeastSpace().
    * In 'std/cGui', now activates the first text input item (e.g. cGuiString), so you can start typing straight away.
    * In 'std/cGui', now generates an event when you leave a text input item without pressing Enter.
    * In 'std/cGui', now tells the user that the NList or TextEditor classes are missing.
    * In 'std/cGui', added the queryExtra() method to the cGuiItem class, and made it do something useful for the cGuiList class.
    * In 'std/cGui', added the "doNotClear" parameter to the methods getCloseRequest() & getQuitRequest(). And calling those methods will now cause their info to be forgotten unless you supply TRUE for doNotClear.
    * In 'std/cGui', window close requests are now queued, so there is no-longer any chance of them being lost in a race condition.
    * In 'std/cPath', renamed Exists() to ExistsPath(), Delete() to DeletePath(), and DeleteDir() to DeleteDirPath(). But the old procedures still work for the moment...
    * In 'std/cGfxSprites', the setDataBox() & getDataBox() methods of cGfxSprite REPLACE the old set/getDataPtr() methods, and their usage is slightly different. This should be completely future-proof, so no more changes will be needed.
    * BUG: Windows: Fixed installation failing to create the required Assignments.txt file.
    * BUG: C++: The 'CSH/pAmiga_fakeNewProcess' module (and thus cGfx/cMusic/cSnd) would not work in some situations. Now properly fixed by adding special support to PortablE.
    * BUG: C++: For FOR & some other statements, got rid of the (possibly harmless) GCC warning 'comparison is always true/false due to limited range of data type'.
    * BUG: Fixed obfuscation of FUNCtions randomly marking it's call() method as being an ORPHAN.
    * BUG: Removed source<>destination restriction for StrCopy(), RightStr() & MidStr(). Fixed the type of RightStr()'s eString2 parameter (should have been STRING but was ARRAY OF CHAR for some reason).
    * BUG: In 'std/cGfx', fixed the timer continuously generating bogus events, if stopTimer() was called without the last timer event being handled.
    * BUG: In 'std/cGfxSprites', the findSpriteAt() method of cGfxStack could wrongly still return the (undocumented) background sprite.
    * BUG: In 'std/cSnd', fixed stereo sounds being silent for their second half.
    * BUG: In 'std/cGui', fixed string objects (like cGuiString) not generating an event when setState() was used on them.
    * BUG: In 'std/cGui', fixed string & number objects generating events despite their contents not changing (in several different circumstances).
    * BUG: In 'std/cGui', fixed cGuiStringBox.getState() not returning anything after the GUI is built.
    * BUG: In 'std/cGui', fixed getState() returning NILS instead of an empty string for cGuiString/etc, if setState() had never been called.
    * BUG: In 'std/cGui', fixed crash if program exited before App was built.
    * BUG: In 'std/pShell', Amiga; fixed ShellArgs() to return the exact supplied program parameters, rather than stripping quotes & extra spaces. (Unfortunately still has the old behaviour on Windows.)

    For the full list of changes & additional details, please see the documentation's History chapter.
    Author of the PortablE programming language.
    It is pitch black. You are likely to be eaten by a grue...
  • »14.07.13 - 19:30
    Profile Visit Website