User Tag List

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

Тема: Скрестить ZX и ПЦ

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

Предыдущее сообщение Предыдущее сообщение   Следующее сообщение Следующее сообщение
  1. #11

    Регистрация
    29.12.2010
    Адрес
    Москва
    Сообщений
    1,872
    Спасибо Благодарностей отдано 
    145
    Спасибо Благодарностей получено 
    111
    Поблагодарили
    67 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Выкладываю свою текущую версию кросс-Паскаля на PC для ZX, а то уже пару людей попросило в личке.

    Запуск - project1.exe, после запуска выбрать файл в формате PRG, в котором программа на Паскале. После компиляции образуется файл с ассемблером ASM, можно компилировать и запускать в эмуляторе. Если при компиляции будут ошибки, то отобразятся в файле error.prg.
    Паскалевские примеры имеются в файлах PRG.
    Оптимизации асмовского кода пока нет, но будет. Уже знаю, как делать.

    На данный момент поддерживает:
    ++++++++++++++++++++++

    Типы
    ----
    byte
    word
    string[N]
    Массивы для типов byte и word - одномерные и двумерные, для string - только одномерные:
    ArrayByte [...]
    ArrayWord [...]
    ArrayString [...]

    Стандартные операторы
    ---------------------
    :=
    Write
    Writeln
    Read
    Readln
    If ... then ... else ...
    For ... to ... do
    While ... do
    Repeat ... until


    Операторы экрана
    ----------------
    Вывод текста шрифтом 4*8 пикселей, кириллица поддерживается
    ClrScr - очистка экрана и установка в нем текущих цветов
    GotoXY(Col,Row) - установка курсора в позицию экрана Col,Row (Col=0..63, Row=0..23)
    Pause(N) - пауза N/50 секунды
    Border(N) - бордюр цветом N
    Color(N) - цвет текста и фона (N = байт атрибутов на Спектруме)
    Window(Col,Row,Width,Heigth) - очистка окна знакомест и установка в нем текущих цветов


    Процедуры
    ---------
    Процедуры без параметров и локальных переменных


    Выражения
    ---------
    Целочисленные вычисления в диапазоне 0..65535
    Приоритет операций учитывается
    Для типа string только операция конкатенации +
    Для типов byte и word:
    +
    -
    *
    div
    mod
    (
    )
    =
    >
    >=
    <
    <=
    <>



    Планируется:
    +++++++++

    Опции
    -----
    Текст с атрибутами
    Окна с атрибутами
    Спрайты с атрибутами
    Спрайты карты с атрибутами
    Проверка границ экрана при выводе спрайтов
    Проверка максимальной длины строк


    Данные
    ------
    map
    - width_map
    - height_map
    - size_cell_map
    - value_elements_map
    - sprites_map
    - array_map[NN,NN]

    sprite
    - value_tile_sprite
    - x_sprite
    - y_sprite
    - attr_sprite
    - data_sprite


    Типы
    ----
    byte
    word
    char
    string[SS]
    array[NN,NN] of byte
    array[NN,NN] of word
    array[NN] of string[SS]


    Стандартные операторы
    ---------------------
    :=
    Write
    Writeln
    Read
    Readln
    If ... then ... else ...
    For ... to (downto) ... do
    While ... do
    Repeat ... until
    Case ... of
    Delay
    Randomize


    Процедуры
    ---------
    Процедуры без параметров и локальных переменных


    Функции
    -------
    Readkey
    Random(max)


    Экран
    -----
    ClrScr
    GotoXY(x_tile,y_tile)
    TextColor(attr)
    TextBackGround(attr)
    Border(color)
    Color(attr)
    ScrToVirt
    VirtToScr


    Окна
    ----

    WindowSet(x_tile,y_tile,width_tile,height_tile)
    WindowClear
    WindowScrollUp
    WindowScrollDown
    WindowScrollLeft
    WindowScrollRight
    WindowThaw
    Get(x_tile,y_tile,width_tile,heigth_tile)
    Put(x_tile,y_tile)


    Звук
    ----
    Beep(note,time)
    SoundEffect(n_loop,time,frequency)


    Спрайты
    -------
    PutSprite(name_sprite,x_tile,y_tile)
    PutSpriteMirrorX(name_sprite,x_tile,y_tile)
    PutSpriteMirrorY(name_sprite,x_tile,y_tile)
    PutSpriteMirrorXY(name_sprite,x_tile,y_tile)


    Карта
    -----
    MapPut(x_map,y_map,width_map,height_map)
    MapSearchElement(ID_element,x_map,y_map,distance_m ap)
    MapArrayToMap(name_array_byte)


    Выражения
    ---------
    +
    -
    *
    div
    mod
    (
    )
    =
    >
    >=
    <
    <=
    <>
    and
    or
    xor
    not
    Вложения Вложения
    Последний раз редактировалось Andrew771; 19.12.2014 в 17:26.

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

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

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

Ваши права

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