Welcome, Guest. Please login or register.

Author Topic: Hello my first Thread  (Read 6292 times)

Description:

0 Members and 1 Guest are viewing this topic.

Offline Karlos

  • Sockologist
  • Global Moderator
  • Hero Member
  • *****
  • Join Date: Nov 2002
  • Posts: 16867
  • Country: gb
  • Thanked: 4 times
    • Show all replies
Re: Hello my first Thread
« Reply #14 from previous page: December 05, 2010, 03:06:25 PM »
@franko

Now that this MOS/WOS mystery has been put to rest, what's your specific beef with datatypes?

I'm a bit surprised to hear them referred to as the "worst thing ever invented for 68K". How is a modular system of file descriptors and corresponding codecs that allows applications to open new formats they couldn't support previously a bad thing?

If anything, my only criticism of them has been that their implementation did not run far enough, support for exporting data in a particular format was often overlooked. As an import mechanism, however, they are incredibly useful.
int p; // A
 

Offline Karlos

  • Sockologist
  • Global Moderator
  • Hero Member
  • *****
  • Join Date: Nov 2002
  • Posts: 16867
  • Country: gb
  • Thanked: 4 times
    • Show all replies
Re: Hello my first Thread
« Reply #15 on: December 05, 2010, 04:14:41 PM »
Quote from: Franko;597261
@ Karlos

Right then... DataTypes... where do I start... :rolleyes:

Generally, using Datatypes in comparison to a dedicated self contained util are slow in comparison... :)


That depends very strongly on the datatype. On OS3.9, the picture.datatype is capable of using PPC for colour remapping and dithering. That made a big difference on my machine. Coupled with PPC capable datatypes for png, jpg etc. I found that multiview ended up being significantly faster than most "dedicated" 68K image viewers that were capable of viewing such formats directly (Hardly a surprise, considering the performance difference between 68040@25MHz versus 603e@240MHz).

Quote
The modular concept of Datatypes is another big no no for me, I prefer code to be one piece (ie: self contained) where possible and not rely on installing lots of extra libraries and other small files scattered here there and everywhere all over your HD... :(


The whole OS is modular and always has been. If a criticism of datatypes is that it's modular, then you might as well regard the whole OS as the "worst thing ever invented for 68K" for exactly the same reason.

Far from being scattered all over the place, datatypes live in SYS:Devs/Datatypes (descriptors) and SYS:Classes/Datatypes for the actual implementations. Client applications also require SYS:Libs/datatypes.library.

Quote
I know so called self contained utils use various OS libraries and sometime some external ones, but these are usually contained in the ROM and not scattered all over the HD to the same extent that most Datatypes requires.


Again, scattered is a big misnomer. The AmigaDOS directory structure is very well organised compared to most operating systems.

Quote
It's one of my biggest bugbears on the Amiga is a program or util that uses this so called modular approach and is not as self contained as it could be, the likes of MUI or ImageStudio for example and the hundereds of so called modules that they use scattered all over the place... :(


MUI classes and libraries pretty much live in the one place on your HD too.

Quote
I reckon my reasons for disliking such things goes way back to the day's when things mostly ran from floppies and if you had 4Meg of fastram this was a luxury (MUI was totally unusable if you had no HD). This was when I first began coding in 68k and I followed the path of what most coders were doing back then, make your prog as small as possible, self contained as much as possible and to run on as basic a system as much as you could.

I know those constraints don't apply as much today, with almost everyone having HDs, plenty of extra ram & accelerators, but it's just a habit and method that has stuck with me to this day. I very rarely use Workbench to do anything and operate mainly from the Cli/Shell and a customised version of DirWork that I made cos I don't like Dopus that much either, but thats another story... :)


You have a BlizzardPPC with 256MB of RAM on it and I strongly doubt you are still using a floppy-only system. I don't see how your criticism of stuff being "scattered" all over your HD really apply any more.
int p; // A
 

Offline Karlos

  • Sockologist
  • Global Moderator
  • Hero Member
  • *****
  • Join Date: Nov 2002
  • Posts: 16867
  • Country: gb
  • Thanked: 4 times
    • Show all replies
Re: Hello my first Thread
« Reply #16 on: December 05, 2010, 04:43:40 PM »
Quote from: Franko;597270
Don't like OS3.9 (ask MrMoonlight about that one)... I've had enough of OS3.9 recently to last me a lifetime with that bloated piece of nonsense that is OS3.9 :)

Fair enough, but you have to accept that having your PPC do all the decoding, colour conversion/reduction and dithering to support your old 68K application is a lot faster than your old 68K application doing it all by itself.

Quote
I know, but the real workings of the OS is held in ROM and not on the HD, again that's a whole other debate... :)

Quote
Not true, they may live in a directory but unless you've defragged the HD the actual code/data wont all be sitting happily side by side, you'll find blocks of data scattered all over the HD... :)

That's a pretty irrelevant statement - your system partition is only going to end up defragmented if you routinely delete and add files on it. Even then, you could be using a solid state drive, in which case our objection to fragmentation makes even less sense since seek time is totally unaffected.

