У бэкашников интересная тема https://zx-pk.ru/threads/32413-mandelbrot-v-ascii-art.html - хорошо бы на Корвете такую красоту построить. Но можно ли как-то сконвeртировать текст в образ кассеты? На гид-эмуляторе для БК есть возможность запускать сценарии, которые переносят любой текст в бейсик. У некоторых эмуляторов есть поддержка вставки текста мышкой... Подскажите, пожалуйста, есть ли для Корвета эмулятор с подобными возможностями?
- - - Добавлено - - -
Оказывается, эмулятор Emu поддерживает вставку текста. Дело пошло...
Поспешил с оптимизмом, функция "paste key macro" работает не так как ожидал. Она игнорирует многие символы, например, скобки, кавычки, =, +, *, ... А документации к эмулятору никакой почти нет. :( Может кто знает секрет как с этим работать?
С помощью b2m удалось наладить перенос бейсик-текстов в эмулятор. Для этого написал сценарий замен, которые превращают бейсик-текст (ключевые слова в заглавных буквах) в последовательность клавиатурных макросов, воспринимаемых эмулятором b2m. Привожу сценарий здесь.
'!' > "{lshift-on}1{lshift-off}"
'"' > "{lshift-on}2{lshift-off}"
'=' > "{lshift-on}-{lshift-off}"
'#' > "{lshift-on}3{lshift-off}"
'$' > "{lshift-on}4{lshift-off}"
'%' > "{lshift-on}5{lshift-off}"
'&' > "{lshift-on}6{lshift-off}"
"'" > "{lshift-on}7{lshift-off}"
'(' > "{lshift-on}8{lshift-off}"
')' > "{lshift-on}9{lshift-off}"
'`' > "{lshift-on}`{lshift-off}"
'{' > "{lshift-on}[{lshift-off}"
'}' > "{lshift-on}]{lshift-off}"
'?' > "{lshift-on}/{lshift-off}"
'|' > "{lshift-on}\{lshift-off}"
'<' > "{lshift-on},{lshift-off}"
'>' > "{lshift-on}.{lshift-off}"
'+' > "{lshift-on}`{lshift-off}"
'~' > "{lshift-on}'{lshift-off}"
'*' > "{lshift-on}={lshift-off}"
';' > "`"
'@' > ";"
'^' > "'"
':' > '='
"a" > "{lshift-on}A{lshift-off}"
"b" > "{lshift-on}B{lshift-off}"
"c" > "{lshift-on}C{lshift-off}"
"d" > "{lshift-on}D{lshift-off}"
"e" > "{lshift-on}E{lshift-off}"
"f" > "{lshift-on}F{lshift-off}"
"g" > "{lshift-on}G{lshift-off}"
"h" > "{lshift-on}H{lshift-off}"
"i" > "{lshift-on}I{lshift-off}"
"j" > "{lshift-on}J{lshift-off}"
"k" > "{lshift-on}K{lshift-off}"
"l" > "{lshift-on}L{lshift-off}"
"m" > "{lshift-on}M{lshift-off}"
"n" > "{lshift-on}N{lshift-off}"
"o" > "{lshift-on}O{lshift-off}"
"p" > "{lshift-on}P{lshift-off}"
"q" > "{lshift-on}Q{lshift-off}"
"r" > "{lshift-on}R{lshift-off}"
"s" > "{lshift-on}S{lshift-off}"
"t" > "{lshift-on}T{lshift-off}"
"u" > "{lshift-on}U{lshift-off}"
"v" > "{lshift-on}V{lshift-off}"
"w" > "{lshift-on}W{lshift-off}"
"x" > "{lshift-on}X{lshift-off}"
"y" > "{lshift-on}Y{lshift-off}"
"z" > "{lshift-on}Z{lshift-off}"
Удалось пусть и очень криво подключить поддержку таймера. Это работает на Корвет 2. Вот весь код ASCII-Mандельброта для Корвета.
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 GOSUB700
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
510 GOSUB900:S=0:FOR Q=0 TO 3:S = 256*S + PEEK(P+29-Q):NEXT:PRINT S / 50
520 END
530 DATA 245,229,42,26,116,35,34,26
540 DATA 116,125,180,194,21,116,42,28
550 DATA 116,35,34,28,116,225,241,195
560 DATA 118,0,0,0,0,0
700 P=&H7400:PL=0:PH=&H74
710 FOR Q=0 TO 29:READS:POKEP+Q,S:NEXT
800 POKE&HFB29,&HFF
810 POKE&HF7F1,PL:POKE&HF7F2,PH
820 POKE&HFB29,&HEF
830 RETURN
900 POKE&HFB29,&HFF
910 POKE&HF7F1,&H76:POKE&HF7F2,0
920 POKE&HFB29,&HEF
930 RETURN
Корветные строчки - это 290 и от 510, результат на https://zx-pk.ru/threads/32413-mandelbrot-v-ascii-art.html?p=1087473&viewfull=1#post1087473
Интересно, что MSX компьютеры и Корвет показали практически идентичную скорость. :)
- - - Добавлено - - -
В процессе работы с Мандельбротом обнаружил, что не могу найти документации по ПЗУ Бейсику Корвета (и по дисковому также не смог). Есть только известная книжка "Знакомьтесь...", в которой изложение обзорное, детального описания бейсика там нет. Удивительно, что так трудно найти (или вообще невозможно по причине отсутствия) руководства пользователя...
Может кто-нибудь знает про документацию на Корвет-бейсик?
Под занавес, скриншот с эксклюзивным Мандельбротом под корветный текстовый экран - 64х16. Жаль, что не сделали возможность 64х32 как на БК.
74447
Повторю свою просьбу, если найдётся информация по корвет-бейсикам, сообщите, пожалуйста.
Powered by vBulletin® Version 4.2.5 Copyright © 2025 vBulletin Solutions, Inc. All rights reserved. Перевод: zCarot