What was wrong with the Amiga 1000/500/2000?
I can point the next drawbacks:
1) error in timer - http://eab.abime.net/showthread.php?t=82392; 2) no system functions for working with wildcards - it was only corrected in the A1200 (maybe in the A3000 and A600); 3) no functions to get the graphic cursor position - we have only the Move-call to set it - maybe it is still an issue; 4) falsehood about the fast RAM, no fast RAM cards were available for the A500; 5) the mess with "standard" return codes: only 0, 5, 10, 20 are actually allowed; 6) standard utility `ask' provides only two return codes and there is no any other standard way to get information from a user; 7) Basic has only 25 KB free, even the Commodore 128 has 120K, Commodore +4 has 60K, and Commodore 64 has 38K for Basic; 8) iconx doesn't allow SKIP, IF, LAB, ... 9) only limited preemptive multitasking supported because there is no kill-command in Amiga DOS. Maybe I am wrong with some details but it requires some help to be corrected. :) Indeed, I don't know all the drawbacks. Let's make a complete list! :) |
Just some small ones I know for certain. I'm relatively sure you got others on that list wrong as well, but I don't feel like putting in any extra time finding out, as I'm pretty sure I know where this thread is going.
Quote:
Just check the Big Book of Amiga Hardware (https://bigbookofamigahardware.com/). Here's just one of many, many A500 fast ram expansions as an example: https://bigbookofamigahardware.com/b...ct.aspx?id=938 Quote:
Quote:
Anyway, it's not even really true: there are ways to kill processes at least starting with OS 2.0+ (which were available on all the systems you mention), although I will admit I'm not entirely sure whether this was a standard command or one that was part of the developer kit. |
Quote:
I don't understand your claim that "you can use any value and I've certainly had executables that exited with other codes" because there is no way to use them. I only know about the IF-statement for this purpose and it doesn't allow to use anything but five standard values. DOS primitive BAT-files allow to use ERRORLEVEL and I know nothing that corresponds this feature in Amiga DOS. There is no way to kill a process even in the A1200 WB. Indeed there are different multitasking. Microsoft Windows 3.1 can't kill a process but Microsoft Windows 95 can. So Amiga WB was somewhere between them. I also forgot to mention the 10th drawback. 10) a very poor multitasking scheduler - it is easy to hang up all system just increasing the priority of a task above 20. IMHO it is rather impossible in any Unix. |
Quote:
The confusion exists because both are not Chip RAM, so they incorrectly both get called Fast RAM by users. The technical difference is as follows:
Generally the increase in performance for having true Fast RAM on a 68000 based Amiga is around 10-15%. This increases for faster CPU's. Quote:
Quote:
Quote:
Quote:
Anyway, I don't really agree with this to begin with. The scheduler works fine if you use it as instructed. The instructions for changing task priority tell you that you shouldn't increase priorities that high. If you do so anyway, purposefully disregarding how the system works, then that's not the schedulers fault. |
Quote:
Thus, for all practical purposes, AmigaOs cannot remove a running program reliably, unless the program terminates by itself. You can stop it from getting scheduled, but that is not very helpful. |
In that case, I stand corrected. I still maintain it's not a very valid way to determine whether or not the system has pre-emptive multitasking though.
|
Quote:
Quote:
Quote:
Quote:
Quote:
Quote:
Quote:
Quote:
Quote:
|
Quote:
|
No colour composite output, corrected in A600/A1200. That's about it.
|
Quote:
The fast RAM cards for the Amiga 500 were very rare and expensive. It is sad that even http://amiga.resource.cx/performance.html doesn't have data for such cards. :( I can actually activate Fast RAM only after I ran FastMemFirst system utility. There is no such program for the A1200 which activates its fast RAM automatically. The results are here. So I can note that Fast RAM for the Amiga 500 provides only about 2% speed boost - it is rather funny. But you are definetely wrong about return codes. They can have any values but you can use only five of them. It is, indeed, really crazy. IMHO it was a strange Commodore manager who forced engineers to cannibalize normal usage of return codes. :( The possibility to kill a process is definitely a part of the proper preemtive multitasking because such kind of multitasking assumes that the system can control its processes. It is well known that TripOS, which was used as a base for Workbench, has a serious flaw - it lacks resource tracking, and this maybe caused a problem with the process kill. It is sad that you don't want to help people to get a more complete list of the first Amigas drawbacks. It is quite natural for a scientific approach to systematize things. I have never read a complaint that the nice utility can crash a system. For example, nobody mentions `nice' here - https://unix.stackexchange.com/quest...single-command The use of `nice' can cause problems - https://www.linuxquestions.org/quest...Wa84FE4E9J8EwQ - but is not the system crash. However you are rather right. But you can't set too high priorities in Unix as a user, it requires rights of superuser. :) So in Amiga OS, it would be better to use a bit different "mechanics" for working with the priority. Quote:
Quote:
Quote:
Quote:
Quote:
Quote:
|
Quote:
The FastMemFirst utility doesn't activate Fast RAM at all. It is merely meant to make the OS allocate "true" fast memory before it allocates "fake" fast memory (i.e. slow memory). It's there for people who have both a trap-door expansion and a side-car expansion on their A500. As for your benchmark, whether or not you see a performance increase with true Fast RAM on the Amiga 500 is dependent on what the system is doing. Under some situations there will not be much difference between a Chip RAM only A500 and one with Fast RAM, under others it can be as much as 15%. This is because Chip RAM on the A500 is actually fast enough to normally feed the 68000 without wait states (i.e. it already runs mostly at full speed). It's only when you start to saturate the Chip Memory bus with high levels of DMA (such as high resolution GFX in many colours, or using the Blitter) you'll start to see advantages. Quote:
Quote:
You're re-defining a well known term here. Be my guest, but don't talk about using a scientific approach in that case. Quote:
Quote:
Note here that all mutlitasking OS's around support setting task priorities at levels which can cause serious problems. This is not an Amiga only thing or an Amiga problem. The reason that it's possible is that there are situations in which you do want or need a priority above 20 in Amiga OS. ChangeTaskPri is not designed to be randomly used, it's a system maintenance tool designed for those that know what they're doing. You might just as well claim that Amiga OS is flawed because it lets you format your boot disk. Quote:
Claim #10 was that the multitasking scheduler was weak because using system tools inappropriately can end up hanging the system. I showed you this is an strange claim because these kind of things are possible in many OS's so they're not really an Amiga specific (let alone Amiga 500/1000/2000 specific) problem or drawback. Quote:
Fundamentally however, if you are running through the OS, you should use the OS's functions for timing. Not doing so and then claiming it's the systems fault is really not that smart. The Amiga has a multitasking operating system, you're not supposed to randomly access the hardware unless you intend to kill the OS to begin with (and there are plenty of people who think you shouldn't do that either). If you leave the OS running, use the OS functionality. There's really no excuse to not do so. It's an extremely bad practice that won't work on Unix or Windows either. Quote:
Quote:
|
Quote:
Quote:
Quote:
Quote:
Quote:
Quote:
Quote:
Quote:
Code:
if exists sys:utilities/clock BTW I have upgraded my list in the next post. One new drawback has been added there. |
I have upgraded my list of the A1000/500/2000 drawbacks. I have removed 3 items and add one:
1) a minor problem with a timer, you can't normally use it for more than 21 minute interval on the A500, but on the A1200 there is no such limit; 2) no system functions for working with wildcards - these functions was provided only on ROMs available since 1990; 3) misguiding information about trap door RAM expansion cards, no information that the fast RAM only slightly faster than Chip RAM; 4) the mess with "standard" return codes: only 0, 5, 10, 20 are actually allowed; 5) standard utility `ask' provides only two return codes and there is no any other standard way to get information from a user; 6) Basic has only 25 KB free, even the Commodore 128 has 120K, Commodore +4 has 60K, and Commodore 64 has 38K for Basic; 7) iconx doesn't allow SKIP, IF, LAB, ...; 8) no normal variables in CLI like variables in Unix or even DOS shells. Indeed the Amiga had a lot of advantages. Generally the Amiga in 1986 was better than any other personal computer of that time. But nothing is perfect. The first Amigas had some drawbacks. Why do not try to count them? :) |
Quote:
Quote:
The OS deals with interrupts slightly differently between version though, which is where your problem comes from. Like I already pointed out: if you let the OS run, don't use the hardware timer, but rather use the OS functions. This is true regardless of the system you choose to program for. Note here that quite literally thousands of programs that use the hardware timers on the A500 just fine. I've done so myself without any issues. Leffmann pointed out that "The ToD works fine, you're just missing something". That means he's telling you that your method is flawed. Note also that the in very thread you link to, you did end up with working HW timer code. This also shows the hardware timer works just fine and that it's interactions with the OS that you didn't quite understand that are the issue. Again: don't use HW banging code if you want the OS to run. This won't work on other systems either. Quote:
Quote:
More in depth technical documentation (such as the developer manuals) has always included an explanation of the differences between the various RAM types. Quote:
Here's part of an example script I copied from another EAB thread I found when Googling this: Code:
LAB Question |
Quote:
|
Quote:
|
Quote:
Quote:
Examine() and ExNext() are available on any Amiga. Quote:
The rest is mostly nonsense, but since Amiga shell is not my area, and what little I knew is mostly gone, so I won't comment. |
A2000: Case is the size of a small house yet you can only fit 2x3.5" and 1x5.25" devices in it.
|
Quote:
https://issuu.com/ivanguidomartucci/...ic---ebook-eng page 96 |
Quote:
Now, I never actually programmed in Amiga Basic, so I didn't know this. But I suppose this was common knowledge (what, with it being in the manual and all)? |
All times are GMT +2. The time now is 10:30. |
Powered by vBulletin® Version 3.8.11
Copyright ©2000 - 2024, vBulletin Solutions Inc.