СЛАДКИЕ 16 - SWEET16
СЛАДКИЕ 16 является интерпретированный байт-код язык изобретен Стив Возняк и реализован как часть Целое число BASIC ПЗУ в Apple II серии компьютеров. Он был создан, потому что Возняку нужно было манипулировать 16-немного указатель данные, а Яблоко II был 8-битным компьютером.[1]
SWEET16 не использовался в основном коде BASIC, но позже использовался для реализации нескольких утилит. Среди них следует отметить процедуру перенумерации строк, которая была включена в ПЗУ Programmer's Aid # 1, добавлена в более поздние модели Apple II и доступна для установки пользователем на более ранних примерах.[2]
Код SWEET16 выполняется так, как если бы он работал на 16-битной процессор с шестнадцатью внутренними 16-битными прямой порядок байтов регистры, названный R0 через R15. Некоторые регистры имеют четко определенные функции:[1]
- R0 – аккумулятор
- R12 - подпрограмма указатель стека
- R13 - сохраняет результат всех операций сравнения для ветвь тестирование
- R14 – регистр статуса
- R15 – счетчик команд
16 виртуальных регистров, всего 32 байта, расположены в нулевая страница реальной физической карты памяти Apple II (на $00–$ 1F), со значениями, хранящимися как младший байт, за которым следует старший байт.[1] Сам интерпретатор SWEET16 расположен с 689 долларов США к $ F7FC в Целое число BASIC ПЗУ.
По словам Возняка, реализация SWEET16 является образцом бережливого кодирование, занимая всего около 300 байты в памяти.[3] SWEET16 работает примерно на одну десятую скорости эквивалентной родной 6502 код.[1]
Операторы
Зарегистрироваться | Незарегистрированные операции | ||||
---|---|---|---|---|---|
00 | РТН | Вернуться в режим 6502 | |||
1n | УСТАНОВИТЬ Rn | Постоянный набор | 01 | BR ea | Филиал всегда |
2n | LD Rn | Загрузить | 02 | BNC ea | Филиал, если не переносится |
3n | ST Rn | хранить | 03 | BC ea | Ветвь, если нести |
4n | LD @Rn | Непрямая нагрузка | 04 | BP ea | Филиал, если Плюс |
5н | ST @Rn | Косвенный магазин | 05 | BM ea | Ветвь, если минус |
6n | LDD @Rn | Двойная непрямая нагрузка | 06 | BZ ea | Ветвь, если ноль |
7n | STD @Rn | Магазин двойной косвенной | 07 | BNZ ea | Ветвь, если не ноль |
8n | POP @Rn | Поп косвенный | 08 | BM1 шт. | Переход, если минус 1 |
9n | STP @Rn | Store Pop косвенный | 09 | BNM1 шт. | Ветвь, если не минус 1 |
An | ДОБАВИТЬ Rn | Добавить | 0A | BK | Перерыв |
Млрд | SUB Rn | Вычесть | 0B | RS | Возврат из подпрограммы |
Cn | POPD @Rn | Поп двойной косвенный | 0C | BS ea | Переход к подпрограмме |
Dn | СЛР Rn | Сравнить | 0D | Не назначен | |
En | INR Rn | Приращение | 0E | Не назначен | |
Fn | DCR Rn | Декремент | 0F | Не назначен |
использованная литература
- ^ а б c d Возняк, Стивен (Ноябрь 1977 г.). "SWEET16: Машина мечты 6502". Байт. Получено 2011-01-05.
- ^ Помощь программистам Apple (PDF). Яблоко. 1978 г.
- ^ Возняк, Стивен (Май 1977 г.). «Яблоко II» (PDF). Байт. Получено 2012-05-18.
внешние ссылки
- Звоните-A.P.P.L.E. Возпак II — 1979 Звоните-A.P.P.L.E. буклет, который включает "SWEET 16 Introduction" Дика Седжвика и версию "SWEET 16: The 6502 Dream Machine" Стив Возняк с более подробным описанием каждого код операции
- Стротманн, Карстен (21 марта 2004 г.). "Портирование Sweet 16". 6502.org.