A
Size: a a a
AM
D
AM
AM
D
AM
AM
clr r0
inc r0 ; Начальная позиция
1:
mov r0,r1
asl r1
add #40000-2,r1
mov #177777,(r1) ; Вывод на экран
clc
ror r0
bcc 2 ; Не нужен XOR
mov #0x100D,r1
xor r1,r0 ; МАГИЯ!
2:
cmp #1,r0
bne 1 ; Еще не конец
ret
ST
#!/usr/bin/python3
from PIL import Image, ImageDraw, ImageFont
text_1 = '''\
clr r0
inc r0 ; Начальная позиция
1:
mov r0,r1
asl r1
add #40000-2,r1
mov #177777,(r1) ; Вывод на экран
clc
ror r0
bcc 2 ; Не нужен XOR
mov #0x100D,r1
xor r1,r0 ; МАГИЯ!
2:
cmp #1,r0
bne 1 ; Еще не конец
ret'''
text_2 = '''\
АССЕМБЛЕР
ЭТО
КРУТО!'''
# Ширина и высота, размеры шрифта
width, height = 512, 256
font_size_1 = 10
font_size_2 = 60
font_1 = ImageFont.truetype('/usr/share/fonts/truetype/dejavu/DejaVuSansMono-Bold', font_size_1)
font_2 = ImageFont.truetype('/usr/share/fonts/opentype/cantarell/Cantarell-ExtraBold.otf', font_size_2)
# Инверсия порядка бит в байте
def invert(b):
return ((b&1)<<7) | ((b&2)<<5) | ((b&4)<<3) | ((b&8)<<1) | ((b&16)>>1) | ((b&32)>>3) | ((b&64)>>5) | ((b&128)>>7)
# Сохранить bitmap
def save_bin(bitmap, filename):
f = open(filename, 'wb').write(bitmap)
# Сохранить сжатый mac
def save_zip_mac_b(bitmap, filename):
with open(filename, 'w', encoding='utf-8') as f:
ba = bytearray(bitmap)
b = ba[0]
count = 1
for next_index in range(1, len(ba)):
next_b = ba[next_index]
if b == next_b and count < 256:
count += 1
else:
f.write(' .BYTE 0x%02x, %03d.\n' % ( (b, count & 0xFF) ))
b = next_b
count = 1
f.write(' .BYTE 0x%02x, %03d.\n' % ( (b, count & 0xFF) ))
i = Image.new('1', (width, height))
d = ImageDraw.Draw(i)
x_size_1, y_size_1 = d.textsize(text_1, font=font_1)
d.text(((width - x_size_1) // 2, 10), text_1, 0xFF, font=font_1)
i.save('ASM.png')
bitmap = bytes(invert(b) for b in i.tobytes())
del(i)
save_bin(bitmap, 'ASM.bitmap')
save_zip_mac_b(bitmap, 'ASMb.mac')
i = Image.new('1', (width, height), 0xFF)
d = ImageDraw.Draw(i)
x_size_1, y_size_1 = d.textsize(text_2, font=font_2)
d.text(((width - x_size_1) // 2, 10), text_2, 0x00, font=font_2)
i.save('COOL.png')
bitmap = bytes(invert(b) for b in i.tobytes())
del(i)
save_bin(bitmap, 'COOL.bitmap')
save_zip_mac_b(bitmap, 'COOLb.mac')AM
AM
ST
AM