Size: a a a

Ассемблер

2021 March 25

ST

Saenro T in Ассемблер
Пока нет возможности глянуть бинарник.
источник

D

Den in Ассемблер
Saenro T
Пока нет возможности глянуть бинарник.
вот так работает
источник

ST

Saenro T in Ассемблер
Den
вот так работает
Ааа, это тот таймер что после буфера клавы идёт...
источник

D

Den in Ассемблер
Saenro T
Ааа, это тот таймер что после буфера клавы идёт...
да какой то попроще выцепил
источник

ST

Saenro T in Ассемблер
Den
да какой то попроще выцепил
Попробуй что-то отсюда: https://t.me/ChatAssembler/62347
источник

a

asm in Ассемблер
Добро пожаловать incraft3d. Не ответив на вопрос, будешь удалён из чата
источник

i

incraft3d in Ассемблер
Вопрос где?
источник

D

Den in Ассемблер
как много буков,  это наверное больше чем вся моя прога, они все нужны? :)
источник

[

[BRM]White Rabbit in Ассемблер
incraft3d
Вопрос где?
Ну, рассказывай
источник

ST

Saenro T in Ассемблер
Den
как много буков,  это наверное больше чем вся моя прога, они все нужны? :)
Там пара задержек, разберись с ними)
источник

D

Den in Ассемблер
Saenro T
Там пара задержек, разберись с ними)
Ладно спасибо, покопаюсь тогда :)
источник

A

Aiwan ╭∩╮ (òÓ,) ╭∩╮b... in Ассемблер
incraft3d
Вопрос где?
ты что правда с киева?
источник

s

snxx in Ассемблер
Alexander Morozov
#!/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

Alexander Morozov in Ассемблер
snxx
у тебя несколько версий питона?
Как всегда. 2-я и 3-я. Пользуюсь третьей.
источник

s

snxx in Ассемблер
понял
источник

AM

Alexander Morozov in Ассемблер
polinom = 0xFFF6
seed = 1
count = 0
while True:
   c = seed & 1
   seed >>= 1
   if not c:
       seed ^=polinom
   count += 1
   if seed == 1:
       break
print(hex(polinom), hex(count))

Кстати, проверка длины последовательности на python
источник

D

Den in Ассемблер
Вот теперь катарсис :)
источник

D

Den in Ассемблер
Saenro T
Там пара задержек, разберись с ними)
Всетаки дело было не в моем таймере а в математике, таймер норм!
источник

L

Lee in Ассемблер
хочу почитать
источник

EK

Eugene Krasnikov (ᴊɪ... in Ассемблер
Den
вот так работает
1. Гугли: ah=86h int 15h.

2. Гугли: таймер BIOS 40h:6Ch, а также int 1Ah.

3.
 mov dx,3DAh
vsync1:
 in al,dx
 test al,8
 jz vsync1
vsync2:
 in al,dx
 test al,8
 jnz vsync2

Это ожидание нового кадра (во многих случаях можно сократить вдвое, т.е. без второй половины, но в данном случае нельзя, т.к. слишком быстрая отрисовка).
Гуглить тут надо порт 3DAh, vertical retrace.

Это всё есть в Ralf Brown's Interrupt List (RBIL). Гуглится легко.
источник