My used 3.x installs tend to run entirely from RAD, btw ;) See this 3.9 screenshot. Notice the drive labelled "Booty" ? That's actually a RAD disk that is created on cold boot. My 3,x disk based startup-sequence opens an ASL file requester asking which image to use. There are images (basically lzx archives) from 3.0 up to 3.9 with various configurations. These are then extracted to the RAD, it is made bootable and then the system reboots.

Quote
Agreed it's better than most, but before you defrag your disk run something like ReOrg and see just how scattered your files in any one directory really are... :)

I refer you to the statements above ;)


Quote
I already said in my previous post that it doesn't apply as much these days. I haven't used a floppy in about 10 years and dumped about 4000 of them about 4 years back as I couldn't even give them away... :)

So, you agree that your objections don't really apply any more but still regard modular operating system components as a really bad idea?

Curious :)
« Last Edit: December 05, 2010, 04:48:17 PM by Karlos »
int p; // A
 

Offline Karlos

  • Sockologist
  • Global Moderator
  • Hero Member
  • *****
  • Join Date: Nov 2002
  • Posts: 16867
  • Country: gb
  • Thanked: 4 times
    • Show all replies
Re: Hello my first Thread
« Reply #17 on: December 05, 2010, 05:12:32 PM »
Quote from: Franko;597278
I have enough memory to comfortably to run the system from RAD: but due to the fact that I'm always disassembling and rewriting code and generally hacking software to see what can be done with them, RADs not a good option for me as the aforementioned activities can corrupt it... :)


Exactly, which is precisely why I use it as I tend to use 3.x for development and testing. I'd much rather trash a volatile and easily restored memory disk than my actual HD.
int p; // A
 

Offline Karlos

  • Sockologist
  • Global Moderator
  • Hero Member
  • *****
  • Join Date: Nov 2002
  • Posts: 16867
  • Country: gb
  • Thanked: 4 times
    • Show all replies
Re: Hello my first Thread
« Reply #18 on: December 07, 2010, 03:42:07 PM »
Quote from: Franko;597574
That's something I don't understand why most software for the 68k/PPC side of things on the Amiga was released in the WarpOS versions and not the vanilla PPC versions instead. As when you do any speed comparisons WarpUP versions always run slower... :confused:


It depends. Early versions of PowerUp suffered a larger performance hit when switching between 68K <-> PPC.

On my machine, timing a round trip context from PPC to an empty 68K routine and back took around 2ms for PowerUP and 1ms for WarpOS. For context-switch heavy code, that made quite a difference. Later versions of the PowerUP kernel seemed to close that gap.

Quote
Was it easier to program in WarpUP than plain old PPC (PowerUp) , I wouldn't have thought so, anyone who has ever written something in WarpUP able to clarify this... :)


No, the same caveat applied to both: write your code to minimise context switches.

Back in those days, I wrote myself a simple library in vbcc that provided a simple multiple buffered Screen (or window with offscreen BitMap) with input handling, stream handling and other features. The implementation of the display context had a single "refresh" method, that when you invoke it, does a Run68K() call (WarpOS). The 68K code it invoked then does all the screen buffer switching and gathers all the IDCMP messages into a local buffer where keypresses were decoded into their character codes and other such things. On return, the PPC then invoked user-supplied callbacks for the buffered input events before returning completely to the callee.

In this manner, refreshing the display and processing the input events took just 2 context switches - to 68K and back. Hard to optimize it any further than that.

I saw a lot of code written in those days that just treat OS calls normal. This was in part encouraged by compilers like StormC that made it transparent. End result was code that resulted in a context-switch orgy.
int p; // A
 

Offline Karlos

  • Sockologist
  • Global Moderator
  • Hero Member
  • *****
  • Join Date: Nov 2002
  • Posts: 16867
  • Country: gb
  • Thanked: 4 times
    • Show all replies
Re: Hello my first Thread
« Reply #19 on: December 07, 2010, 04:11:02 PM »
@Franko

Haven't you actually written any PPC code for your machine? Seems an odd accelerator card to have bought for a guy that seems to hate almost everything about the platform that appeared after OS2.1. You could have gotten a faster clocked 68060 board for less than you probably paid for yours...
int p; // A
 

Offline Karlos

  • Sockologist
  • Global Moderator
  • Hero Member
  • *****
  • Join Date: Nov 2002
  • Posts: 16867
  • Country: gb
  • Thanked: 4 times
    • Show all replies
Re: Hello my first Thread
« Reply #20 on: December 07, 2010, 06:16:41 PM »
Quote from: Franko;597583
@ karlos

I've always fancied having a go at writing some PPC code, all those extra registers to play with and the challenge of mastering a new language. Only trouble is I don't know of any specific assembler package for writing in PPC.


vasm would be an obvious one.

Quote
I wouldn't want to write using C as I prefer coding in assembly, you wouldn't happen to know of an assembly compiler for writing in PPC would you... :)

