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:

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