Человек опубликовал интересную программу для отрисовки Манделброта на бейсике. Программа интересна двумя моментами:
1) она рисует через ASCII-псевдографику;
2) она написана в максимально упрощенном бейсике, что позволяет запускать её без изменений на практически любом бейсике.
Эти моменты естественно позволяют потестировать в том числе и БК, увидеть оригинальный бэкашный Манделброт и узнать очередной раз насколько хорош был "шитый" код.
У меня, к сожалению, возникли две проблемы:
1) на БК (и даже 0011М) как и наверное других сделанных в СССР домашних и учебных компьютерах почему-то нет поддержки таймера в бейсике (переменной ti), которая есть практически в любом зарубежном домашнем компике с начала 80-х;
2) не знаю как перенести текст бейсика в БК, его нужно как-то конвертировать кассетный образ...
Наверное вторая проблема решается, но с первой мне не справится. Возможно где-то есть расширение бейсика с поддержкой таймера. Могу только надеяться на чью-то помощь с запуском этой программы и получением скриншота.
Код программы ниже.
Ссылка на тему, где этот код появился - http://forum.6502.org/viewtopic.php?f=1&t=6323Код:100 rem a basic, ascii mandelbrot 110 rem 120 rem this implementation copyright (c) 2019, gordon henderson 130 rem 140 rem permission to use/abuse anywhere for any purpose granted, but 150 rem it comes with no warranty whatsoever. good luck! 160 rem 170 c$ = ".,'~=+:;[/<&?oxOX# " : rem 'pallet' lightest to darkest... 180 so = 1 : rem set to 0 if your mid$() indexes from 0. 190 mi = len(c$) 200 mx = 4 210 ls = -2.0 220 tp = 1.25 230 xs = 2.5 240 ys = -2.5 250 w = 38 260 h = 21 270 sx = xs / w 280 sy = ys / h 290 q = time 300 for y = 0 to h 310 cy = y * sy + tp 320 for x = 0 to w 330 cx = x * sx + ls 340 zx = 0 350 zy = 0 360 cc = so 370 x2 = zx * zx 380 y2 = zy * zy 390 if cc > mi then goto 460 400 if (x2 + y2) > mx then goto 460 410 t = x2 - y2 + cx 420 zy = 2 * zx * zy + cy 430 zx = t 440 cc = cc + 1 450 goto 370 460 print mid$(c$, cc - so, 1); 470 next 480 print 490 next 500 print 510 print (time - q) / 60 520 end
Результаты:
К сожалению, выбрал слишком широкий мандельброт, на Спеках, Драконах, TI99/4 и Кокошных Танди не влезет в экран: 32 символа - очень мало. Но если не нужна картинка, то можно и все замерить, даже калькулятор МК-85. Может кто попробует?Код:ABC 802 93 BBC Master (mode 7) 111.95 BBC Master (mode 6) 112.04 BBC Micro B (mode 7) 144.96 Amstrad CPC 6128 163.43 Электроника БК0011M 164.66 Электроника БК0010-01 205 Commodore 128 (fast) 297.57 Tandy MC-10 349.14 Commodore 64 384.16 Atari 800XL 394.12 Dragon 32/64 405.02 ZX Spectrum 422 Commodore +4 485.85 MSX2 554.98 Корвет ПК-8020 564.92 Commodore 128 620.20 TI-99/4A + E/A 691 TRS-80 Model 3 694 TRS-80 Model 1 773 TI-99/4A + XB 774





Ответить с цитированием
Размещение рекламы на форуме способствует его дальнейшему развитию 
