Спасибо, 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 (скорей всего слишком много, но работает).
Других изменений не было.
Результаты:
Код:
| 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 |
Похоже на правду. Зримое подтверждение того что BASIC 128 на Спектруме медленней BASIC 48, а Basic 2.997 на Векторе производительней Basic 2.5, причём более чем в 2 раза!
Тест: bench64vc.zip