Итак, характеристики текстового редактора:
-объем текста программы: 16КБ (возможно будет увеличен)
-минимальный набор функций: Pageup/Pagedown, удаление символа, строки, режим вставки символов и функция очистки буфера текста.
Буфер текстового редактора теоретически может быть увеличен. Т.к. программа пишется для Агат-9 с 128КБ памяти, то на сегодня картина такая. Страница экрана, буферы лабиринтов, спрайтов, шрифтов, исполняемого файла - занимают 72Кб. Редакторы спрайтов, лабиринтов, ДОС и компилятор занимают чуть меньше 3-х банков или 24КБ. Остается 32КБ для текстового буфера. Но компилятор будет явно больше, так что максимальный объем буфера текста будет думаю, не больше 24Кб.
Конечно функций в текстовом редакторе мало. Нет функции копирования, вставки кода любого символа, сохранения части текста, вставки текста из файла, поиска, перехода к строке...
но честно говоря, этот редактор-самое скучное. Возможно допишу эти функции позже. Но не сейчас. Сейчас Компилятор.
Компилятор предполагает максимальный объем исполняемого файла с учетом переменных, констант и массивов 14,5КБ и это максимум. Но есть еще два буфера. Один объемом 2КБ, это буфер экранной страницы, для быстрой отрисовки содержимого лабиринта. А второй объемом 4КБ предназначенный для копирования части лабиринта и изменения в ходе программы. Есть еще и 3-й буфер объемом 2КБ. Вероятно он будет использован для технических нужд. Для циклов, например.
Язык программирования мой собственный)) Жуткая смесь ассемблера, бейсика и Си. В принципе низкоуровневый получается. И явно не для детей. Но что есть, то есть.
Сейчас уже сделаны такие конструкции языка, как условные и безусловные переходы, подпрограммы и массивы. Поддерживаются переменные (только 8-ми разрядные) и выражения. Выражения состоят из сложения, вычитания, умножения на 2 и деления на 2. Со временем сделаю умножение и деление байтов или слов.
Ну и несколько игровых операторов. Включение одного из 4-х графических режимов, опрос клавитуры, вывод звука, вывод текста и чисел на экран, различные функции отрисовки спрайтов, функции выбора параметров лабиринта и отображение его, ну и мелочевка, вроде очистки экрана, задержки и генератора случайных чисел.
Пока тестирую, пишу програмку. Человечек уже бегает по экрану и перебегает из одной комнаты в другую.
Вообще еще очень много что надо сделать, хотя вроде как памяти хватает пока...
Post's attachments
d1.jpg 50.19 kb, 384 downloads since 2017-08-31
d2.jpg 55.84 kb, 361 downloads since 2017-08-31
d3.jpg 53.43 kb, 380 downloads since 2017-08-31