Skip to content
/ LLAC Public

LLAC — инструмент, который преобразует псевдокод в ассемблер для компьютера(https://logic-arrows.io/map-computer). Проект упрощает процесс написания низкоуровневых программ, автоматически генерируя инструкции.

License

Notifications You must be signed in to change notification settings

tui00/LLAC

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

62 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

LLAC

Computer GitHub Actions Workflow Status License Last release version Static Badge

Краткое описание

Это мини-преобразователь простых команд в сложные конструкции для asembler-а компьютера второй версии из игры logic-arrows

Этот проект еще не готов!

Если я захочу, я буду менять имя, аргументы и что делают команды хоть каждый день.

Скачивание проекта

⚠️ Этими способами вы можете скачать только Debug версию. Если нужна Release версия, перейдите во вкладку Releases

  • С помощью workflow:
    • Откройте вкладку Actions
    • Выберите .NET
    • Выберите последний запуск
    • Пролистайте вниз
    • Скачайте нужную версию
  • С помощью ссылки:
  • С помощью Github CLI:
    • Запустите gh repo clone tui00/LLAC
  • С помощью git:
    • Запустите git clone https://github.com/tui00/LLAC.git
  • С помощью рук:
    • Откройте раздел Code
    • Нажмите Download ZIP

Запуск проекта

⚠️ Для запуска установите .NET 9.0 Runtime

  • Запустите команду dotnet build
  • Откройте папку LLAC/bin/Debug/net9.0
  • Запустите исполняемый файл

Краткая документация

Клавиатура

Для того что-бы считать символ с клавиатуры используйте

readchar a ; Не изменяет регистры

a -- Это регистер куда будет помещена считаная клавиша

Терминал

@connect term

ldi a, "H"
writechar a ; Вывод одиночного символа, не трогает регистры

writeline hello ; Вывод null-terminated строки, изменяет a, b и d
hello db "Hello, World!", 0

Дисплей

@connect coldisp

drawimage img ; Вывод изображения на экран, изменяет a, b, c и d

cleardisp ; Очистка экрана, изменяет a, c и d, не изменяет регистры

exit

image img, img.bmp

Вы также можете вывести изображение на дисплей во время загрузки дискеты

@connect coldisp ; Важно использовать @connect, а не connect
@image preRunImage.bmp

Желательно что-бы изображение:

  1. было 16x16 или больше пикселей
  2. в формате bmp
  3. не содержало зеленого компонента(он просто не поддерживается)
  4. содержало альфа канал(можно просто заполнить не использованое пространство черным)

Но все это кроме 1 можно не соблюдать

Счетчик

@connect digit ; Подключаем в без-знаковом режиме

prepare 1234, a:b ; Подготавливаем число 1234 для вывода
writenum a:b ; Выводим, не изменяет регистры

cleardigit ; Очищаем, изменяет a

Другое

Вы можете загрузить в порт для выбора устройств(0x3E) значение

@connect signdigit, coldisp ; Загрузить во время загрузки дискеты в память

connect term, disp, digit ; Загрузить во время выполнения программы, изменяет a

Команды-алиасы

exit ; Эквивалентно hlt
string hello, "Hello, World!" ; Эта команда создают null-terminated строку
image img, img.bmp ; Команда для создания изображения

Конец

На этом пока все в будущем будет больше функций

Roadmap

  • Добавить возможность вывода символов в терминал
  • Добавить вывод на цифровой экран
  • Добавить вывод на дисплей в монохромном режиме
  • Добавить вывод на дисплей в цветном режиме
  • Сделать авто переключение между банками памяти при выполнении кода

P. S.

Я не умею писать нормальные README

About

LLAC — инструмент, который преобразует псевдокод в ассемблер для компьютера(https://logic-arrows.io/map-computer). Проект упрощает процесс написания низкоуровневых программ, автоматически генерируя инструкции.

Topics

Resources

License

Stars

Watchers

Forks

Languages