Да уж, ностальгия...
Вполне реально в маш.кодах писать!
Когда учился, а в тетрадке писал программу на ассемблере и потом вручную переводил по таблице в коды команд, адреса меток проставляя потом после перевода всей программы. Потом уже написал свой компилятор с ассемблера(существующие не устраивали из-за извращенной системы команд, якобы сделанной по дизайну x86-го ассемблера но полностью убившей красоту ассемблера Z80) и даже целую ОС для процессора Z80A, который у меня работал на частоте 4Мгц. Сначала был разработан индикатор на матричных светодиодных - 12 штук матриц 5x7 (организация 30 бит на 14 строк) и собственным ОЗУ на 537РУ13, получилось красиво. Потом мне "умельцы" в мое отсутствие пожгли эти матрицы, и пришлось срочно подключить ЖК индикатор 8 строк 20 символов в строке. До этих пор часть ОС держалась в ПЗУ, которая позволяла изменять ячейки памяти с клавиатуры и запускать программу с произвольного места в RAM. Ну ПЗУ - понятно, в качестве ОЗУ сначала была 537РУ10 а потом калечная 537РУ17 с 4КБ чистой памяти, а вторая страница 4Кб имела дефектные ячейки. 537-я серия позволяла подключать аккумулятор 2..5В в качестве резервного источника и сделать из нее аналог ПЗУ. Хотел еще ноутбучный хард подключить, но незнание в то время основ разводки высокочастотных цепей и цепей питания не позволил его запустить(сам винт не стартовал из-за просадки питания в момент пуска). А потом это все отложилось в долгий ящик после окончания учебы.
ЖК индикатор позволил комфортно вводить коды программ с клавиатуры и выполнять их.
До сих пор конструкция лежит в шкафу и даже работает несмотря на то что большая часть шин выполнена проводками.
А, еще даже пытался сделать программу-эмулятор для него... с некоторым набором периферии, вроде индикатора, клавиатуры...
Кусочек подпрограммы для вывода символа на индикатор в указанную позицию:
Спойлер
Код: Выделить всё
::outcharxy
; A - symbol
; D - position :
; 7 6 5 4 3 2 1 0
; \___/ \_______/
; | \_____ x=0..19
; \_____________ y=0..7
push bc
push de
push hl
ld h,00
ld l,a
ld b,h
ld c,l
add hl,hl
add hl,hl
add hl,bc
; Адрес таблицы шрифтов 5x7
ld bc,0800
add hl,bc
ld a,d
and 1f
ld b,a
add a,a
add a,a
add a,b
ld e,00
cp a,32
jr c,<n1>
ld e,01
sub 32
:n1
ld b,a
ld a,d
rlca
res 1,e
jr nc,<n2>
set 1,e
:n2
and C0
or b
ld d,a
call <outcom>
ld b,05
:n3
ld d,(hl)
call <outdata>
inc hl
djnz <n3>
pop hl
pop de
pop bc
ret
Вот ведь было время...