fifan (03.12.2023), ivagor (02.12.2023), Oleg N. Cher (02.12.2023), svofski (02.12.2023)
Резюмировал демо программы и собрал на странице.
CityAceE (05.12.2023)
С уважением, Станислав.
Оффтоп
Векторовскую версию уже после конкурса получилось сильно разогнать и этому среди прочего помогло наличие конвертера TXT<->CAS. Если будет подобный конвертер для Специалиста, то можно и на него перетащить оптимизированный вариант. Редактор в бейсике-практик не такой уж плохой по советским меркам начала 90х, но сейчас у меня уже не хватает моральных сил активно работать в нем с программой в несколько десятков строк.[свернуть]
Конвертер есть в одну сторону, выложил вчера вместе с новой версией эмулятора. Собственно, я и вспомнил про этот конвертер, когда захотел посмотреть исходник демы. А вот обратно хуже. Быструю вставку в эмуляторе из буфера обмена я сделал, но пока не на Специалисте В общем, надо подумать...
Я мог бы на досуге поэкспериментировать с подобным конвертором на Pyton. Только я не знаю формат хранения текста. И если он нигде не документирован, то сильно помог бы листинг программы с конкурса в текстовом виде. Хотя можно, конечно, и руками набрать.
Распознал с экрана:
Код:1 REM RCTXTSPEC 2 REM BBC MICRO VERSION BY PAUL MALIN 3 REM SPECIALIST VERSION BY IVAN GORODETSKY 4 CLS1 5 CUR0,247:PRINT"X" 6 PLOT8,250,2: PLOT8,252,2 7 PLOT6,255,2: LINE8,255 8 FORU=64T0319 9 E=(U-64)/256-.5:F=.7:N=E*.9-F*.4:0=E*.4+F*.9 10 I=7:J=248 11 L=SGN(N):M=SGN(0):S=1/ABS(N):T=1/ABS(0) 12 E=(-.5*L-(N>0)>*S:F=-(0>0)*T:Y=0:C=1 13 D=E>F 14 IFDTHENH=F:F=F+T:J=J+M:GOT016 15 H=E:E=E+S:I=I+L 16 PLOTI,J,0:P=PEEK(7901) 17 A=-180/H 18 G=0:IFY>=0THENG=Y 19 PLOTU,G,C 20 C=(NOTC)AND3:Y=128+A:IFY>=0THENG=Y 21 LINEU,G 22 IFP=0THEN13 23 B=240/H:2=31AND32*CI+(N+0)*H*,45+J);W=32/(B-A):V=W*(INT(A)-A) 24 IF(7ANDZ)=00R(7AND(2+4)>=0THEN30 25 IFDTHEN28 26 FORK INT(A+128) TOINT(B+128) 27 PLOTU,K,1-((3ANDV)>=0):V=Y+W:LINEU,K:NEXT:NEXT:GOT037 28 FORK-INT(A+128) TOINT(B+128) 29 PLOTU,K,1-NOT((3ANDV)=0):V=Y+W:LINEU,K:NEXT:NEXT:GOT037 30 FORK-INT(A+128) TOINT(B+128) 31 Q=2:R=7ANDV:V=Y+W 32 IFR>3THENQ=Q+4 33 C=C3ANDR)=00R(7ANDQ)=0 34 IFDTHENC=NOTC 35 PLOTU,K,1-C:LINEU,K 36 NEXT:NEXT 37 REM
Последний раз редактировалось CityAceE; 01.04.2024 в 23:09.
С уважением, Станислав.
cy6 (01.04.2024)
В распознанном есть ошибки распознавания.
Сконвертировано моим старым конвертером на Паскале, вдруг поможет: https://github.com/vpyk/EmuUtils/blo...xt/bsm2txt.pasКод:1 REM RCTXTSPEC 2 REM BBC MICRO VERSION BY PAUL MALIN 3 REM SPECIALIST VERSION BY IVAN GORODETSKY 4 CLS1 5 CUR0,247:PRINT"X" 6 PLOT8,250,2:PLOT8,252,2 7 PLOT6,255,2:LINE8,255 8 FORU=64TO319 9 E=(U-64)/256-.5:F=.7:N=E*.9-F*.4:O=E*.4+F*.9 10 I=7:J=248 11 L=SGN(N):M=SGN(O):S=1/ABS(N):T=1/ABS(O) 12 E=(-.5*L-(N>0))*S:F=-(O>0)*T:Y=0:C=1 13 D=E>F 14 IFDTHENH=F:F=F+T:J=J+M:GOTO16 15 H=E:E=E+S:I=I+L 16 PLOTI,J,0:P=PEEK(7901) 17 A=-180/H 18 G=0:IFY>=0THENG=Y 19 PLOTU,G,C 20 C=(NOTC)AND3:Y=128+A:IFY>=0THENG=Y 21 LINEU,G 22 IFP=0THEN13 23 B=240/H:Z=31AND32*(I+(N+O)*H*.45+J):W=32/(B-A):V=W*(INT(A)-A) 24 IF(7ANDZ)=0OR(7AND(Z+4))=0THEN30 25 IFDTHEN28 26 FORK=INT(A+128)TOINT(B+128) 27 PLOTU,K,1-((3ANDV)=0):V=V+W:LINEU,K:NEXT:NEXT:GOTO37 28 FORK=INT(A+128)TOINT(B+128) 29 PLOTU,K,1-NOT((3ANDV)=0):V=V+W:LINEU,K:NEXT:NEXT:GOTO37 30 FORK=INT(A+128)TOINT(B+128) 31 Q=Z:R=7ANDV:V=V+W 32 IFR>3THENQ=Q+4 33 C=(3ANDR)=0OR(7ANDQ)=0 34 IFDTHENC=NOTC 35 PLOTU,K,1-C:LINEU,K 36 NEXT:NEXT 37 REM
CityAceE (02.04.2024)
Наверняка ты видел, но на всякий случай - можно оттолкнуться от конвертера svofski.
И может начиная с моего оффтопа перетащить посты в раздел Специалиста?
CityAceE (02.04.2024)
Действительно! Распознавалка много нулей перепутала с буквой O. Плюс ещё неточности...
Нет, не видел. Спасибо!
Перенёс.
Для начала вытащил из BASIC-Практик все зарезервированные слова:
Код:CLS FOR NEXT DATA INPUT DIM READ CUR GOTO RUN IF RESTORE GOSUB RETURN REM STOP DPL ON PLOT LINE POKE PRINT DEF CONT LIST CLEAR MLOAD MSAVE NEW TAB( TO SPC( FN THEN NOT STEP + - * / ^ AND OR > = < SGN INT ABS USR FRE INP POS SQR RND LOG EXP COS SIN TAN ATN PEEK LEN STR$ VAL ASC CHR$ LEFT$ RIGHT$ MID$ CIRCLE MERGE AUTO RENUM RCOM DELETE COMP SYST EDIT
Последний раз редактировалось CityAceE; 02.04.2024 в 09:28.
С уважением, Станислав.
Кроме токенов от 80h до CEh (CLS - EDIT) есть еще два
CF - & (шестнадцатеричные)
D0 - AT (не реализовано)
Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)