http://mc6312.livejournal.com/ ([identity profile] mc6312.livejournal.com) wrote in [personal profile] kincajou 2006-12-04 02:14 pm (UTC)

В такие "гибриды" обычно как раз и пихали загрузчики, для более крупных блоков.
На спектруме бейсиковская программа хранилась не в виде текста. Два байта (слово) на номер строки (из-за чего можно было делать строки с одинаковыми номерами), два байта на длину строки, и далее сама строка. Операторы хранились не в текстовом виде, а как однобайтовые коды. После оператора REM мог быть совершенно любой текст, в т.ч. содержащий управляющие коды (цвет/положение на экране), соответственно вместо них можно было запихать и машинный код.
Выглядело это примерно так:

0 REM ...здесь код...
1 RANDOMIZE USR PEEK 23635+256*PEEK 23636+N


где 23635 - адрес системной переменной, где хранится адрес начала бейсиковской программы, и N - смещение содержимого REM от первого байта номера строки.
Часто после REM шли управляющие коды и текст, маскирующие программу при просмотре листинга.

Сам код - определял собственный адрес либо через ту же переменную, либо другими способами.

Post a comment in response:

This account has disabled anonymous posting.
If you don't have an account you can create one now.
HTML doesn't work in the subject.
More info about formatting