SWEET16

редактировать

SWEET16 - это интерпретируемый язык с байтовым кодом, изобретенный Стив Возняк и реализован как часть Integer BASIC ROM в компьютерах серии Apple II. Он был создан, потому что Возняку нужно было манипулировать данными 16- бит указателя, а Apple II был 8-битным компьютером.

SWEET16 не использовался в основном коде BASIC, но позже был использован для реализации нескольких утилит. Среди них особо выделялась процедура перенумерации строк, которая была включена в ПЗУ Programmer's Aid # 1, добавлена ​​в более поздние модели Apple II и доступна для установки пользователем в более ранних примерах.

Код SWEET16 выполняется так, как если бы он был запущен на 16-битном процессоре с шестнадцатью внутренними 16-битными little-endian регистрами с именами от R0 до R15. Некоторые регистры имеют четко определенные функции:

16 виртуальных регистров, всего 32 байта, расположены на нулевой странице реального, карта физической памяти (в $ 00– $ 1F) со значениями, хранящимися как младший байт, за которым следует старший байт. Сам интерпретатор SWEET16 расположен от $ F689 до $ F7FC в ПЗУ Integer BASIC.

По словам Возняка, реализация SWEET16 представляет собой модель экономного кодирования, занимая всего около 300 байт в памяти. SWEET16 работает примерно на одну десятую скорости эквивалентного собственного кода 6502.

Операторы

Операции регистрацииОперации без регистрации
00RTNВозврат в режим 6502
1nSET RnПостоянный набор01BR eaВсегда переходить
2nLD RnЗагрузка02BNC eaПереход при отсутствии переноса
3nST RnStore03BC eaBranch if Carry
4nLD @RnЗагрузка косвенного04BP eaПереход при плюсе
5nST @RnСохранение косвенного05BM eaПереход при минусе
6nLDD @RnЗагрузить двойную непрямую06BZ eaПереход, если ноль
7nSTD @RnСохранить двойную непрямую07BNZ eaBranch if NonZero
8nPOP @RnPop косвенно08BM1 eaПереход при минусе 1
9nSTP @RnStore Pop косвенный09BNM1 eaПереход, если не минус 1
AnADD RnДобавить0ABKBreak
BnSUB RnВычесть0BRSВозврат из подпрограммы
CnPOPD @RnPop double косвенный0CBS eaПереход к подпрограмме
DnCPR RnСравнить0DНе назначено
EnINR RnПриращение0EНеназначенный
FnDCR RnУменьшение0FНеназначенный

Ссылки

Внешние ссылки

Последняя правка сделана 2021-06-06 05:19:07
Содержание доступно по лицензии CC BY-SA 3.0 (если не указано иное).
Обратная связь: support@alphapedia.ru
Соглашение
О проекте