Да, 32 бита не нужны, отрицательные не нужны, аргументы не нужны... Может пусть пишущий игру сам решает по поводу быстродействия?
Кстати, а кто-нибудь вообще видел через какой костыль у меня сейчас реализовано деление? А задумался почему именно так?
Подпрограммы привести к "настоящему" Паскалю. Пример см. в файлах, это то, из чего я пытался собрать demo_z.pas.
Вложение 70232
Вложение 70231
Скрытый текст
Код:procedure MapSet(p1,p2:pointer; a3,a4,a5,a6:byte);
begin
asm
ld e,(&&p1+0)
ld d,(&&p1+1)
ld (map_addr_array),de
ld e,(&&p2+0)
ld d,(&&p2+1)
ld (map_addr_sprites),de
ld a,(&&a3)
ld (map_xscr),a
ld a,(&&a4)
ld (map_yscr),a
ld a,(&&a5)
ld (map_width_scr),a
ld a,(&&a6)
ld (map_height_scr),a
ld a,64
ld (map_xmax_array),a
ld a,64
ld (map_ymax_array),a
end;
end;
[свернуть]
И с выражениями проблема, некоторые опираются на то, что в компиляторе нет 32 бит и отрицательных чисел. Этакий Си-стайл, когда "250+10" может выдать и 260, и 4, и вообще что угодно.