Also have you ever heard of PPC680X0 from Coyote Flux, It was/is a 68K to PPC source-code convertor. I have two demo versions of this that were released in 1999 but I don't think a full package was ever released  or completed (can't seem to find anything on the net about it though, the demos were found on an old 100% Amiga CD I used to subscribe to)...)


Sure, I have the last trial version, but I can't say I used it much.
int p; // A
 

Offline Karlos

  • Sockologist
  • Global Moderator
  • Hero Member
  • *****
  • Join Date: Nov 2002
  • Posts: 16867
  • Country: gb
  • Thanked: 4 times
    • Show all replies
Re: Hello my first Thread
« Reply #21 on: December 07, 2010, 06:17:52 PM »
Quote from: kickstart;597597
Theres so much users like extremist islamic these days.


Do you mind? Some of us take offence at that.
int p; // A
 

Offline Karlos

  • Sockologist
  • Global Moderator
  • Hero Member
  • *****
  • Join Date: Nov 2002
  • Posts: 16867
  • Country: gb
  • Thanked: 4 times
    • Show all replies
Re: Hello my first Thread
« Reply #22 on: December 07, 2010, 06:22:09 PM »
Quote from: Franko;597589
Thank's for the info, I don't fancy learning C though as I really don't like C code and the bloated results it gives... :)


I dunno, it isn't that bad. Sure you can write much more compact code in assembler if you know what you are doing but I see the real advantage of using assembler as a means for performance, rather than size optimisation.

Personally, I'd much rather develop code in C, then tune the algorithms and finally, if necessary, reimplement any bottleneck parts that would benefit (ie aren't bound by IO or whatever) in assembler.
int p; // A
 

Offline Karlos

  • Sockologist
  • Global Moderator
  • Hero Member
  • *****
  • Join Date: Nov 2002
  • Posts: 16867
  • Country: gb
  • Thanked: 4 times
    • Show all replies
Re: Hello my first Thread
« Reply #23 on: December 07, 2010, 06:40:53 PM »
Quote from: kickstart;597612
Sorry but offense for this sentence its so stupid.


Considering someone was given a temporary ban for basically using the word "zionist", explain why I shouldn't take an equal measure off offence at people banding around expressions like "islamic extremist"?

Besides, I've yet to meet another muslim anywhere that's as loony and extreme as your average amiga user ;)
int p; // A
 

Offline Karlos

  • Sockologist
  • Global Moderator
  • Hero Member
  • *****
  • Join Date: Nov 2002
  • Posts: 16867
  • Country: gb
  • Thanked: 4 times
    • Show all replies
Re: Hello my first Thread
« Reply #24 on: December 07, 2010, 06:50:39 PM »
Quote from: Franko;597614
Cheers Karlos

Found VAsm here and downloaded it, need to start studying PPC opcodes now...:)



Most obvious differences from 68k assembly are:

1) It's a load/store architecture. None of the basic arithmetic/logic operations work on effective address operands like they can on 68K. One reason why you have so many registers ;)

2) Not as many effective addressing modes (for load/store), but all the obvious ones are more or less covered (indirect, indirect with displacement, indirect with increment/decrement).

3) Triple operand instructions. Well, most of them are of the form A @ B -> C, where any of A, B and C can be the same register. Some instructions take even more operands.

4) Bit positions are enumerated the opposite way round for bitwise/bitfield type operations. Thus Bit 0 is the MSB, rather than the LSB.

5) There are useful bitwise operations (such as masked rotate and masked shift, fused floating point multiply-add) that exist as single instructions on ppc that are good for improving performance of certain algorithms.

6) Optional CC update. Basically, most logic/arithmetic instructions have a notation that allows you to decide whether or not you want the side effects of that instruction to be written to the condition codes. This is especially useful once you start to optimise your code by reordering instructions and you don't want to destroy condition codes that you need to test later.
int p; // A
 

Offline Karlos

  • Sockologist
  • Global Moderator
  • Hero Member
  • *****
  • Join Date: Nov 2002
  • Posts: 16867
  • Country: gb
  • Thanked: 4 times
    • Show all replies
Re: Hello my first Thread
« Reply #25 on: December 07, 2010, 06:55:55 PM »
Quote from: kickstart;597619
This isnt a religion thread...

Neither was the other one... meh.

Quote
... so its only a sentence at this case but feel free to give me a temporal ban.

:roflmao:

Ok, I hereby ban you from time travel/manipulation for 3 days.
« Last Edit: December 07, 2010, 06:58:22 PM by Karlos »
int p; // A
 

Offline Karlos

  • Sockologist
  • Global Moderator
  • Hero Member
  • *****
  • Join Date: Nov 2002
  • Posts: 16867
  • Country: gb
  • Thanked: 4 times
    • Show all replies
Re: Hello my first Thread
« Reply #26 on: December 07, 2010, 06:57:07 PM »
Quote from: Franko;597621
Should help pass some of these long winter nights though... :)


Oh, don't forget that you can also do some load and store with endian conversion on the fly if necessary.
int p; // A