|
nedoPC.orgElectronics hobbyists community established in 2002 |
|
откуда растут уши у советских бейсиков
Author |
Message |
Lavr
Supreme God
Joined: 21 Oct 2009 08:08 Posts: 7777 Location: Россия
|
28 июня 2011 года Shaos отпочковал эту тему вот отсюда
Давным давно... в далёкой-далёкой галактике...
Тьфу! Нет!!!
Давно я ковырялся во всех Васиках от Специалиста,
от РК, от Микроши и пришел к странному выводу:
во всех них есть одинаковый код - ну типа ядро,
а всякие удобства и навороты к ядру прилеплены.
Как научил меня один умный чел - а ты декомпильни
Васик корректно - и будет у тебя любой Васик - какой
сам напишешь...
Так что мне интересно - не от Билла ли Геца проистекло
это самое ядро ?
По крайней мере история позволяет это предположить
|
24 Oct 2009 06:03 |
|
|
Shaos
Admin
Joined: 08 Jan 2003 23:22 Posts: 22572 Location: Silicon Valley
|
| | | | Lavr wrote: Давным давно... в далёкой-далёкой галактике... Тьфу! Нет!!! Давно я ковырялся во всех Васиках от Специалиста, от РК, от Микроши и пришел к странному выводу: во всех них есть одинаковый код - ну типа ядро, а всякие удобства и навороты к ядру прилеплены. Как научил меня один умный чел - а ты декомпильни Васик корректно - и будет у тебя любой Васик - какой сам напишешь... Так что мне интересно - не от Билла ли Геца проистекло это самое ядро ? По крайней мере история позволяет это предположить | | | | |
Очень может быть
|
24 Oct 2009 14:34 |
|
|
Shaos
Admin
Joined: 08 Jan 2003 23:22 Posts: 22572 Location: Silicon Valley
|
в MESS есть очень интересный код:
http://git.redump.net/cgit.cgi/mess/pla ... /filtbas.c
глядя в который я решил таки выяснить на что больше похожи советские бейсики
для начала следует сказать, что такой стиль представления бейсика в памяти называется "Microsoft-style tokenized BASIC files":
сравнивания коды токенов бейсика Радио-86РК с токенами в этом файле, я обнаружил, что РК-бейсик больше всего похож на бейсик от коммодора (как это ни странно, хотя он тоже микрософтовский): | | | | Code: /* ----------------------------------------------------------------------- * * CBM machines * * ----------------------------------------------------------------------- */ static const char *const basic_10[] = /* "BASIC 1.0" - supported by pet */ { РК-86: "END", /* 0x80 */ CLS "FOR", /* 0x81 */ FOR "NEXT", /* 0x82 */ NEXT "DATA", /* 0x83 */ DATA "INPUT#", /* 0x84 */ INPUT "INPUT", /* 0x85 */ DIM "DIM", /* 0x86 */ READ "READ", /* 0x87 */ CUR "LET", /* 0x88 */ GOTO "GOTO", /* 0x89 */ RUN "RUN", /* 0x8a */ IF "IF", /* 0x8b */ RESTORE "RESTORE", /* 0x8c */ GOSUB "GOSUB", /* 0x8d */ RETURN "RETURN", /* 0x8e */ REM "REM", /* 0x8f */ STOP "STOP", /* 0x90 */ BEL "ON", /* 0x91 */ ON "WAIT", /* 0x92 */ PLOT "LOAD", /* 0x93 */ LINE "SAVE", /* 0x94 */ POKE "VERIFY", /* 0x95 */ PRINT "DEF", /* 0x96 */ DEF "POKE", /* 0x97 */ CONT "PRINT#", /* 0x98 */ LIST "PRINT", /* 0x99 */ CLEAR "CONT", /* 0x9a */ MLOAD "LIST", /* 0x9b */ MSAVE "CLR", /* 0x9c */ NEW "CMD", /* 0x9d */ TAB( "SYS", /* 0x9e */ TO "OPEN", /* 0x9f */ SPC( "CLOSE", /* 0xa0 */ FN "GET", /* 0xa1 */ THEN "NEW", /* 0xa2 */ NOT "TAB(", /* 0xa3 */ STEP "TO", /* 0xa4 */ + "FN", /* 0xa5 */ - "SPC(", /* 0xa6 */ * "THEN", /* 0xa7 */ / "NOT", /* 0xa8 */ ^ "STEP", /* 0xa9 */ AND "+", /* 0xaa */ OR "-", /* 0xab */ > "*", /* 0xac */ = "/", /* 0xad */ < "^", /* 0xae */ SGN "AND", /* 0xaf */ INT "OR", /* 0xb0 */ ABS ">", /* 0xb1 */ USR "=", /* 0xb2 */ FRE "<", /* 0xb3 */ KEY "SGN", /* 0xb4 */ POS "INT", /* 0xb5 */ SQR "ABS", /* 0xb6 */ RND "USR", /* 0xb7 */ LOG "FRE", /* 0xb8 */ EXP "POS", /* 0xb9 */ COS "SQR", /* 0xba */ SIN "RND", /* 0xbb */ TAN "LOG", /* 0xbc */ ATN "EXP", /* 0xbd */ PEEK "COS", /* 0xbe */ LEN "SIN", /* 0xbf */ STR$ "TAN", /* 0xc0 */ VAL "ATN", /* 0xc1 */ ASC "PEEK", /* 0xc2 */ CHR$ "LEN", /* 0xc3 */ LEFT$ "STR$", /* 0xc4 */ RIGHT$ "VAL", /* 0xc5 */ MID$ "ASC", /* 0xc6 */ "CHR$", /* 0xc7 */ "LEFT$", /* 0xc8 */ "RIGHT$", /* 0xc9 */ "MID$", /* 0xca */ ....
| | | | |
Last edited by Shaos on 28 Jun 2011 19:06, edited 2 times in total.
|
28 Jun 2011 17:32 |
|
|
Shaos
Admin
Joined: 08 Jan 2003 23:22 Posts: 22572 Location: Silicon Valley
|
на бейсик для альтаира (самый первый микрософтокский) он тоже сильно похож:
http://web.archive.org/web/200112241846 ... _dis_2.htm
Судя по количеству токенов истина находится где-то по времени между альтаиром (1975) и коммодоре-петом (1977)
|
28 Jun 2011 18:12 |
|
|
HardWareMan
Banned
Joined: 20 Mar 2005 13:41 Posts: 2141 Location: От туда
|
Бэйсик "Практик" на Спеце тоже использует старший бит в названии токена как признак его окончания:
Токены: | | | | Code: const Token:array[0..$50] of string = ('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', '&', 'AT');
| | | | |
Сами токены идут в той же последовательности, начиная с $80 (коды менее $80 воспринимаются как строка):
Last edited by HardWareMan on 05 Jan 2014 06:22, edited 1 time in total.
|
28 Jun 2011 19:59 |
|
|
Shaos
Admin
Joined: 08 Jan 2003 23:22 Posts: 22572 Location: Silicon Valley
|
ещё бы - ведь это тот же микрософтовский бейсик
я на глаз посмотрел в хексе все рк-спецовские басики и увидел что все они близнецы братья - осталось сравнить их с альтаировским и убедится, что всех их написал билли и ко...
P.S. обнаружил и в РК-бейсике, и в "Практике" вот этот кусок кода:
|
29 Jun 2011 17:27 |
|
|
Lavr
Supreme God
Joined: 21 Oct 2009 08:08 Posts: 7777 Location: Россия
|
Вижу, что я вас не обманул...
И пока я работал на "Специалисте", у меня был собственный ВАСИК на все
лады. Жаль, что с наступлением эры АйБиЭм, я так и не пришел окончательной
версии...
|
29 Jun 2011 17:55 |
|
|
HardWareMan
Banned
Joined: 20 Mar 2005 13:41 Posts: 2141 Location: От туда
|
Я почему-то думал, что тот же "Практик" был доработкой "Микрона"...
Last edited by HardWareMan on 05 Jan 2014 06:22, edited 1 time in total.
|
29 Jun 2011 20:09 |
|
|
Shaos
Admin
Joined: 08 Jan 2003 23:22 Posts: 22572 Location: Silicon Valley
|
который был доработкой Бейсик-РК86, который был доработкой бейсика от Билли...
|
29 Jun 2011 20:47 |
|
|
HardWareMan
Banned
Joined: 20 Mar 2005 13:41 Posts: 2141 Location: От туда
|
По цепочке, значит. Понятно. А где инфа именно о доработке GW Бэйсика в РКшный?
Last edited by HardWareMan on 05 Jan 2014 06:22, edited 1 time in total.
|
29 Jun 2011 22:41 |
|
|
Shaos
Admin
Joined: 08 Jan 2003 23:22 Posts: 22572 Location: Silicon Valley
|
Нету - это всё мои домыслы, основанные на анализе внешнего вида кода...
Я даже непосредственного прородителя так и не смог найти - судя по всему что-то между альтаировским бейсиком и коммодоровским бейсиком
|
29 Jun 2011 22:50 |
|
|
Lavr
Supreme God
Joined: 21 Oct 2009 08:08 Posts: 7777 Location: Россия
|
Интересно, а альтернативные i8080 ВАСИКИ есть, если код посмотреть?
Не все же прародил БГ?
|
29 Jun 2011 23:08 |
|
|
Shaos
Admin
Joined: 08 Jan 2003 23:22 Posts: 22572 Location: Silicon Valley
|
вот это вот басик (RDK PROMPT BASIC V3.2 3K) не похож на гейтсовский (хотя позже выяснилось, что таки похож - на басик LEVEL1 для TRS-80):
а у всех остальных таблица токенов (находящяяся где-то вначале, где-то в конце, где-то меньше, где-то больше) говорит о том, что их оригинальный автор - биллогейц: P.S. ещё один кусок явно есть: http://web.archive.org/web/200112252059 ... dis_12.htm | | | | Code: If tghe argument in FACCUM is negative, then skip over the 0C5F EF Rnd RST TestSign 0C60 FA7C0C JM 0C7C Load the seed into FACCUM. 0C63 21910C LXI H,RND_SEED 0C66 CD0F0A CALL FLoadFromMem 0C69 C8 RZ Multiply seed by 11,879,546. 0C6A 013598 LXI B,9835 0C6D 117A44 LXI D,447A 0C70 CDE508 CALL FMul+2 Add 0.00000003927678 0C73 012868 LXI B,6828 0C76 1146B1 LXI D,B146 0C79 CD1208 CALL FAdd+2 Swap first and third mantissa bytes. 0C7C CD1D0A CALL FAccToBCDE 0C7F 7B MOV A,E 0C80 59 MOV E,C 0C81 4F MOV C,A
Set FTEMP_SIGN to 0x80 to indicate to FNormalise that it doesn't need to change the sign. Also set FACCUM's exponent to 0 so the result, when normalised, will be less than 1. 0C82 3680 MVI M,80 0C84 2B DCX H 0C85 46 MOV B,M 0C86 3680 MVI M,80 0C88 CD5E08 CALL FNormalise+3 Exit via a copy of the result to RND_SEED so it can be used for the next time RND is called. 0C8B 21910C LXI H,RND_SEED 0C8E C3290A JMP FCopyToMem Seed for random number generation. 0C91 52C74F80 RND_SEED 0.811635
| | | | |
разве что константа RND_SEED отличается (ну и адреса переходов естественно)
P.P.S. также попадаются отдельные куски вот отсюда: http://web.archive.org/web/200112121255 ... dis_17.htm
Last edited by Shaos on 30 Jun 2011 00:10, edited 1 time in total.
|
29 Jun 2011 23:15 |
|
|
Lavr
Supreme God
Joined: 21 Oct 2009 08:08 Posts: 7777 Location: Россия
|
Хорошо, что биллогейц об этом не знал - он написал бы письмо, чтобы
попытаться стрясти со всех денег!
И хорошо, что мы о БГ тогда не знали - ему бы икалось гораздо раньше
наступления эпохи ДОС-Виндовс...
А вот с Волковым так и непонятно. Он, похоже, опирался на Микро-80
при разработке своего ВАСИКА. На РК-86 - вряд ли " Специалист" по
рождению моложе РК-шки, его напечатали позже.
А Z80 ВАСЮКИ - уже начали отличаться или так и юзали "ядро" от БГ?
|
30 Jun 2011 00:01 |
|
|
Shaos
Admin
Joined: 08 Jan 2003 23:22 Posts: 22572 Location: Silicon Valley
|
| | | | Lavr wrote: Хорошо, что биллогейц об этом не знал - он написал бы письмо, чтобы попытаться стрясти со всех денег! И хорошо, что мы о БГ тогда не знали - ему бы икалось гораздо раньше наступления эпохи ДОС-Виндовс... А вот с Волковым так и непонятно. Он, похоже, опирался на Микро-80при разработке своего ВАСИКА. На РК-86 - вряд ли " Специалист" по рождению моложе РК-шки, его напечатали позже. | | | | |
Внутри бейсика BASMIC87.RKS есть текст: BASIC *МИКРОН-87* РАЗРАБОТАТАН ДЛЯ МИКРО-ЭВМ *МИКРО/80*, *РАДИО-86РК" И АДАПТИРОВАН ДЛЯ МИКРО-ЭВМ *СПЕЦИАЛИСТ*...
ну для Z80 существовал MSX-BASIC от того же самого Билла
|
30 Jun 2011 00:17 |
|
|
Who is online |
Users browsing this forum: No registered users and 28 guests |
|
You cannot post new topics in this forum You cannot reply to topics in this forum You cannot edit your posts in this forum You cannot delete your posts in this forum You cannot post attachments in this forum
|
|