-
Content Count
145 -
Joined
-
Last visited
Content Type
Profiles
Member Map
Forums
Blogs
Gallery
Calendar
Store
Everything posted by vol
-
Maybe I should start a new topic about how to get access to the host resources from the Indus GT... The BBC Micro CP/M systems have detailed docs about how to access the host resources. So maybe later we can discover how to do the same things with the Indus. Anyway I am trying to run CP/M and I am not successful. I have installed the Indus GT device, attached ROM for it. It can boot from the Indus Master disc but it refuses to boot from the Terminal disk. The system boots from this disk when I disable the Indus. When the Indus is enabled it requires something extra to boot from the Terminal disk. Once I accidentally could boot it and then start booting CP/M but after some progress all was stopped. You know every program in my project must satisfy 4 requirements and one of them is capability to measure time.
-
Thank you very much. However without information how to get timings it will be no use. Can we somehow reach the host memory?
-
Thank you very much for your information. The Indus/GT was a really super-thing! I thought that such intellectual disk drives were available only from Commodore. The Indus/GT capability to run CP/M is astonishing! I am going to make a special pi-spigot variant for it. However I need help. Is it possible to get timings in a program running under CP/M? Maybe it is possible if a CP/M program asks the Atari host? Anyway I need information about details how to get a timer value in Atari CP/M program code. If I understood correctly I can use the Altirra emu to run CP/M, didn't I? I have downloaded this emu and run it under my old Microsoft Windows XP under VirtualBox. It is really a very good emu. However under my old Windows help system doesn't work. I have been able to find Indus/GT ROM and CP/M disk images but how to combine all these things and to start CP/M? I booted the terminal disk, run E for 80 column mode and got an empty screen. The instruction says "After the terminal program has been booted, insert the CPM disk into the Indus and while holding down the "drive type" button, press the "error" button; this will boot up CPM, which will ask you to hit the return key to continue. At this point your are booted up and running CPM". It is too cryptic for me, where can I find those two buttons? Are they on Atari keyboard or they are special buttons on the drive? I am also curios about 80-column mode. Does it use 4x8 font matrix?
-
I can also ask you to read this material which has a cite from a very good hardware engineer
-
Thank you. I have done some searches and found almost nothing. I have been able to find Ultrasort for various 8-bit Commodores and its improvement Lightning sort. However the latter is not available in texts, only in scans. There are several more quicksorts for the 6502 published after 2005 but all of them have some drawbacks which reduce their usability. My quicksort implementation is safe so it never crashes your stack and it is never quadratic.
-
The difference between timings shows that the compiler wrongly counts timings for one system. We have 1.2 times excess that means that 60 and 50 Hz are mixed up somewhere. Do you know that the Plus4 (as the C64) system software timers are 60 Hz for both PAL and NTSC models?
-
What are interesting results! They match a 4 MHz system. How is it possible?! The Commodore 64 people had to use a 1 MHz Z80 cartridge, the Commodore 128 people were allowed to use the Z80 at effective 1.7 MHz. What is your system exactly? Would you like to send me a link to its description? Thank you.
-
Your ideas about the 68000 advantages over the 65816 sound quite plausible but they are too abstract and theoretical. We have one example (Sieve of Eratosthenes) where the 65816 shows that it requires 2 times less cycles than the 68000. Let me show you one more. I have another project which might be used for benchmarking - you can find out there that the NMOS 6502 requires even more than 2 times cycles less than the 68000. Indeed you can think that my code for the 68k is less optimized but Xlife-8 shows performance matches the best Amiga cellular automaton programs and this shows that code of Xlife-8 is quite optimized for the Amiga. I am sure that for some data processing the 68000 can be faster than 65816 but I can assume that such processings are rather untypical. The byte transfer is a very common and important operation because it is one of the base operation for text strings. The 65816 is about two times faster for this op than the 68000. However there is something weird about the 6502. Computer companies wanted to be rid of it in the 80s. IMHO it was caused by still unknown reasons. I can only propose a hypothesis that the 6502 was too fast and cheap and could crash several respectable companies. The 68000 was a good choice and the lack of development of the 6502 for 7 years had also a strong effect.
-
Do not forget to turn the plus4 screen off by POKE65286,11. It can be turned on later by POKE65286,27. It is also possible to get the additional 25% speed boost for the PAL Plus4.
-
Thank you but your first link gives us quicksort written in Basic. The second link connects us with a kind of real ML quicksort but there are no sources only a lot of Basic DATA items. We need to decipher it. So you are rather wrong about hundreds implementations for the 6502 which we can directly use for instance in the Atari 800, I doubt that you can find only one.
-
Indeed I meant the 68502. Sorry for this typo. It would be great to test the C65, it is very sad that this fantastic computer was appeared so late and eventually was not released at all. Indeed the 68000 beats the the 65816 when it performs 32-bit arithmetic, but code needs branches, memory transfer, byte and word ops. The 65816 works directly with memory while the 68k needs to load/store registers. Sieve of Eratosthenes quite clear shows that the 68516:68000 speed ratio is close to 1:2 for this task. Indeed I have plans to make a version for the Atari ST. I know that its architecture is easier to understand than the Amiga but it also requires some time. You mentioned combosort, I have checked information about it and found out that it is a variant of shell sort. My tests show that the best shell sort implementations are about 50% faster than combosort. And combosort needs floating point... I have just started a new topic about it - the 68000 beats the 65816 on pi-spigot because the 68000 has hardware division and it is the longest op in pi-spigot. So the ARM results which also doesn't have hardware division are really fantastic.
-
I have implemented several known sort algorithms for the 6502. It is an open github project. I dare to think it is likely that a quicksort implementation there is maybe among the first known. It is odd that quicksort was not realized for 8-bit processors until the second decade of the 21th century. Does anybody know about other implementations of fast sorting methods for the 6502?
-
There is another option - to use the 65808 which is pin-compatible with the 6502. The 65CE02 has faster INC and DEC which are used very often. So the 25% boost is quite plausible. There was a discussion about the 68000 and 65816 - http://forum.6502.org/viewtopic.php?f=4&t=4310 - it shows that a fact that the [email protected] matched the [email protected] is plausible too. Commodore could ask for more advanced processor with 16-bit data bus and Apple limits lifted off. The 65816 memory access cycle is FOUR times faster than this cycle of the 68000. A lot of details about the 68k are gathered here - in particlular there are details about drawbacks of the 68k which coerced companies which used the 68000 to seek an alternative. You know in the 90s no company wanted the 68k. The upgraded 6502 could have had much better prospective. BTW the 65CE02 RTN instruction is quite useful. I remember some programs for the 8086 which used RETN with the parameter quite often. Indeed in the 90s, 8-bit computers looked poor. But it was because they weren't upgraded. MOS Technology men told that they had plans for the 16-bit 6502 in 1976. Commodore stopped all R&D there, then they were producing the C64 for 12 years without modifications! Try to imagine if IBM tried to sell the original IBM PC in 1993! But ppl bought C64 or Amstrad CPC/PCW even in 1994. You know that they also stopped Atari 800, Apple II, ... just voluntaristic without reasons we can know. The Plus4 has about 1.11 Mhz effective CPU frequency in normal screen on mode and about 1.7 Mhz in screen off mode. So the pi-spigot benchmark perfectly matches this information. Thank you very much.
-
Modern pc video cards are often more powerful beasts than their CPU's. IMHO it was something weird about the fate of home computers in the 80's. The Commodore C64 could have been improved much, the C65 could have been made in 1985 or even 1984... GEOS still has some features which modern systems missed. A user if he switched on the Amiga today would use it because it has modern style user friendly GUI. Apple successfully attacked IBM - what if Commodore were working along with Apple? We can also say that home PC's were transformed into game consoles. It is something strange about this case with the Asteroids game. I remember there were sites where was a list of Atari software which was incompatible with the CMOS 6502. I cannot find those sites now. I have been talking about the 65CE02 and 65816 at the same frequency. They wrote that the first is about 25% faster than the second on the 6502 code. The 65C02 is on the contrary slightly slower even than the NMOS 6502 because of slower BCD ops and JMP (abs). I don't know exact timeline of the 65CE02 but it was used in the Amigas which were produced until 1994. You know Commodore initially wanted the upgraded 6502 for the Amiga but they thought that the 68000 was cheaper and chose it. It is known that the [email protected] matches the [email protected] Try to imagine the Amiga 500 which could have been two times faster! The 68k was not bad but it was expensive and not fast. IMHO the easiest way to reduce the interrupt latency is to make long executable instructions interruptible.
-
IMHO almost all home computers from the 80s have the same architecture: a video chip is more important than a CPU.
-
It is sad that so superior computers couldn't reach schools. Bill Mensh told about a problem with the Asteroid game - And, indeed, the the 65816 is generally better than the 65CE02, but the 65816 is slower and it is its serious flaw. Bill Mensch also told that Apple persuaded him to make the 65816 in their way and we all know that Apple strategy was to stop the whole Apple II family. IMHO they didn't want too good processor for the Apple IIgs they for some reasons were stuck in the 68k. Commodore had a crazy management, they killed so many good things that all this is impossible to understand. Jack Tramiel "sold his soul" and acquired MOS Technology stopping all innovation development there and Irving Gould made things much worse. They didn't want to improve the C64, so some ppl suggest that they only developed the 65CE02 as a controller for the Amiga. IMHO the 65CE02 production was only stopped when Commodore stooped itself in 1994. TMPX is a wrong tool for the 65816 code development. I used it because I had only small code. Multiplication and moreover division can slow down IRQ response time and that is not good for a controller. So Bill Mensch is a controller king, he didn't want the fate of the MOS Technology. He refused to make the ARM for this reason. Do you have sources of the combosort?
-
We know that WDC made the 65C02 not completely compatible with the NMOS6502. Some instructions have different timings for both. Asteroids crashed because of different timings for BCD instructions. It is rather crazy for me that the CMOS 6502 (or even the 65816 executing the 6502 code) is a bit slower than the NMOS 6502. The 65CE02 was greatly accelerated it is generally 25% faster than the 6502! It has an additional index register that gives it a better addressing mode than the 65C02/65816 (zp)-addressing, the base register, 16-bit SP, ... It is also crazy for me that WDC didn't try to make their processors as fast as this old one. Indeed the 65816 is generally more powerful because it has 24-bit address space and several other good features but it would have been better if it was based on the 65CE02 than based on the 65C02. BTW If you have interest in the 6502 history I dare to recommend this blog. TMPX is not platform specific, you can run it from any Linux or Microsoft Windows as I do. IMHO it is not very good but I used to use it, I am trying to use vasm now. I have a project where I use vasm - BTW is there some library of good sorting algos for the Atari 800? My implementations show speed only about 2 times faster than the Z80... Thank you. I didn't know about this 6502 bug around NMI. However it is rather a bug in the 6502 documentations so we can rather blame the Atari engineers who didn't test the Antic thoroughly and missed that NMI require one more cycle in some cases. So I can't use MBI.EXE unless I have the Rapidus board? Do you mean ATARI:BBC = 1:1.1173 ? The BBC Micro must be faster. However it should be much faster because its fast RAM isn't utilized completely. BTW were there the Acorn Archimedes in Australian schools?
-
I am curious about your accelerators. How is it about compatibility? We know that Atari refused to replace the NMOS 6502 with the CMOS because some programs didn't work under the CMOS 6502, for example game Asteroid. WDC has been doing nothing for more than 25 years. So it is very unlikely that it can produce anything new. IMHO it would be good if somebody makes the high frequency 65CE02 - it is much better than the 65C02. I know little about softcores but a man ran the pi-spigot using his Acorn Atom with such a core at 100 MHz a year or two ago. You can also read that this implementation of π-spigot is claimed as the fastest but everybody is invited to make it faster. Some ppl tried to make it better for the 6502, x86, PDP-11, 68k, ... No problem. IMHO you can find all information about my tools in the sources. I use tmpx-assembler, awk, sed, and maybe several other standard Unix utilities. The most interesting part is maybe the branch optimizer - you can find it in bbc-folder. It helps to keep all branches within the same pages - you know when a branch crosses a page boundary we have a timing penalty. Thank you for these interesting results. It seems your systems have a sophisticated MMU - they allow such tricks! I have just uploaded pipack-46 which uses a proper way to set $222-vector - thank you. This work with NMI gives the Atari a very interesting flavor. Do you know that the Commodore +4 doesn't have NMI at all? They just cannibalized this processor pin! Sorry I missed what purpose does file MBI.EXE have? Is it a program for Microsoft Windows? Indeed the version for the SuperCPU also uses JMP (abs,X) - it is quite a useful instruction and especially for ROM-coding. However you use a kind of expanded Basic. In my project I have to rely only on stock ROM variants. What is the reason? IMHO the BBC Micro was too expensive, they could utilize its fast RAM much better. If they used it like the plus4 uses it they could get more than 3 effective MHz! Do you know that authors of the pi-spigot algo published it in Pascal? https://www.maa.org/sites/default/files/pdf/pubs/amm_supplements/Monthly_Reference_12.pdf
-
Basic is not a necessity you can use USR($1907) that gives you 200 digits. Basic provides the use of a friendly interface to set number of digits and optionally to set screen off mode. It also helps with floating point division: 49.86 or 59.92 are not easy divisors to handle in ML-code. For the Atari, Basic is used to load ML code too. Many other ports (The Commodore 64/Plus4/128/SuperCPU), BBC Micro, Amstrad CPC, ZX Spectrum, Dragon 32/64, ...) also use Basic. Unix ports use C instead of Basic. Could you tell me when was the Rapidus Accelerator production started? What is this prototype? WDC stopped developing the 6502 long ago. Bill Mensch just says sometimes something strange but does nothing. Three years ago he says that he could make the 6502 at 10 GHz, this winter he even declared 20 GHz! The higher results are caused not the increased frequency but the driver. You can easily finds that the higher results based on the scpu64-5 driver which means that this code uses all advantages of the 65816. The lower results are based on the c64-9 driver which is just the C64 program which was used to test the C64 itself. It is easy to transform the current Atari program for the use of the 65816 advantages, just replace code between start and finish by code from the c64scpu folder. Thank you. You results confirms that Atari800 is a very accurate emulator. Your numbers are a bit less that those in the table which is an outcome of the faster char output of the XEP80. For 3000 digits you must get a number almost equal to that in the table. The Plus4 can toggle the base dot clock divider which is 8 for NTSC and 10 for PAL. This gives 25% speed boost for PAL systems and 25% slowdown for NTSC systems. The Plus4 uses 2 MHz RAM and 2 MHz CPU, the BBC Micro uses 2 MHz CPU and 4 MHz RAM. The Beeb never has memory contention and the price for this is its costly DRAM. The Plus4 sometimes gives 2 MHz access to its DRAM for its CPU. The CPU always uses DRAM at 2 MHz (exactly 1.76) when it is in screen off mode - the only exception are 5 cycles each raster line which the CPU uses at 1 MHz giving 5 cycles to DRAM refreshing. Sometimes when screen is on, the Plus4 CPU is just stopped and all ticks gets its video - this is a famous bad line effect. The Plus4 has such lines twice as many of them as the C64 in standard screen on modes but it can be programmed to use more badlines to show more colors and resolution.
-
It seems you have a kind of SuperCPU for your Atari, the timings are almost identical. So if you use special version of code for the 65816 your systems results will even become approx. 50% better. Thank you very much for your help, the Atari is a very interesting system.
-
This explains why the C64:Atari800 performance ratio is about 1:1.65 and not 1:1.75
-
I've just uploaded version 3 of the program. It uses a portable OUTCHAR now and sets MEMTOP at $1907. So BASTOP after its loading will be $1902 for drac030's system and that leaves only 5 bytes free. So it may cause problems. However Faicuai's system should work nice now. Moving MEMTOP up leaves less memory for π-digits, now the program can print only 3916 digits when its previous version can print 4356.
-
Thank you! So is it the safe lowest address from which it is possible to load ML-code? The program assumes BASTOP at $8xx now. Of course, it is about a value after NEW or reset.
-
BTW should I use LDX #0 before RTS in the new OUTCHAR routine?
-
Thank you it works now. I have asked for a particular system BASTOP-value. The program changes MEMTOP and uses its old value to calculate the total amount of memory which the program can use. So I only need the value of BASTOP.
