SLADKÝCH 16 - SWEET16
SLADKÝCH 16 je interpretován byte-code jazyk vynalezl Steve Wozniak a implementováno jako součást Celé číslo ZÁKLADNÍ ROM v Řada Apple II počítačů. Byl vytvořen, protože Wozniak potřeboval manipulovat 16-bit ukazatel data a Apple II byl 8bitový počítač.[1]
SWEET16 nebyl použit základním BASIC kódem, ale později byl použit k implementaci několika obslužných programů. Pozoruhodná mezi nimi byla rutina přečíslování řádků, která byla zahrnuta do ROM Programmer's Aid # 1, přidané k pozdějším modelům Apple II a k dispozici pro instalaci uživatele na dřívějších příkladech.[2]
SWEET16 kód je spuštěn, jako by běžel na 16-bit procesor s šestnácti interními 16bitovými malý Endian registry, pojmenovaný R0 přes R15. Některé registry mají dobře definované funkce:[1]
- R0 – akumulátor
- R12 - podprogram ukazatel zásobníku
- R13 - uloží výsledek všech operací porovnání pro větev testování
- R14 – stavový registr
- R15 – počítadlo programů
16 virtuálních registrů, celkem 32 bytů, je umístěno v nulová stránka mapy skutečné fyzické paměti Apple II (na $00–$ 1F), s hodnotami uloženými jako nízký bajt následovaný vysokým bajtem.[1] Samotný tlumočník SWEET16 je umístěn z F689 $ na $ F7FC v Celé číslo ZÁKLADNÍ ROM.
Podle Wozniaka je implementace SWEET16 modelem skromného kódování, zabírají jen asi 300 bajtů v paměti.[3] SWEET16 běží přibližně jednou desetinou rychlosti ekvivalentního nativního 6502 kód.[1]
Operátoři
Zaregistrujte se | Neregistrované operace | ||||
---|---|---|---|---|---|
00 | RTN | Vraťte se do režimu 6502 | |||
1n | SET Rn | Konstantní sada | 01 | BR ea | Pobočka vždy |
2n | LD Rn | Zatížení | 02 | BNC ea | Pobočka, pokud se neprovádí |
3n | ST Rn | Obchod | 03 | BC ea | Pobočka, pokud nese |
4n | LD @Rn | Načíst nepřímo | 04 | BP ea | Pobočka, pokud Plus |
5n | ST @Rn | Skladujte nepřímo | 05 | BM ea | Větev, pokud je minus |
6n | LDD @Rn | Načíst dvakrát nepřímo | 06 | BZ ea | Větev, pokud je nula |
7n | STD @Rn | Uchovávejte dvojité nepřímé | 07 | BNZ ea | Pobočka, pokud NonZero |
8n | POP @Rn | Pop nepřímý | 08 | BM1 ea | Pobočka, pokud minus 1 |
9n | STP @Rn | Store Pop nepřímý | 09 | BNM1 ea | Pobočka, pokud není minus 1 |
An | PŘIDAT Rn | Přidat | 0A | BK | Přestávka |
Bn | SUB Rn | Odčítat | 0B | RS | Návrat z podprogramu |
Cn | POPD @Rn | Pop zdvojnásobit nepřímo | 0C | BS ea | Odvětví k podprogramu |
Dn | CPR Rn | Porovnat | 0D | Nepřiřazeno | |
En | INR Rn | Přírůstek | 0E | Nepřiřazeno | |
Fn | DCR Rn | Snížení | 0F | Nepřiřazeno |
Reference
- ^ A b C d Wozniak, Stephen (Listopad 1977). „SWEET16: 6502 Dream Machine“. Byte. Citováno 2011-01-05.
- ^ Apple Programmers Aid (PDF). Jablko. 1978.
- ^ Wozniak, Stephen (Květen 1977). „Apple II“ (PDF). Byte. Citováno 2012-05-18.
externí odkazy
- Volejte A.P.P.L.E. Wozpak II — 1979 Volejte A.P.P.L.E. brožura, která obsahuje „SWEET 16 Introduction“ od Dicka Sedgewicka a verzi „SWEET 16: The 6502 Dream Machine“ od Steve Wozniak s delším popisem každého z nich operační kód
- Strotmann, Carsten (21.03.2004). „Porting Sweet 16“. 6502.org.