10MHz Z80 computer - BBC BASIC benchmarks
HTML-код
- Опубликовано: 9 сен 2024
- I ran a couple of simple benchmark programs in BBC BASIC on my Z80 computer running at 10MHz for the RUclips user ggunderscoreit: • Homemade Z80 COMPUTER ...
The first benchmark ("BM1") completes in ~3.9s.
The second benchmark ("BM9") completes in ~302s (5m02s). I have sped it up 32x in this video!
@BinaryReader Thanks, but this video probably doesn't mean much on its own - please see the other video linked to in the description to see why I'm running these two programs. Unfortunately, it doesn't look like you can post an unlisted video as a video response so here it is...
T-83 Silver edition here... I love TI basic
@ggunderscoreit Thank you - the 10MHz Z80 certainly helps matters. :-)
BBC BASIC is entirely interpreted (though it is at least tokenised). Its floating point format uses a four byte binary mantissa with a one byte exponent. If the exponent is set to zero then the mantissa is handled as a straightforward integer, which means that integer operations on real numbers are very fast.
More information can be found on the BBC BASIC website.
@Shaunakde With the exception of the voltage regulator and the 74LS04 used in the crystal oscillator circuit nothing gets noticeably above room temperature (from the scientific test of touching the chips). I don't use any additional heat sinks.
The temperature rating for each chip will be in its datasheet and will depend on the specific part type; the standard Z80 seems to be rated from 0°C to 70°C, with the "extended" version rated from -40°C to 85°C and the "military" from -55°C to 125°C.
tried to make the same calculation on my late 2013 iMac 27'' with the goal of also getting 3.9 seconds for BM1 . I was expecting a 1000 times bigger loop, instead I had to increase the loop by 1.400.000 times !!!! DAMN !!! looks that 10 Mhz is highly misleading . Oh yes by the way this only 1 Core out of 4. So the total speed diffirence is 6 million times with your Z80 and probably 12 million times faster compared to my first computer Amstrad CPC 6128 !!!!! LOL
here is the C benchmark
#include
int main()
{
double s=0;
double x=0;
for(int i=1;i
@willrandship Mostly, yes. Both use Richard Russell's BBC BASIC (Z80) internally; this particular version is the generic CP/M one.
Yes, though I'm not sure how much by. 10MHz is more than fast enough for my needs, thankfully. :-)
Micro Men is a really excellent film and it's a shame they haven't released it on home video yet. This video is testing the Z80 version of BBC BASIC (written by Richard T Russell) and not the BBC Micro's 6502 version.
I like Micro Men too! I watched a tens of times, maybe!
@ZXAmiga64
Hello in my Z80/AM95 it is AM9511 which runs hot, not the Z80 chip. AM9511 has two voltages (+5 and +12V both at 95mA max when enabled: pakage dissipation is 2 Watt so 9511's package alone will dissipate enough heat to satisfy these requirements. Anyway I'm planning to put a fan close to it. Regards. GG
@ZXAmiga64 Cheers; I'm not sure what heat you're referring to, though. The voltage regulator and crystal oscillator logic chips are warm to the touch but not worryingly so...
The BBC Micro used an MC6845 (same as the CPC) and had a number of different video modes but didn't do anything particularly exotic beyond a teletext mode (no game-friendly tilemap/sprite generators like the TMS9918 in the MSX). I'm not sure what you mean by "started life" as the BBC Micro ran BBC BASIC natively (on the main 6502) - the Z80 version came later, though yes I am awar the BBC Micro had an optional Z80 coprocessor.
is this computer has a Graphics Mode or only Text Mode?
@benryves
This enhances your results ! Regards
@benryves Hi! This enhances your results! Regards
Great results! not only because your machine is very fast but also because it brings high precision. Are your BBC routines compiled or interpreted or an a hybrid?
Old School all learned to love computers.
Z80, 6502 forever.
awesome bro :)
@MarijnStevens Hehe, I'm sure many others would too. :-)
I'm running a 20mhz Z80 at 24Mhz. Its a shame there's no PIO, CTC and SIO to go with it. I've had to design a PIO with 74F series logic gates. I will have to find out how to implement the interrupt mode 2 logic for a Z80 CTC as I would rather not rewrite all my software. I'm hoping a 6850 UART will be fast enough for a 24Mhz Z80. I know they work with a Z80 at 12Mhz. absolutely ok.
that's awesome!
@sensitivebeat Nope, BASIC and Pascal are the sort of languages you'd use here. ;-)
I don't know who wrote BM9 but they in no way deserve to call themselves a programmer. You NEVER jump out of a FOR/NEXT loop!!!
40 and 80 column text only modes? how come they cant be used like zx81 hi rez style?
ahh yess the famous BBC micro computer.... those guys developed the ARM chip...everyones cell pone has one today.....they were the first to use the arm architecture
much to clive sinclairs disapontment his Z80 spectrum was going head to head with the bbc micro....fantastic movie about this computer ...called micro men
So, programs written for this would be code-compatible with the 83+ app, right? It looks like it's the same program anyways :P.
did anyone develop a networked version to use more than one machines processor like occam!
@sensitivebeat No, just for fun, sadly.
This is fantastic! Do you got the BM2 - BM8 code?
I've read on your blog about only having to port the BIOS part of CP/M to some specific machine - what about existing software for CP/M, like the BBC basic etc, do they usually require a specific machine like Z80, or could they run, just using the OS, on any machine?
I thought about toying with one of the microcontrollers I am familiar with and which would run circles around a Z80, building a computer. A simple OS such as CP/M could be a nice playmate for this hardware ^^
Greets from an old time GDN member who just found you hosting the old comics :)
Hello, and cheers for the comment!
Software for CP/M is CPU-specific - most CP/M machines use an 8080 or compatible CPU, such as the Z80, however some software (such as BBC BASIC) requires the Z80. There is an x86 version of CP/M but I have no real experience with it, however "regular" 8080/Z80 CP/M software will not run on the x86 version.
CP/M does provide a number of generic routines to provide a standard interface to the hardware for CP/M software to use, but these are fairly simple - e.g. there's no way to move the text output cursor to a certain position, so software that needs to do so will either assume a certain terminal standard, support a number of different standards or will need to be customised (possibly via an assembly patch) to get it to run properly on your machine.
One option could be to emulate a Z80 on your microcontroller and to run CP/M on top of that.
benryves Thanks for the reply, I was afraid of that.
Thank You :) QC
can you overckock ?
Not sure what you're asking here, sorry. :-(
Which variant of the Z80 CPU chip you used? 10MHz seems a little high according to specifications.
Nothing too fancy, are you looking for the specifications for a version only rated for lower clock speeds? A Z84C0010PEG should be good for speeds up to 10MHz. :)
Can it write EEPROMs or FLASH with such clock?
I guess that would depend on the rating of the specific EEPROM or flash chip you're using. In this project I use an SD card with a 10MHz clock, but the Z80 doesn't talk to it directly (the Z80 instead communicates with an AVR microcontroller being used as an I/O controller, and the AVR accesses the SD card over SPI).
FAKE
Excuse me?