# Apple Pascal

L'Apple Pascal è un sistema operativo ed un linguaggio di programmazione distribuito da Apple nel 1979 per i suoi personal computer Apple II. È basato sull'UCSD Pascal, un dialetto del Pascal sviluppato dall'Università della California, San Diego (UCSD).

## Storia

L'Apple Pascal fu rilasciato durante il mese di agosto del 1979, dopo l'uscita della versione 3.2 dell'Apple DOS, insieme alla scheda di espansione Appe II Language Card per offrire agli utenti dei computer Apple II il supporto al linguaggio di programmazione Pascal. La versione del linguaggio scelta fu la UCSD Pascal, sviluppata dall'Institute for Information Systems dell'Università della California, San Diego nel 1978 per essere utilizzato sia sul PDP-11 dell'università che su diverse altre piattaforme di quel periodo. L'USDC Pascal fu scelto perché poteva girare sulla CPU MOS 6502 utilizzata sull'Apple II.
L'Apple Pascal, per poter funzionare, necessitava di 64 KB di RAM: per questo motivo sull'Apple II si rese necessario sacrificare la porzione di 16 KB di memoria ROM del computer dove risiedeva sia il linguaggio Integer BASIC sia il monitor, il software scritto da Steve Wozniak che funzionava sia come assembler/disassembler sia come gestore del prompt dei comandi. Fu sviluppata perciò un'apposita scheda di espansione contenente il linguaggio, la Apple II Language Card: tramite la tecnica del bank switching veniva disattivata la ROM dell'Apple II ed al suo posto venivano attivati 16 kB di RAM presenti sulla Language Card. La scheda conteneva anche l'aggiornamento per supportare il nuovo formato a 16 settori dei dischi, che aumentava la capacità dei floppy formattati dall'unità a dischi Disk II a 140 KB, che era strato introdotto con l'Apple DOS 3.3.
Il programmatore Bill Atkinson aiutò nell'adattamento dell'UCSD Pascal all'Apple II e nella scrittura del BIOS, il sistema di base che permetteva al linguaggio di interagire con l'hardware del computer.

## Caratteristiche

Il Pascal utilizzava un sistema di gestione del disco diverso da quello dell'Apple DOS: invece di basarsi su "settori" di 256 byte di dimensione, utilizzava dei "blocchi" da 512 byte, ciascuno comprendente quindi 2 settori del disco. Le tracce su disco erano 35, ed ogni traccia conteneva 8 blocchi, per un totale quindi di 143.360 byte (140 KB). Di questi, una porzione era riservata al sistema: i blocchi 0 e 1 venivano usati per il codice di "bootstrap" del disco (il codice che permetteva di avviare direttamente un disco) mentre i blocchi dal 2 al 5 erano usati per la "directory", l'elenco dei file salvati sul disco, che poteva contenere fino a 77 file. Un'altra differenza risiedeva nella lunghezza dei nomi dei file: mentre l'Apple DOS permetteva nomi lunghi fino a 30 caratteri contenente qualsiasi carattere ASCII, con il Pascal si potevano utilizzare solo 15 caratteri. Di questi, alcuni non erano utilizzabili, come i simboli "$", "[", "=", "?" ed alcune combinazioni ottenibili utilizzando il tasto CTRL. I tipi di file trattabili erano identificati dall'estensione, la porzione del nome posta dopo il ".": ad esempio, ".TEXT" era un file di testo, ".CODE" un file eseguibile in linguaggio macchina.
Il sistema salvava i file sequenzialmente. Se un file intermedio veniva cancellato, lasciava una porzione di spazio riutilizzabile che poteva essere occupata da un nuovo file solo se quest'ultimo era più piccolo o al massimo grande esattamente quanto lo spazio lasciato libero. Se era più grande, veniva salvato dopo l'ultimo file su disco. Questo sistema, se da una parte permetteva un accesso più veloce alle operazioni di lettura e scrittura, dato che non creava segmentazione, dall'altra portava rapidamente ad avere un disco pieno di spazi vuoti. Era cura dell'utente lanciare un'apposita utilità denominata "Krunch" che ricompattava i file.
L'Apple Pascal conteneva, oltre al sistema operativo per gestire le operazioni di accesso ai dischi, anche un editor, un compilatore, un linker, un assembler 6502 ed altri programmi. In seguito, Apple distribuì anche un compilatore FORTRAN che poteva essere eseguito sul sistema Apple Pascal.
Apple rilasciò 4 versioni del sistema: 1.0, 1.1, 1.2 e 1.3, quest'ultima nel 1985.