close-circle
Close
0%
0%

Terminal-BASIC

Language interpreter for uC-based systems

Similar projects worth following
close

  • Classic tetris game: milestone and epic fail

    Andrey Skvortsov09/04/2017 at 21:26 0 comments

    Terminal-BASIC becomes stable and functional enough to run the program like classic tetris game. It's quite compact and runnable not only on Arduino MEGA microcomputer but even on Single chip BASIC computer. But it simply is TOO slow!.. As shown on the videos below, SDL TVout emulation is ok, but on real device with TVoutEx output it's fail.

    Arduino MEGA with 32 Kb shield:

    SDL emulation:

    Very disappointing. I will try output through the dedicated VDC, such as NGT20. After all, TVout library forms interrupt overloaded environment.

  • TVoutEx library: SDL emulation

    Andrey Skvortsov08/24/2017 at 15:35 0 comments

    SDL-based emulator helps to debug non-interrupt and non-avr specific part of the TVoutEx library

  • Cyrillic alphabets in Terminal-BASIC output

    Andrey Skvortsov08/23/2017 at 11:13 0 comments

    My friend Dylan Brophy inspired me to investigate the ability to output the cyrillic text using different output devices, supported by Terminal-BASIC.

    1. Using symbols others then capital latin in identifiers not possible and unnecessary.

    2. USART output.

    The job is done by the terminal or (terminal emulator) as long as you use a 1-byte cyrillic encoding (CP-866, KOI8-R, KOI8-U, Windows-1251 ...);

    3. Output using TVoutEx, UTFT libraries and devices such as NGT20.

    The character set either raster or vector should be extended. The memory resources in this case is main restriction. I think the encodings, which were mentioned above, are not suitable for this case because they define full cyrillic letters set for only 1-2 language and doubles the letters with same llok as latine ones. There was interesting encoding Код УПП (punch card device code) which was used on БЭСМ-6 mainframes, defines single latin-cyrillic charset. But it has only capital letters and was incompatible with ASCII.

    So I decided to define the encoding, contains all cyrillic symbols without doubling the same-looking latin.

    I gather cyrillic letters from 8 alphabets (6 modern and 2 dead). The second part of ASCII will be formed from symbols, differs from latin, with the order ascending by the "points" of this letter in the following rating. This will allow to reduce the number of supported symbols, cutting the tail of the table.

    ...
    Symbol Early Cyrillic Modern russian Russian before 1917 Belorussian Ukrainian Serbian Bulgarian Macedonian All
    1 А 1 1 1 1 1 1 1 1 8
    2 Б 1 1 1 1 1 1 1 1 8
    3 В 1 1 1 1 1 1 1 1 8
    4 Г 1 1 1 1 1 1 1 1 8
    5 Ѓ 0 0 0 0 0 0 0 1 1
    6 Ґ 0 0 0 0 1 0 0 0 1
    7 Д 1 1 1 1 1 1 1 1 8
    8 Ђ 0 0 0 0 0 1 0 0 1
    9 Е 0 1 1 1 1 1 1 1 7
    10 Ё 0 1 0 1 0 0 0 0 2
    11 Є 1 0 0 0 1 0 0 0 2
    12 Ж 1 1 1 1 1 1 1 1 8
    13 З 1 1 1 1 1 1 1 1 8
    14 И 1 1 1 0 1 1 1 1 7
    15 Ї 1 0 0 0 1 0 0 0 2
    16 Й 0 1 1 1 1 0 1 0 5
    17 К 1 1 1 1 1 1 1 1 8
    18 Ќ 0 0 0 0 0 0 0 1 1
    19 Л 1 1 1 1 1 1 1 1 8
    20 Љ 0 0 0 0 0 1 0 1 2
    21 М 1 1 1 1 1 1 1 1 8
    22 Н 1 1 1 1 1 1 1 1 8
    23 Њ 0 0 0 0 0 1 0 1 2
    24 О 1 1 1 1 1 1 1 1 8
    25 П 1 1 1 1 1 1 1 1 8
    26 Р 1 1 1 1 1 1 1 1 8
    27 С 1 1 1 1 1 1 1 1 8
    28 Т 1 1 1 1 1 1 1 1 8
    29 Ћ 0 0 0 0 0 1 0 0 1
    30 У 1 1 1 1 1 1 1 1 8
    31 Ў 0 0 0 1 0 0 0 0 1
    32 Ф 1 1 1 1 1 1 1 1 8
    33 Х 1 1 1 1 1 1 1 1 8
    34 Ц 1 1 1 1 1 1 1 1 8
    35 Ч 1 1 1 1 1 1 1 1 8
    36 Џ 0 0 0 0 0 1 0 1 2
    37 Ш 1 1 1 1 1 1 1 1 8
    38 Щ 1 1 1 0 1 0 1 0 5
    39 Ъ 1 1 1 0 0 0 1 0 4
    40 Ы 1 1 1 1 0 0 0 0 4
    41 Ь 1 1 1 1 1 0 1 0 6
    42 Ѣ 1 0 1 0 0 0 0 0 2
    43 Э 0 1 1
    Read more »

  • Darthmoth BASIC matrix operations

    Andrey Skvortsov08/09/2017 at 16:49 0 comments

    One of the amazing features of the World's first BASIC implementation from the Dartmouth College

    was the ability to manipulate arrays as matricies. The 1960's are going farther and farther, at the age of Scilab, Octave and other mature numerical computations packages who can be impressed by the matrix-able BASIC. But isn't it fun when small 8-bit uC board can do what mainframes from 1960's can?

    Terminal-BASIC supports these matrix operations. Main difference is that Darthmouth BASIC ignores 0-row and 0-column, making array definition more informative. DIM(3,3) defines 4x4 array, but it was used as 3x3 matrix in matrix operations. Terminal-BASIC uses all rows and columns, so DIM(3,3) defines 4x4 array, which can be used as 4x4 matrix.

View all 4 project logs

Enjoy this project?

Share

Discussions

Similar Projects

Does this project spark your interest?

Become a member to follow this project and never miss any updates