Спасибо, ivagor! Таким образом, выражение позволяющее узнать кол-во секунд приблизительно прошедшее с момента старта компьютера строится аналогично Спектруму:
В процессе адаптации возникло две проблемы:Код:(65536*PEEK(770)+256*PEEK(769)+PEEK(768))/50
1) Так же как и на Спектруме, нельзя просто присвоить выражение переменной или функции и рассчитывать что оно всякий раз будет пересчитываться при вызове. Оно посчитается один раз, присвоится и будет всякий раз выдаваться одно и то же. В принципе, это логично, но на комоде это не так. По этой причине scruss допустил в версии bench64 для Спектрума ошибку, так что время в его версии не идёт, поэтому и результаты bench64zx.bas идентичны bench64g.bas (generic no time). Исправил и выкатил релиз для спектрума на zxart. Аналогично и для Вектора все TIME просто заменяются на выражение выше и вычисляются всякий раз по новой.
2) Не хватало символьной памяти, ошибка "мал буфер" в тесте STRING. Добавил в тест CLEAR 2000 (скорей всего слишком много, но работает).
Других изменений не было.
Результаты:
Похоже на правду. Зримое подтверждение того что BASIC 128 на Спектруме медленней BASIC 48, а Basic 2.997 на Векторе производительней Basic 2.5, причём более чем в 2 раза!Код:| Vector | Vector | Commodore64 | Sinclair | Sinclair | | BASIC 2.5 | BASIC 2.997 | BASIC | BASIC 48 | BASIC 128 | | (3 Mhz) | (3 Mhz) | (1,023 Mhz) | (3,5 Mhz) | (3,5 Mhz) | --------+-----------+-------------+-------------+-----------+------------+ FOR | 91 | 182 | 100 | 21 | 18 | GOTO | 89 | 185 | 100 | 18 | 15 | GOSUB | 75 | 193 | 100 | 19 | 15 | IF | 101 | 219 | 100 | 35 | 29 | FN | 86 | 189 | 100 | 46 | 43 | MATHS | 112 | 225 | 100 | 55 | 55 | STRING | 84 | 139 | 100 | 49 | 44 | ARRAY | 91 | 186 | 100 | 59 | 55 | --------+-----------+-------------+-------------+-----------+------------+ OVERALL | 90 | 186 | 100 | 30 | 26 |
Тест: bench64vc.zip




Ответить с цитированием