SÖT 16
SWEET16 är en tolkad byte-kod instruktionsuppsättning uppfunnen av Steve Wozniak och implementerad som en del av Integer BASIC ROM i Apple II-serien av datorer. Den skapades för att Wozniak behövde manipulera 16- bitars pekardata , och Apple II var en 8-bitars dator.
SWEET16 användes inte av den grundläggande BASIC-koden, men användes senare för att implementera flera verktyg. Noterbar bland dessa var linjeomnumreringsrutinen, som ingick i Programmer's Aid #1 ROM, lagt till senare Apple II-modeller och tillgänglig för användarinstallation på tidigare exempel.
SWEET16-koden exekveras som om den kördes på en 16-bitars processor med sexton interna 16-bitars little-endian- register , benämnda R0 till R15 . Vissa register har väldefinierade funktioner:
- R0 – ackumulator
- R12 – subrutin stackpekare
- R13 – lagrar resultatet av alla jämförelseoperationer för grentestning
- R14 – statusregister
- R15 – programräknare
De 16 virtuella registren, totalt 32 byte, finns på nollsidan av Apple II:s verkliga, fysiska minneskarta (vid $00 – $1F ), med värden lagrade som låg byte följt av hög byte. Själva SWEET16-tolken finns från $F689 till $F7FC i Integer BASIC ROM.
Enligt Wozniak är SWEET16-implementeringen en modell för sparsam kodning , som endast tar upp cirka 300 byte i minnet. SWEET16 körs med ungefär en tiondel av hastigheten för motsvarande inbyggda 6502- kod.
Operatörer
Registrera Ops | Ej registrerad Ops | ||||
---|---|---|---|---|---|
00 | RTN | Återgå till 6502-läge | |||
1n | SET Rn | Konstant uppsättning | 01 | BR ea | Filial alltid |
2n | LD Rn | Ladda | 02 | BNC ea | Filial om ingen bär |
3n | ST Rn | Lagra | 03 | BC ea | Filial om Carry |
4n | LD @Rn | Ladda indirekt | 04 | BP ea | Filial om Plus |
5n | ST @Rn | Förvara indirekt | 05 | BM ea | Filial om Minus |
6n | LDD @Rn | Ladda dubbelbyte indirekt | 06 | BZ ea | Filial om noll |
7n | STD @Rn | Lagra dubbelbyte indirekt | 07 | BNZ ea | Filial om NonZero |
8n | POP @Rn | Pop indirekt | 08 | BM1 ea | Filial om Minus 1 |
9n | STP @Rn | Store Pop indirekt | 09 | BNM1 ea | Filial om inte minus 1 |
En | ADD Rn | Lägg till | 0A | BK | Ha sönder |
Bn | SUB Rn | Subtrahera | 0B | RS | Återvända från Subroutine |
Cn | POPD @Rn | Pop dubbelbyte indirekt | 0C | BS ea | Förgrena sig till subrutin |
Dn | CPR Rn | Jämföra | 0D | Otilldelad | |
Sv | INR Rn | Ökning | 0E | Otilldelad | |
Fn | DCR Rn | Minskning | 0F | Otilldelad |
externa länkar
- Call-APPLE Wozpak II — 1979 Call-APPLE- häfte som innehåller "SWEET 16 Introduction" av Dick Sedgewick och en version av "SWEET 16: The 6502 Dream Machine" av Steve Wozniak med längre beskrivningar av varje opkod
- Strotmann, Carsten (2004-03-21). "Porting Sweet 16" . 6502.org . Arkiverad från originalet 2021-07-26 . Hämtad 2021-03-03 .