Цифра 16 - это бит 4 значения, которое идет в порт. Этот бит переключает ПЗУ бейсика 48 или 128 (0 - 128, 1 - 48). Поскольку команда OUT реализована именно в 48м бейсике, то вывод в порт значений, где бит 4 равен нулю, подключит вместо 48го, который должен был остаться, 128й бейсик в неожиданном месте исполнения программы. В результате произойдет сбой.
Можно 128, а можно (и лучше) набрать команду usr0 из 128го бейсика. В результате попадаешь в 48й, но 128К ОЗУ при этом не заблокировано (оно блокируется, если перейти в 48й бейсик из главного меню).
Программирование (не отладка/анализ существующих программ, а составление новых!) в машинном коде сродни особо тяжелой форме мазохизма. Этим можно заняться, составляя какие-нибудь ооочень коротенькие программы на десяток команд, чтобы развлечься и получить развитие. Но для практической цели, т.е. для составления сколько-нибудь сложных и полезных программ или игр, совершенно бессмысленно. Если уж программировать на Спектруме - то на ассемблере.
И вообще, в машинном коде лучше программировать не из бейсика, а из хорошего отладчика с дизассемблером, такого, как STS. Там не надо мучаться переводить из шестнадцатеричной системы в десятичную и обратно. И еще там сразу можно посмотреть, что получилось "напрограммировать", исполнить его пошагово и т.д.





Ответить с цитированием