Важная информация

User Tag List

Показано с 1 по 10 из 103

Тема: Родословная бейсиков для 580ВМ80

Древовидный режим

Предыдущее сообщение Предыдущее сообщение   Следующее сообщение Следующее сообщение
  1. #1
    R.I.P.
    Регистрация
    16.09.2009
    Адрес
    г. Харьков
    Сообщений
    1,466
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    4
    Поблагодарили
    4 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию Родословная бейсиков для 580ВМ80

    Привет всем
    такую тему уже пробовали обсуждать, с разной степенью успешности
    но у меня есть надежда что наконец можно поставить точку

    сразу вывод
    большинство бейсиков на бытовых компах пошли от Microsoft Basic 3.2 8k
    бейсик для Корвет (и его дети basmsx на апогее и basicvector на векторе) Microsoft Basic 5.x
    и отдельно бейсик для ПК8002 - он явно делался из MSX Basic
    почему так утверждаю
    у разных MS бейсиков - разные представления таблицы токенов, разные у 3.x,4.x,5.x/msx

    под "делался из" я имею в виду, что его дизассемблировали а потом уже вносили изменения.

    вот тут сводная табличка https://dl.dropboxusercontent.com/u/...sic_tokens.txt
    рассмотрим детальнее Microsoft Basic 3.2 8k

    его прямые потомки

    бейсик для MICRO-80
    и бейсик для Львова (вроде как он одинок)

    из MICRO-80 родился

    бейсик для РАДИО86-РК
    потом на его основе появился Бейсик Микрон,

    ну и потом всё пошло - поехало уже из этих источников

    причем бейсик для Вектора (тот который 2.5, похоже дитё Микрона)

    немного более детально

    в табличке
    TokenID, TokenName TokenTextAddr TokenTabAddr TokenCode

    Код:
    8K BASIC Ver 3-2_.bin     | basic-micri80.bin         | basic80-rk86.bin         
    ------------------------------------------------------------------------------------
    81:    END 0088 0170 05f5 | 81:    CLS 0088 0170 17b3 | 81:    CLS 0088 0170 1765
    82:    FOR 008b 0172 0538 | 82:    FOR 008b 0172 0535 | 82:    FOR 008b 0172 0535
    83:   NEXT 008e 0174 0927 | 83:   NEXT 008e 0174 091d | 83:   NEXT 008e 0174 091d
    84:   DATA 0092 0176 06fd | 84:   DATA 0092 0176 06f9 | 84:   DATA 0092 0176 06f9
    85:  INPUT 0096 0178 085c | 85:  INPUT 0096 0178 0852 | 85:  INPUT 0096 0178 0852
    86:    DIM 009b 017a 0b24 | 86:    DIM 009b 017a 0b15 | 86:    DIM 009b 017a 0b15
    87:   READ 009e 017c 0883 | 87:   READ 009e 017c 0879 | 87:   READ 009e 017c 0879
    88:    LET 00a2 017e 0714 | 88:    CUR 00a2 017e 176a | 88:    CUR 00a2 017e 1779
    89:   GOTO 00a5 0180 06cb | 89:   GOTO 00a5 0180 06c7 | 89:   GOTO 00a5 0180 06c7
    8a:    RUN 00a9 0182 06ae | 8a:    RUN 00a9 0182 06ab | 8a:    RUN 00a9 0182 06ab
    8b:     IF 00ac 0184 0782 | 8b:     IF 00ac 0184 0778 | 8b:     IF 00ac 0184 0778
    8c:RESTORE 00ae 0186 05df | 8c:RESTORE 00ae 0186 05db | 8c:RESTORE 00ae 0186 05db
    8d:  GOSUB 00b5 0188 06ba | 8d:  GOSUB 00b5 0188 06b7 | 8d:  GOSUB 00b5 0188 06b7
    8e: RETURN 00ba 018a 06e7 | 8e: RETURN 00ba 018a 06e3 | 8e: RETURN 00ba 018a 06e3
    8f:    REM 00c0 018c 06ff | 8f:    REM 00c0 018c 06fb | 8f:    REM 00c0 018c 06fb
    90:   STOP 00c3 018e 05f3 | 90:   STOP 00c3 018e 05ef | 90:   STOP 00c3 018e 05ef
    91:    OUT 00c7 0190 0fa4 | 91:    OUT 00c7 0190 0f80 | 91:    OUT 00c7 0190 0f80
    92:     ON 00ca 0192 0766 | 92:     ON 00ca 0192 075c | 92:     ON 00ca 0192 075c
    93:   NULL 00cc 0194 062e | 93:   PLOT 00cc 0194 17c7 | 93:   PLOT 00cc 0194 17af
    94:   WAIT 00d0 0196 0faa | 94:   LINE 00d0 0196 1847 | 94:   LINE 00d0 0196 1847
    95:    DEF 00d4 0198 0cce | 95:   POKE 00d4 0198 172c | 95:   POKE 00d4 0198 172c
    96:   POKE 00d7 019a 10aa | 96:  PRINT 00d8 019a 0791 | 96:  PRINT 00d8 019a 0791
    97:  PRINT 00db 019c 079b | 97:    DEF 00dd 019c 0cb0 | 97:    DEF 00dd 019c 0cb0
    98:   CONT 00e0 019e 061b | 98:   CONT 00e0 019e 0617 | 98:   CONT 00e0 019e 0617
    99:   LIST 00e4 01a0 04f1 | 99:   LIST 00e4 01a0 04ee | 99:   LIST 00e4 01a0 04ee
    9a:  CLEAR 00e8 01a2 0685 | 9a:  CLEAR 00e8 01a2 0682 | 9a:  CLEAR 00e8 01a2 0682
    9b:  CLOAD 00ed 01a4 1040 | 9b:  MLOAD 00ed 01a4 1905 | 9b:  MLOAD 00ed 01a4 1905
    9c:  CSAVE 00f2 01a6 1020 | 9c:  MSAVE 00f2 01a6 18ee | 9c:  MSAVE 00f2 01a6 18ee
    9d:    NEW 00f7 01a8 03a1 | 9d:    NEW 00f7 01a8 039d | 9d:    NEW 00f7 01a8 039d
    9e:   TAB( 00fa .... .... | 9e:   TAB( 00fa .... .... | 9e:   TAB( 00fa .... ....
    9f:     TO 00fe .... .... | 9f:     TO 00fe .... .... | 9f:     TO 00fe .... ....
    a0:     FN 0100 .... .... | a0:   SPC( 0100 .... .... | a0:   SPC( 0100 .... ....
    a1:   SPC( 0102 .... .... | a1:     FN 0104 .... .... | a1:     FN 0104 .... ....
    a2:   THEN 0106 .... .... | a2:   THEN 0106 .... .... | a2:   THEN 0106 .... ....
    a3:    NOT 010a .... .... | a3:    NOT 010a .... .... | a3:    NOT 010a .... ....
    a4:   STEP 010d .... .... | a4:   STEP 010d .... .... | a4:   STEP 010d .... ....
    a5:      + 0111 .... .... | a5:      + 0111 .... .... | a5:      + 0111 .... ....
    a6:      - 0112 .... .... | a6:      - 0112 .... .... | a6:      - 0112 .... ....
    a7:      * 0113 .... .... | a7:      * 0113 .... .... | a7:      * 0113 .... ....
    a8:      / 0114 .... .... | a8:      / 0114 .... .... | a8:      / 0114 .... ....
    a9:      ^ 0115 .... .... | a9:      ^ 0115 .... .... | a9:      ^ 0115 .... ....
    aa:    AND 0116 .... .... | aa:    AND 0116 .... .... | aa:    AND 0116 .... ....
    ab:     OR 0119 .... .... | ab:     OR 0119 .... .... | ab:     OR 0119 .... ....
    ac:      > 011b .... .... | ac:      > 011b .... .... | ac:      > 011b .... ....
    ad:      = 011c .... .... | ad:      = 011c .... .... | ad:      = 011c .... ....
    ae:      < 011d .... .... | ae:      < 011d .... .... | ae:      < 011d .... ....
    af:    SGN 011e 0043 131a | af:    SGN 011e 0043 12d4 | af:    SGN 011e 0043 12d4
    b0:    INT 0121 0045 13d8 | b0:    INT 0121 0045 1392 | b0:    INT 0121 0045 1392
    b1:    ABS 0124 0047 132e | b1:    ABS 0124 0047 12e8 | b1:    ABS 0124 0047 12e8
    b2:    USR 0127 0049 065f | b2:    USR 0127 0049 1736 | b2:    USR 0127 0049 1736
    b3:    FRE 012a 004b 0c98 | b3:    FRE 012a 004b 0c7a | b3:    FRE 012a 004b 0c7a
    b4:    INP 012d 004d 0f99 | b4:    INP 012d 004d 0f75 | b4:    INP 012d 004d 0f75
    b5:    POS 0130 004f 0cc6 | b5:    POS 0130 004f 0ca8 | b5:    POS 0130 004f 0ca8
    b6:    SQR 0133 0051 15a6 | b6:    SQR 0133 0051 1554 | b6:    SQR 0133 0051 1554
    b7:    RND 0136 0053 167c | b7:    RND 0136 0053 162a | b7:    RND 0136 0053 162a
    b8:    LOG 0139 0055 11c4 | b8:    LOG 0139 0055 117e | b8:    LOG 0139 0055 117e
    b9:    EXP 013c 0057 15eb | b9:    EXP 013c 0057 1599 | b9:    EXP 013c 0057 1599
    ba:    COS 013f 0059 16b2 | ba:    COS 013f 0059 1660 | ba:    COS 013f 0059 1660
    bb:    SIN 0142 005b 16b8 | bb:    SIN 0142 005b 1666 | bb:    SIN 0142 005b 1666
    bc:    TAN 0145 005d 1715 | bc:    TAN 0145 005d 16c3 | bc:    TAN 0145 005d 16c3
    bd:    ATN 0148 005f 172a | bd:    ATN 0148 005f 16d8 | bd:    ATN 0148 005f 16d8
    be:   PEEK 014b 0061 10a3 | be:   PEEK 014b 0061 1724 | be:   PEEK 014b 0061 1724
    bf:    LEN 014f 0063 0f0a | bf:    LEN 014f 0063 0ee7 | bf:    LEN 014f 0063 0ee7
    c0:   STR$ 0152 0065 0d3a | c0:   STR$ 0152 0065 0d1f | c0:   STR$ 0152 0065 0d1f
    c1:    VAL 0156 0067 0fec | c1:    VAL 0156 0067 0fc8 | c1:    VAL 0156 0067 0fc8
    c2:    ASC 0159 0069 0f19 | c2:    ASC 0159 0069 0ef6 | c2:    ASC 0159 0069 0ef6
    c3:   CHR$ 015c 006b 0f28 | c3:   CHR$ 015c 006b 0f04 | c3:   CHR$ 015c 006b 0f04
    c4:  LEFT$ 0160 006d 0f38 | c4:  LEFT$ 0160 006d 0f14 | c4:  LEFT$ 0160 006d 0f14
    c5: RIGHT$ 0165 006f 0f68 | c5: RIGHT$ 0165 006f 0f44 | c5: RIGHT$ 0165 006f 0f44
    c6:   MID$ 016b 0071 0f72 | c6:   MID$ 016b 0071 0f4e | c6:   MID$ 016b 0071 0f4e
    видно что кол-во и расположение токенов совпадает, адресса очень близки
    часть операторов похоже просто запатчили (заодно пожертвовав END)
    причем длинна новых слов совпала

    Код:
    END   -> CLS
    LET   -> CUR 
    NULL  -> PLOT
    WAIT  -> LINE
    CLOAD -> MLOAD
    CSAVE -> MSAVE
    и непонятно зачем сдвинуты DEF,POKE,PRINT

    дальше таблица токенов сохраняется, т.е все дальнейшие - потомки

    в микроне расширина таблица токенов, но строго ПОСЛЕ стандартных
    Код:
    c7:SCREEN$( 1eee 1fd8 1a39
    c8:  INKEY$ 1ef6 1fda 1685
    c9:      AT 1efc 1fdc 009b
    ca:       & 1efe 1fde 16a9
    cb:    BEEP 1eff 1fe0 0279
    cc:   PAUSE 1f03 1fe2 7913
    cd:  VERIFY 1f08 1fe4 0f11
    ce:    HOME 1f0e 1fe6 4e7b
    cf:    EDIT 1f12 1fe8 7b10
    d0:  DELETE 1f16 1fea 10b0
    d1:   MERGE 1f1c 1fec 137f
    d2:    AUTO 1f21 1fee 5014
    d3:   HIMEM 1f25 1ff0 09a6
    d4:       @ 1f2a 1ff2 a546
    d5:     ASN 1f2b 1ff4 4d09
    d6:    ADDR 1f2e 1ff6 2849
    d7:      PI 1f32 1ff8 2943
    d8:   RENUM 1f34 1ffa 4f52
    d9:     ACS 1f39 1ffc 2f4e
    da:      LG 1f3c 1ffe 3838
    db:  LPRINT 1f3e 2000 6e65
    dc:   LLIST 1f44 2002 6075
    бейсик 2.5 для вектора - расширение микрона
    Код:
    dd:  SCREEN 23b5 24ac 0c2e
    de:   COLOR 23bb 24ae cde9
    df:     GET 23c0 24b0 1f33
    e0:     PUT 23c3 24b2 3bcd
    e1:   BSAVE 23c6 24b4 f50f
    e2:   BLOAD 23cb 24b6 f0e6
    e3:    PLAY 23d0 24b8 b032
    e4:   PAINT 23d4 24ba f13d
    e5:  CIRCLE 23d9 24bc 0fe6
    а basicsig явно из micro-80


    бейсик Суры - на основе того-же micro80 но расширен в сторону MSX, опять же все расширения - после MICRO-80

    ну и отдельно идёт бейсик для Львов-ПК01
    он явно самостоятельно делался из MS3.2 8k

    пациенты - в аттаче

    ваши коментарии ?

    для тех кто хочет взять дизасм в руки, полезные ссылки

    http://altairbasic.org/ откоментированый Altair Basic 3.2 4k (у него меньше мат функций, но все структуры - копия)

    на страничке http://msx.hansotten.com/index.php?page=msxsw
    есть TRS-80 Basic detailed description и TRS-80 Basic source code
    это дизасм TRS-80 basic Level 2 (Microsoft 5.x)

    ну и наконец http://sourceforge.net/projects/msxsyssrc/
    дизасмы всех MSX ROM (с бейсиками в том числе)
    Вложения Вложения
    Последний раз редактировалось esl; 25.05.2014 в 00:36.

  2. Этот пользователь поблагодарил esl за это полезное сообщение:

    Barmaley_m (18.10.2020)

  3. #1
    С любовью к вам, Yandex.Direct
    Размещение рекламы на форуме способствует его дальнейшему развитию

Информация о теме

Пользователи, просматривающие эту тему

Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)

Похожие темы

  1. Ответов: 54
    Последнее: 17.12.2018, 01:35
  2. родословная Спека
    от AM в разделе Несортированное железо
    Ответов: 85
    Последнее: 13.10.2016, 00:33

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •