23 January 2021, 18:31 | #1 |
Registered User
Join Date: Mar 2016
Location: Ozherele
Posts: 229
|
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! |
23 January 2021, 18:48 | #2 | |||
Registered User
Join Date: Jul 2015
Location: The Netherlands
Posts: 3,408
|
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. |
|||
23 January 2021, 21:27 | #3 | |
Registered User
Join Date: Mar 2016
Location: Ozherele
Posts: 229
|
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. |
|
23 January 2021, 22:01 | #4 | |||||
Registered User
Join Date: Jul 2015
Location: The Netherlands
Posts: 3,408
|
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. Last edited by roondar; 23 January 2021 at 22:12. |
|||||
23 January 2021, 22:58 | #5 | |
Registered User
Join Date: Jan 2019
Location: Germany
Posts: 3,214
|
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. |
|
23 January 2021, 23:00 | #6 |
Registered User
Join Date: Jul 2015
Location: The Netherlands
Posts: 3,408
|
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.
|
23 January 2021, 23:07 | #7 | |||||||
Registered User
Join Date: Jan 2019
Location: Germany
Posts: 3,214
|
Quote:
Quote:
Quote:
Quote:
Quote:
Quote:
Quote:
Err, what? IconX just starts a regular shell. Of course it can use "If". There is none because there is no resource tracking. See below. |
|||||||
24 January 2021, 03:35 | #8 |
Registered User
Join Date: Sep 2007
Location: Stockholm
Posts: 4,332
|
|
24 January 2021, 11:11 | #9 |
Registered User
Join Date: Nov 2010
Location: Sweden
Posts: 528
|
No colour composite output, corrected in A600/A1200. That's about it.
|
24 January 2021, 13:43 | #10 | |||||
Registered User
Join Date: Mar 2016
Location: Ozherele
Posts: 229
|
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:
Please clarify your answer. What is a way to use return codes? Excuse me but I can give you a cite from AmigaDOS Inside & Out (by Ruediger Kerkloh, Manfred Tornsdorf, Bernd Zoller): "All script files can be started this way, with a few exceptions. IconX executable script files can only contain commands that can be entered directly in AmigaDOS. Commands like Skip, Lab, If, etc. are not allowed". |
|||||
24 January 2021, 15:20 | #11 | |||||||||
Registered User
Join Date: Jul 2015
Location: The Netherlands
Posts: 3,408
|
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:
Last edited by roondar; 24 January 2021 at 15:45. |
|||||||||
24 January 2021, 17:51 | #12 | ||||||||
Registered User
Join Date: Mar 2016
Location: Ozherele
Posts: 229
|
Quote:
Quote:
Quote:
Quote:
Quote:
Quote:
Quote:
Quote:
Code:
if exists sys:utilities/clock sys:utilities/clock endif BTW I have upgraded my list in the next post. One new drawback has been added there. |
||||||||
24 January 2021, 17:52 | #13 |
Registered User
Join Date: Mar 2016
Location: Ozherele
Posts: 229
|
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? |
24 January 2021, 18:27 | #14 | |||||
Registered User
Join Date: Jul 2015
Location: The Netherlands
Posts: 3,408
|
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 echo "" echo "Bitte wählen Sie das Quell-Laufwerk und Ziel-Laufwerk" echo "1 = QUELLE df0: ZIEL df1:" echo "2 = QUELLE df1: ZIEL df0:" echo "3 = QUELLE df1: ZIEL df2:" echo "4 = QUELLE df2: ZIEL df1:" echo "5 = QUELLE df0: ZIEL df2:" echo "6 = QUELLE df2: ZIEL df0:" SETENV >NIL: choice ? IF $choice NOT VAL GT 0 echo "Falsche Eingabe bei der Auswahl des Quell und Ziel Laufwerks." wait 1 SKIP BACK Question ENDIF IF $choice GE 7 echo "Falsche Eingabe bei der Auswahl des Quell und Ziel Laufwerks." wait 1 SKIP BACK Question ENDIF Last edited by roondar; 24 January 2021 at 18:54. Reason: Clarified one part of the post. Also added reply to drawback #8 in prior edit. |
|||||
24 January 2021, 20:33 | #15 |
Registered User
Join Date: Dec 2010
Location: Athens/Greece
Age: 53
Posts: 719
|
|
24 January 2021, 20:47 | #16 |
Registered User
Join Date: Sep 2007
Location: Stockholm
Posts: 4,332
|
|
24 January 2021, 21:52 | #17 | |||
Registered User
Join Date: Jun 2016
Location: europe
Posts: 1,038
|
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. |
|||
24 January 2021, 21:56 | #18 |
Registered User
Join Date: Mar 2020
Location: UK
Posts: 243
|
A2000: Case is the size of a small house yet you can only fit 2x3.5" and 1x5.25" devices in it.
|
24 January 2021, 22:27 | #19 | |
Registered User
Join Date: Dec 2010
Location: Athens/Greece
Age: 53
Posts: 719
|
Quote:
https://issuu.com/ivanguidomartucci/...ic---ebook-eng page 96 |
|
24 January 2021, 22:31 | #20 | |
Registered User
Join Date: Jul 2015
Location: The Netherlands
Posts: 3,408
|
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)? Last edited by roondar; 24 January 2021 at 23:04. |
|
Currently Active Users Viewing This Thread: 1 (0 members and 1 guests) | |
Thread Tools | |
Similar Threads | ||||
Thread | Thread Starter | Forum | Replies | Last Post |
Cheap mass storage on A500/500+/1000/2000 | TroyWilkins | support.Hardware | 23 | 29 September 2020 09:07 |
AMIGA 2000 - chipram mod gone wrong. | Moklar | support.Hardware | 0 | 24 February 2020 12:43 |
ScanPlus ECS Scandoubler for Amiga 500, 500 plus, Amiga 1500 and Amiga 2000 | RetroPassionUK | MarketPlace | 0 | 04 January 2020 16:24 |
Amiga 1000 Software on 500 | Weemus | Amiga scene | 11 | 09 May 2012 04:48 |
FS/FA: ICD Flicker Free Video/Scandoubler for Amiga 500,1000,2000,Toaster | vamigan | MarketPlace | 5 | 22 September 2007 02:37 |
|
|