Программирование для БК0010 с использованием Android

Моя цель - предложение широкого ассортимента товаров и услуг на постоянно высоком качестве обслуживания по самым выгодным ценам.
image

История произошла в Telegram-канале БК00010, участником был я.

Возник вопрос: как писать программы? Эмулятор не поддерживает запись дисков, поэтому использовать ассемблер в эмуляторе вряд ли получится. В довершение всех бед картинка на смартфонах очень мелкая.

Было предложено решение(smaslovski), которое я опишу. Нужно скачать Termux, версия для Android 5.0 доступна здесь, файл termux-app-git-debug.apk. Версия программы 0.83, она поддерживает настройку панели клавиш.

После установки и запуска Termux я перенастроил клавиши, порядок действий такой:

mkdir $HOME/.termux

echo "extra-keys = [['ESC','/','-','HOME','UP','END','PGUP'],['TAB','CTRL','ALT','LEFT','DOWN','RIGHT','PGDN']]" > $HOME/.termux/termux.properties

termux-reload-settings

Стало удобнее

image

Теперь нужно установить необходимое
pkg install build-essential
pkg install git


Готово, в качестве ассемблера для создания .BIN будет использован MACRO-11:

mkdir src
cd src
git clone https://gitlab.com/Rhialto/macro11.git

Потом я установил оболочку:

pkg install mc

и текстовый редактор

pkg install nano

в папке src\macro11 нужно исправить Makefile, исправить

OBJFORMAT = -DDEFAULT_OBJECTFORMAT_RT11=1

набрать make и ждать результата

полученные файлы скопировать

cp macro11 $PREFIX/bin

cp dumpobj $PREFIX/bin

Для компиляции понадобится скрипт для сборки

cd ~/src 
git clone https://github.com/smaslovski/pdp11dasm.git
cd pdp11dasm/utils
chmod 755 obj2bkb
cp obj2bkb $PREFIX/bin

скрипт компиляции, я назвал compile:

#!/data/data/com.termux/files/usr/bin/sh
n=$1
macro11 $n.mac -o $n.obj -l $n.lst
obj2bkb --binary --base=01000 -o $n.bin $n.obj
du -b $n.bin
cp $n.bin /sdcard

(можно создать nano compile)

Скрипт нужно скопировать

chmod 755 compile
cp compile $PREFIX/bin

Для пробы я написал простую программу gg.mac:

image

.title proga
.psect code
.=1000

 MOV #40000,R0
M: mov r0,(r0)+
 tst r0
 bpl m
 halt
.end

запуск: compile gg
программу gg.bin можно открыть в эмуляторе.

И, в заключении, полагается написать нечто оптимистичное и жизнерадостное, но я нарушу правила и приведу пример программы, которую написал вечером:

	.title small
	.ASECT
	.=1000

 ;clr r0
 ;clr r1
M:
; inc r0
 add pc,r1
; mov r1,r2
 bic #49152.,r1
; add #40000,r1
 sub r1,40000(r1)
 br M
	.end

Кто напишет код меньшим размером? Дерзайте.
Источник: https://habr.com/ru/post/505592/


Интересные статьи

Интересные статьи

Недавно я столкнулся с проблемой поддельного жирного и курсивного текста при использовании семейства шрифтов в Android разработке. В этой статье хочу рассказать об этой проблеме и о её р...
Последние достижения в области глубокого обучения привносят существенные улучшения в развитие систем синтеза речи (далее – TTS). Это происходит благодаря применению более эффективных и быстрых ...
«Channel F homebrew would be like programming sprites via hardware jumpers...» / chadtower, atariage forum / Игровая приставка Fairchild Channel F, также известная как VES, появилась в но...
Материал, перевод которого мы сегодня публикуем, посвящён процессу разработки системы визуализации динамических древовидных диаграмм. Для рисования кубических кривых Безье здесь используется техн...
Это уже третья попытка подружить умный дом с android, напомню, что первая попытка контролировать android устройства посредством HTTP, была с помощью приложения Paw Server. Данное приложение п...