Документированное значение для адресов программы – 105 ячеек. На практике сложнее. Напомним, что адресация ячеек использует только две цифры, поэтому для адресов свыше адреса 99 используются шестнадцатеричные цифры..
Адрес формальный | Адрес фактический | Доп. адрес |
---|---|---|
00 | 00 | |
01 | 01 | |
… | ||
99 | 99 | |
A0 | A0 | |
A1 | A1 | |
A2 | A2 | |
A3 | A3 | |
A4 | A4 | |
A5 | 00 | |
A6 | 01 | |
A7 | 02 | |
A8 | 03 | |
A9 | 04 | |
B0 | 05 | |
B1 | 06 | |
B2 | 00 | |
B3 | 01 | |
B4 | 02 | |
B5 | 03 | |
B6 | 04 | |
B7 | 05 | |
B8 | 06 | |
B9 | 07 | |
C0 | 08 | |
C1 | 09 | |
C2 | 10 | |
C3 | 11 | |
C4 | 12 | |
C5 | 13 | |
C6 | 14 | |
C7 | 15 | |
C8 | 16 | |
C9 | 17 | |
D0 | 18 | |
D1 | 19 | |
D2 | 20 | |
D3 | 21 | |
D4 | 22 | |
D5 | 23 | |
D6 | 24 | |
D7 | 25 | |
D8 | 26 | |
D9 | 27 | |
E0 | 28 | |
E1 | 29 | |
E2 | 30 | |
E3 | 31 | |
E4 | 32 | |
E5 | 33 | |
E6 | 34 | |
E7 | 35 | |
E8 | 36 | |
E9 | 37 | |
F0 | 38 | |
F1 | 39 | |
F2 | 40 | |
F3 | 41 | |
F4 | 42 | |
F5 | 43 | |
F6 | 44 | |
F7 | 45 | |
F8 | 46 | |
F9 | 47 | |
FA | 48 | 01 |
FB | 49 | 02 |
FC | 50 | 03 |
FD | 51 | 04 |
FE | 52 | 05 |
FF | 53 | 06 |
Первая побочная ветвь, с возвратом на нулевой адрес, короткая – адреса A5…B1, которые отображаются на адреса 00…06.
Вторая побочная ветвь длинней – адреса B2…F9, которые отображаются на адреса 00…47. Причём адреса C0…F9 тёмные. Например, если выполнить БП 10 FПРГ, и по адресам 10…12 ввести команды КНОП КНОП КНОП, то увидим 54 54 54 13. Но если затем перейти на адрес C5 (FАВТ БП C5 FПРГ), то визуально получим C5, как будто без кода, хотя это будет тот же программный код, только затенённый.
На супертёмные адреса FA…FF возможно перейти
только косвенно,
т. к. впрямую адрес, который начинается с цифры F не вбить.
Впрочем, есть нестандартные последовательности команд,
описанные в приложении
Команды с кодом F.
А также для владельцев МК-52 есть штатный способ –
сделать логическое or
команд с отдельного модуля,
с получением кодов с цифрой F.
Так вот, особенность супертёмного адреса такая, что после перехода на
него выполняется только одна (!) команда, а затем идёт переход на
дополнительный адрес, который указан в последней колонке.
Если в адресе перехода вторая цифра тоже шестнадцатеричная, то как указано в предисловии, она прибавляется как есть (E = 14 и т. п.). Таким образом переход на адреса 9F (90 + 15) или A5 (100 + 5) или AC (100 + 12 = 110 + 2 = B2) или B2, будет эквивалентен переходу на адрес 00, только потом порядок команд будет отличаться.
Если сама команда двойная, т. е. с адресом перехода, например,
БП,
Fx<0,
FL1,
и при этом идёт разрыв
адресации, то вторая часть команды, сам
адрес перехода, считывается из нового места. Т. е. если по адресу 06
стоит команда БП,
то в обычном потоке адрес перехода будет по адресу 07, но если
попали сюда как на адрес B1, то адрес перехода будет по адресу 00.