Программирование для БК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/


Комментарии

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *