{"id":22017861,"url":"https://github.com/tereshenkovav/qbgratools","last_synced_at":"2026-01-06T04:02:00.621Z","repository":{"id":137408720,"uuid":"491063410","full_name":"tereshenkovav/QbGraTools","owner":"tereshenkovav","description":"Low-level graphic library for QuickBasic 4.5","archived":false,"fork":false,"pushed_at":"2025-03-02T17:55:27.000Z","size":61,"stargazers_count":0,"open_issues_count":1,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-03-02T18:37:24.191Z","etag":null,"topics":["16-bit","game-engine-2d","nasm","quickbasic","retrogaming","vga"],"latest_commit_sha":null,"homepage":"","language":"QuickBASIC","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/tereshenkovav.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2022-05-11T10:32:06.000Z","updated_at":"2025-03-02T17:55:30.000Z","dependencies_parsed_at":null,"dependency_job_id":"97fc067d-737a-445f-8b6e-e73435f1929f","html_url":"https://github.com/tereshenkovav/QbGraTools","commit_stats":null,"previous_names":[],"tags_count":2,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tereshenkovav%2FQbGraTools","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tereshenkovav%2FQbGraTools/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tereshenkovav%2FQbGraTools/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tereshenkovav%2FQbGraTools/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/tereshenkovav","download_url":"https://codeload.github.com/tereshenkovav/QbGraTools/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":245080872,"owners_count":20557738,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["16-bit","game-engine-2d","nasm","quickbasic","retrogaming","vga"],"created_at":"2024-11-30T05:08:26.775Z","updated_at":"2026-01-06T04:01:55.584Z","avatar_url":"https://github.com/tereshenkovav.png","language":"QuickBASIC","funding_links":[],"categories":[],"sub_categories":[],"readme":"# QbGraTools\n\nLow-level graphic library for QuickBasic 4.5\\\nНизкоуровневая графическая библиотека для QuickBasic 4.5\n\n### О проекте\n\nБиблиотека содержит функции для быстрого вывода графики в буфер, загрузки\nPCX-спрайтов, рисование примитивов, вывода шрифта и обработки анимации,\nа также некоторые дополнительные функции, отсутствующие в QuickBasic.\nЧасть функций написана на ассемблер NASM, часть на самом QuickBasic.\nВ настоящий момент поддерживается только графический режим 13,\nс разрешением экрана 320x200 и 256 индексированных цветов.\n\n### Состав библиотеки\n\nВ каталоге `source` находятся исходные файлы библиотеки:\n\n* GRABUILD.BAT - скрипт сборки\n* GRATOOLS.ASM - включаемые ассемблерные процедуры\n* GRATOOLS.BAS - включаемые процедуры на Бейсике\n* GRATOOLS.BI - заголовочный файл для библиотеки\n* popregs.asm, pushregs.asm - включаемые файлы сохранения и восстановления регистров\n\nВ каталоге `examples` находятся некоторые примеры использования библиотеки.\n\nВ каталоге `fonts` находится пример шрифта для работы текстовых функций.\n\nВ каталоге `utils` находится программа создания шрифта.\n\n### Сборка\n\nДля сборки можно использовать виртуальную машину с DOS/FreeDOS или же DOSBox, подключив в нём каталог, в котором доступны QuickBasic, NASM и файлы библиотеки.\nКопируем все файлы из `source`\nв каталог, где установлен QuickBasic, указываем в скрипте `grabuild.bat`\nправильный путь к NASM (исходно он задан как `C:\\NASM`), потом запускаем скрипт\n`grabuild.bat`.\nПри правильной сборке, в каталоге появятся файлы `gratools.qlb` и `gratools.lib`.\nЭто скомпилированная графическая библиотека для работы с IDE QuickBasic и для получения EXE-файла проекта.\n\n### Использование\n\nДля использования библиотеки в QuickBasic IDE, сначала надо скопировать\nфайлы `gratools.qlb`, `gratools.lib` и `gratools.bi` в каталог установленного QuickBasic, после чего запустить\nIDE командой, которая подгрузит графическую библиотеку.\n\n```\nqb.exe /l gratools.qlb\n```\n\nВ файле проекта на Бейсике нужно подключить заголовочный файл библиотеки, установить\nмассивы как динамические (иначе возможны проблемы с получением EXE-файлов)\nи включить режим экрана 13. \n\n```BASIC\n'$INCLUDE: 'gratools.bi'\n'$DYNAMIC\nSCREEN 13\n```\n\nДля сборки исполнимого файла проекта с библиотекой (например, `game.bas`),\nнужно использовать команды компилятора и линковщика QuickBasic\n```\nbc game.bas game.obj,NUL\nlink /noe game.obj+noem.obj,game.exe,NUL,gratools.lib+bcom45.lib\n```\n\n### Расширенные примеры использования\n\nМаксимально полное использование библиотеки можно посмотреть в проекте игры\n\"Трикси и алмазы\", написанной на основе данной библиотеки.\n\nhttps://github.com/tereshenkovav/Trixie16bit\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftereshenkovav%2Fqbgratools","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ftereshenkovav%2Fqbgratools","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftereshenkovav%2Fqbgratools/lists"}